用ATmega16制作简易虚拟示波器

发布者:数字驿站最新更新时间:2020-10-09 来源: eefocus关键字:ATmega16  简易虚拟示波器  LabVIEW 手机看文章 扫描二维码
随时随地手机看文章

本文通过LabVIEW虚拟实验软件平台设计了一种利用ATmega16单片机进行数据采集,通过RS232串行通信将数据传送给PC的简易虚拟示波器。用户可以在开发平台上对数据采集参数进行设置和调整以及对波形数据存储。


系统的创新点是摆脱了传统开发平台的限制,具有多通道、方便、灵活等特点,在数据采集、传感器监测等领域有重要应用。虚拟仪器是基于PC技术发展起来的,所以完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使在数据导入磁盘的同时就能实时地进行复杂的分析。


为了实时、准确地测量输入波形的参数,本文采用自带8路10位ADC的单片机ATmega16,结合简单的外围电路,即可将输入波形实时传送给PC机进行处理。通过PC机上虚拟仪器平台LabVIEW开发的上位机软件对波形进行显示和处理,从而达到简易虚拟示波器的效果。


数据采集电路设计

ATmega16单片机是美国Atmel公司生产的基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。ATmega16有如下特点:16k字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1k字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程。


三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路 10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。




图2 采样电路原理图。


本设计正是利用ATmega16的8路10位可编程增益的逐次比较型ADC及可编程异步串行接口的内部资源,从而简化了电路设计的难度及编程难度。采样电路的电路图如图2所示,ATmega16只需结合简单的晶振电路和复位电路就可以完成本设计的需求。


模拟信号通过8路模拟输入的任意端口输入即可,通过单片机内部程序控制,很容易就将输入模拟量转化为数字量。单片机再通过串行接口传输给PC机, 串行通信通过串行发送引脚TXD(PD1)和串行接收引脚RXD(PD0)连接串行通信接口电路实现数据的串行传送与接收。


串口通信接口电路设计

本系统设计中通过Max232连接单片机和PC机。ATmega16 具有异步串行通讯接口(UART),UART是为能与计算机通讯的全双工异步系统。本系统采用RS232接口方式, 由于RS232信号电平与AVR单片机信号电平(TTL 电平)不一致,因此在采用RS232标准时必须进行信号电平转换。


在串行通信的接口电路中选用MAX232芯片作为信号电平转换芯片,实现TTL电平和 RS232接口电平之间的转换。从而把ATmega16内部需要传送的数字信号准确无误地传输给PC机,供上位机软件读取并进行信号处理。


串行接口电路原理图如图3所示,TTL电平引脚输入引脚9、10,连接ATmega16的串行发送接口TXD和串行接收接口RXD,通过电平转换为RS232电平,通过7脚和8脚连接串行接口的2脚和3脚,串行接口通过串行通信线连接采样模块的串行接口和PC机的串行接口。ATmega16通过内部编程很方便地把数据传送给PC机。




图3 串口通信接口电路图。


多通道采样原理:由于ATmega16内部ADC为8选1数据通道,在具体实现某路数据采集时就必须更改多工选择寄存器ADMUX的数值。为能随时更改通道,本设计采用主从方式,通过上位机发送给ATmega16的数值来改变通道。


在ATmega16的串行中断的接收中断中, 通过判断接收的数值更改ADMUX的数值。同时,在串行接口接收中断中,通过接收的数值的编码也可用来改变ADC相邻两次转换之间的延时值,从而达到改变转换速率的效果,当需要采集双通道数值时,单片机内部ADC可采用分时复用的原则,同时将获得的八位数据加一个最高标志位,扩展为九位数据位。上位机通过对数据的最高位的校验,可以很方便地区分数据,在显示界面上将双通道波形实时显示更新。


设计的虚拟示波器系统由单片机ATmega16和Max232构成的下位机系统及由LabVIEW开发的上位机软件构成。系统充分利用 ATmega16单片机软硬件资源,方便快捷地实现数据采集。


并且通过RS232接口实现与上位PC机的连接,PC机通过LabVIEW开发平台方便地实现进行数据的分析、处理、存储和打印输出的简易虚拟示波器。本系统具有电路简单、使用灵活方便等特点。因此能广泛应用于工业、农业、水文系统、环境监测等领域,实现现场勘测和数据采集。

关键字:ATmega16  简易虚拟示波器  LabVIEW 引用地址:用ATmega16制作简易虚拟示波器

上一篇:数字示波器的垂直分辨率指标有何作用
下一篇:示波器测量操作技巧及注意事项

推荐阅读最新更新时间:2024-11-03 11:49

LabVIEW设计模型——状态机
状态机是在工程应用中使用最多的设计模型。使用状态机,我们可以很容易的实现程序流程图中的判断、分支。 状态机是由一系列的状态构成的,其中包括一个 初始化 状态,和一个 停止 状态。程序油 初始化 状态开始,由 停止 状态结束。一般来说,在 初始化 状态中进行控件与变量的初始化、打开文件以及创建引用等操作,而在 停止 状态中进行清除临时数据、关闭文件和结束引用等操作。在状态机中,每一个状态都可能导致一个或多个状态的发生,其下一状态是由用户的输入信息和当前状态所决定的。 在决定使用状态机作为我们的设计模型后,我们首先要画出一个状态转换图。在图中要列出系统中的所有状态,以及各个状态之间的转换关系。而且要标明转换所需要的条
[测试测量]
<font color='red'>LabVIEW</font>设计模型——状态机
LabVIEW下使用ZLGCAN接口函数库
1、概述 Virtual CAN Interface (VCI) 函数库是专门为ZLGCAN 设备在PC 上使用而提供的应用程序接口。库里的函数从ControlCAN.dll 中导出,在LabVIEW7.0 中可以直接使用这些库函数而无需额外的操作。VCI 函数的使用流程如图 1.1 所示。 图 1.1 VCI 函数使用流程 2、使用VCI 函数 2.1 数据结构 VCI 函数库中定义了一些数据结构用于数据交换,在使用VCI 函数前应该先创建这些数据结构。在LabVIEW 中创建这些结构时应该使用簇——Cluster。一个簇就是一个由若干不同的数据类型的成员组成的集合体,类似于C 语言中的结构。其成员
[测试测量]
labview的深入探索----利用DDE实现进程间的数据交换之一
LABVIEW是多线程的,在两个线程交换数据有多种方法,进程(PROCESS)和线程(THREAD)是两个不同的概念,我们启动一个执行文件实际上就是启动一个进程,WINDOWS的进程管理器可以观察到当前存在那些活动进程,进程间交换数据可以简单地理解成多个执行文件间交换数据. 进程间交换数据有几种方法:剪切板(CLIPBOARD),动态数据交换(DDE),内存映射文件(MAP FILE)和一般文件,当然也可以用TCP/IP ,SHARE VARIABLE,DATASOCKET,不过这些都属于网络数据交换,用于本机进程间通讯并不合适. 过去的一篇文章中已经介绍过如何利用剪切板进行通讯,今天介绍一下动态数据交换(DDE) DDE(D
[测试测量]
<font color='red'>labview</font>的深入探索----利用DDE实现进程间的数据交换之一
ATmega16开发板教程(8)——ADC
9、ADC 在将ADC之前,先聊聊其前因后果——由于计算机在自动控制、检测以及其他领域广泛应用数字电子技术,而大自然的信号全是模拟信号,如果通过计算机保存自然信号呢?那么就需要ADC(模数转换器Analog-Digital Converter)来讲模拟信号转换为数字信号,这样才能存储到计算机中。 那么ADC是如何转换的呢? l首先对选定一个瞬间对模拟信号进行采样; l然后将值转换为数字量; l最后按照一定编码格式转换。 — 一个模拟信号肯定是不能采样一个点的,而是许多点集合而成。当长方形又窄又长时几乎接近竖线时,就可以很好的还原之前的波形了。 用官方的话说:抽样定理——若原图的最大频率是fmax,那么采
[单片机]
<font color='red'>ATmega16</font>开发板教程(8)——ADC
Labview端口板相关操作事项小结
端口板的编辑是Labview子VI创建以及实现子VI调用的一个必经之路,学习中暂时没有遇到什么难点,但是确实是对比学习以及理解中有一点小小的收获。 端口板实现的功能类似于编程语言(比如C语言或者Python)的函数参数的使用。在实际的设计中,如果端口超过16个的时候不仅会非常难看而且不便于管理。如果有类似情况发生时,尽量使用数组或者集合的方式来实现端口的精简。端口板端口的作用在于指定子VI的输入和输出,但是创建子VI一把还需要进行端口板的图标和编辑器的编辑修改。 完成端口板的编辑后,可以创建一个子VI。 示例: 前面板: 程序框图: 图标编辑: 连接器编辑: 这样保存之后
[测试测量]
<font color='red'>Labview</font>端口板相关操作事项小结
利用Python语言实现实验室自动化
  作为一名系统和应用工程师,得益于自动化仪器和软件,我已经节省了不计其数的日日夜夜;例如LabVIEW,这是一款系统设计平台和开发环境,支持可视化编程语言。LabVIEW支持用户利用友好的图形用户界面(GUI)构建应用程序。该平台带有多个库和模块,使其能够与仪器通信,所以可用于实验室自动化。作为LabVIEW用户,我已经使用该工具构建了多款应用程序,但在过去几年中,我已经开始逐步将其淘汰,代之以Python语言(见侧栏:“Python是什么以及如何使用?”)。   为了理解其中缘由,我们首先了解一下Python相对于现有替代语言的主要优势,以及讨论Python应用程序的工作实例。表达Python方便和强大之处的最佳方式是介绍一
[测试测量]
利用Python语言实现实验室自动化
labview串口数据保存_labview如何对串口数据缓存
LabVIEW是一种基于图形编程语言的开发环境。它与传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。但二者最大的区别在于:传统编程语言是用文本语言编程,而LabVIEW用图形语言(即各种图标、图形符号、连线等)编程。 编程简单方便,界面形象直观,具有强大的数据可视化分析和仪器控制能力。 Labview有丰富的文件操作函数库,可以方便地进行文件的读写。Labview可以读写文本文件、数据报表文件、二进制文件和测试文件。主程序中从VISAread的readbuffer端读上来的数据需要转换成表格数据进行保存,数据的保存分为两个阶段。第一阶段,通过表单形式(带时间头)显示在主程序界面,方便用户直观查看
[测试测量]
<font color='red'>labview</font>串口数据保存_<font color='red'>labview</font>如何对串口数据缓存
基于LabVIEW和RS485通信的光伏发电实时监测系统设计
设计了一套基于LabVIEW数据采集和RS485通信的光伏发电监测系统,可实时监测光伏发电系统运行电参数和环境参数并统计发电量信息。该系统由单片机和传感器采集光伏发电系统的各类相关参数。并采用RS485协议与PC机通信。上位机通过LabVIEW提 供的标准I/O应用程序接口VISA实时获取单片机传递的数据信息,数据经上住机监测软件 处理后通过监测界面图形化显示。该监测系统结构简单、硬件成本低廉、数据传输稳定 、运行稳定可靠,具有可视化的监测界面。经测试系统可实时监测到各类参数的变化情况, 可有针对性地对光伏发电系统进行维护进而提高光伏运行效率。 随着能源危机的日益严峻。各种可再生能源得到了长足的发展。在诸多的可再生能源中,光伏发
[电源管理]
基于<font color='red'>LabVIEW</font>和RS485通信的光伏发电实时监测系统设计
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved