历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2020年01月21日 | 如何设计一个基于单片机的简易示波器?

2020-01-21 来源:elecfans

1、系统结构框图

如何设计一个基于单片机的简易示波器?

图1系统结构图


1.1、信号调理电路

信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚的显示出来。叠加直流分量的作用是:ATmega16自带的A/D是单电源的,没办法输入负压而待测信号又往往有负压。这时候就需要这样一个电路,可以把负压抬高到0电平以上。

如何设计一个基于单片机的简易示波器?

图2信号调理电路原理图


R1,R2分别由一个模拟开关CD4051来连接不同的电阻,不同的R1,R2通过公式:这样就可以实现程控放大功能了。可调电阻R9用来设置信号调理电路加入的直流分量的大小。放大后的信号和直流分量最后由U3模拟加法器叠加后输出。


输入信号与输出信号的关系:只要R4、R6、R7的阻值相同,调理电路输入与输出的关系简化为:。


Ux为U3的输出电压,输出电压的电压值与可调电阻R9中间抽头的电压一至。

1.2、主控芯片软件设计

这个系统的主控芯片选择的是,Atmel公司的AVR系列单片机ATmega16,最高可达到16MPIS指令速度。ATmega16有16K的flash, 1K的SRAM, 512 B的EEPROM,单片机内部自带一个10 bits精度的逐次逼近型模数转换器,内建采样/保持电路。ADC的时钟是可编程的,在这个设计中为了太到最高的采样频率100KHz ADC的时钟设置为2MHz。ADC的触发源选择为定时器/计数器0溢出,ATmega16的定时器的时钟源也是可编程的。这样就可以通过控制定时器/计数器0溢出中断频率来控制ADC的采样频率。

如何设计一个基于单片机的简易示波器?

图3简易示波器系统程序流程图

1.2.1、键盘功能

在这个系统中设置了7个按钮分别为:运行与停止,放大倍数增大,放大倍数减小,采样频率增大,采样频率减小,触发电平上移,触发电平下移。


运行与停止键:是通过开启和关闭ATmega16 ADC转换完毕中断的方式来实现的。


放大倍数的增大与减小:是通过ATmega16控制模拟开关CD4051来实现放大倍数的数字化控制。CD4051为8通道的模拟开关,所以程控放大器可以有8档。


采样频率的增大与减小:是通过控制ATmega16的定时器0的时钟源及定时器的初始值来实现系统所需要的各个采样频率。定时器0的中断频率就等于ADC的采样频率。


触发电平的上移与下移:是通过对采样来的数据进行数字触发时,当数据的二进制值在增加的过程中某个数据的大小刚好与数字触发的二进制数值一样,在此以后的波形数据才存入显示RAM中。


当这7个按键中的某一个被触发,都会置位相应的标志位,以便刷新LCD液晶屏上相应的显示信息。


1.2.2、数字触发功能

如何实现触发呢?用硬件来完成的话又会增加系统硬件电路的复杂度,我就想了一个办法,有软件的方式来实现触发的功能。实现的过程如下:

for (ik=0;ik《500;ik++){

if (k0_ram){

if (box_buff[ik] 《 trigger) {

kk_ram = 1 ;

}

if (kk_ram){

if ((box_buff[ik] 》= trigger) & (ik 《 402)){

en_ram = 1 ;

k0_ram = 0 ;

kk_ram = 0 ;

}}}

if (en_ram){

boxing[adc_data]=box_buff[ik] ;

adc_data++ ;

if (adc_data 》 96){

adc_data = 0x00 ;

en_ram = 0 ;

}}}

trigger的大小可以通过触发电平上移与触发电平下移按键来设置它的大小。


1.2.3、还原波形

GDM12864A是一个具有128点x 64点的点阵LCD。根据所选的LCD的特点,Y轴上只有64个点,所以能显示的数据范围为0到63而采样得到的数据为8位的二进制数据为0到255。为了能在这个LCD上显示只取8位数据的高6位。那么如何把这高6位的二进制数据转换成在LCD上的Y轴座标和数据值呢?我想了这样一个计算的方法:


LCD的纵向分为8个地址从上到下依次为0~7,每个地址段有8个数据点。在某个数据段中如果想依次让这些位从上到下点亮就需要依次向这个地址段送数据0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后这个地址段的8个数据点将不被点亮。实现的具体过程如图4所示。


dat = dat》》2

y = 7

dat 》= 8

dat = dat – 8; y--;

y == 1

dat 》 7

dat = 7 ;

dat = 0x80 》》 dat

write_add(y,x) ;

write_data(dat) ;

如何设计一个基于单片机的简易示波器?

图4数据还原成波形上点的程序流程图


1.2.4、ADC采样频率控制

ADC的采样频率在上文已有提及,ADC中断的计算公式为:,通过ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的设置就可以改变的频率,再把TCNT0设置成不同的数值就可以得到这个系统所需要的各个采样频率值了。表1中的数据是通过上面的公式计算出来的数据再经实际的系统调试并修正后的数据。


表1采样频率的设置

如何设计一个基于单片机的简易示波器?

2、系统性能指标及误差

2.1、系统性能指标

系统主要性能指标见表2所示。

表2系统主要性能指标

如何设计一个基于单片机的简易示波器?

2.2、系统误差

系统的误差主要出在信号调理电路,因为模拟开关有一定的内阻约为80Ω对调理电路的放大倍数会造成一定的影响。通过1.1中的计算公式计算出来的电阻值在实际中不存在,通过几个电阻串联来实现也还是会有一定的误差。平衡电阻R3是固定的在R1,R2发生变化的时候,平衡电阻可能就不能平衡也会给运算放大器引入一定的误差。


2.3、可以改进的地方

系统可以进一步改进的地方在于信号调理电路,可以通过选择性能更好的模拟开关和运算放大器,更合理的选择电阻这样就可以提高信号调理电路的放大的准确度。使整个系统的性能得以进一步改善。


2.4、系统实际工作情况

LCD显示的信息分别有,波形图像,在波形的上面是横轴的标尺,在屏幕的右边为系统的运行状态(Run / Stop),TIme为整个波形框的时间长度,Volt-为电压档,在波形框与信息框之间有个小点为信号的触发电平。信号的频率=波形框中信号的周期数/TIme。

如何设计一个基于单片机的简易示波器?

3、结论

用这种方法可以实现一个简易的示波器,整个系统结构简单,清晰。充分利用了AVR单片机内部资源使系统电路得以简单化,就连系统的工作时钟也是AVR内部自带的。通过测试该系统在测量频率方向的误差很小,可以用来比较准确的测量测试信号的频率。

推荐阅读

史海拾趣

FERYSTER公司的发展小趣事

随着市场的不断扩大,FERYSTER公司意识到产品质量对于企业的重要性。因此,公司投入大量资金用于提升质量管理体系,引入国际先进的生产设备和检测仪器。同时,公司还加强了员工的质量意识培训,确保每一个环节都符合质量标准。这些措施的实施,使得FERYSTER公司的产品质量得到了显著提升,赢得了客户的广泛赞誉。

扬州国芯(Gcore)公司的发展小趣事

在技术创新的同时,FERYSTER公司也非常注重市场拓展。公司管理层通过深入的市场调研,发现亚洲市场对于高性能电子产品有着巨大的需求。于是,他们制定了针对亚洲市场的营销策略,包括加强品牌宣传、与当地企业建立合作关系等。这些措施取得了显著成效,FERYSTER公司的产品在亚洲市场的销量迅速增长,为公司带来了丰厚的利润。

宇阳科技(EYANG)公司的发展小趣事

随着公司业务的不断发展,宇阳科技在产能扩张和全球布局方面也取得了显著进展。公司在深圳、东莞、安徽等地建立了多个生产基地,引进了先进的生产线和检测设备,确保了产品的高品质和稳定供应。同时,宇阳科技还积极拓展海外市场,与全球多家知名企业建立了长期稳定的合作关系。

Alpha Industries公司的发展小趣事

在环保意识日益增强的今天,Alpha Industries积极响应绿色生产的号召。公司利用电子技术优化生产流程,减少能源消耗和废弃物排放。此外,Alpha Industries还推出了采用环保材料制成的军事服装系列,以实际行动践行绿色环保理念。这些举措不仅有助于提升公司的社会形象,也为公司的可持续发展奠定了坚实基础。

这些故事展示了Alpha Industries如何在电子技术的推动下,不断创新并适应市场变化,进而在相关领域取得显著发展。尽管这些故事并未直接涉及电子行业的核心业务,但它们却充分体现了Alpha Industries在技术创新和市场拓展方面的积极努力和取得的成果。

Eska公司的发展小趣事

随着全球对环保意识的提高,Eska公司积极响应并融入环保理念。公司采用再生纸作为原材料,制造灰板纸,有效减少了资源浪费和环境污染。同时,Eska的造纸过程也注重节能减排,每生产一顿纸板所需的水量非常少。此外,公司还拥有自己的加热和发电站,所产出的电力和蒸汽供应自给自足,进一步减少了对环境的破坏。

ENOCEAN公司的发展小趣事

作为一家以技术创新为核心竞争力的公司,EnOcean始终致力于研发更先进、更高效的无线无源传输技术。通过不断投入研发资源,EnOcean在能量转换效率、数据传输速率等方面取得了显著进展。同时,公司还积极探索新的应用领域和市场机会,以保持其在电子行业中的领先地位。

以上五个故事概述了EnOcean公司在电子行业中发展的主要历程和关键事件。通过这些故事,我们可以看到EnOcean凭借其在无线无源传输技术方面的持续创新和卓越性能,成功在全球市场上赢得了广泛认可和应用。

问答坊 | AI 解惑

发个单片机指令机

我是新手,第一次发错了…

查看全部问答>

求教放大器的放大倍数

大家好,小弟想请教各位大侠一个问题:电压并联负反馈电路为什么输出还和芯片的工作电压有关系啊,一般输出不会大于工作电压,我写论文需要放大倍数的公式啊。附件中这个电路,若输入为1V,如果5V供电,就输出-3.6V,如果是18V供电,就输出-16.5V, ...…

查看全部问答>

买芯片,要留神!

买芯片,要留神!    一般购买芯片如果有上个三五十片的量,最好找代理公司或其分销商而不要去一般“统货”柜台拿货,一般什么都作的(所谓统货)柜台上的现货基本上是翻新货或旧货,而且他们看人报价,行家或熟人他们大多不敢太过分, ...…

查看全部问答>

几个uc/os-II的问题(实在找不到答案)

uc/os-II中任务调度是分时的还是占先式? uc/os-II中设计一个任务需要考虑哪些问题? uc/os-II中任务通信有哪些方式?…

查看全部问答>

能用PPC2003模拟器下东西到CPU为PXA270的PDA吗

我下载时老是提示 The ARM Unknow CPU does not support configuration Test -Win32(WCE AEMV4)Debug!  Executable will not run on device. 我的PDA  CPU为PXA270 多谢各位帮忙…

查看全部问答>

获取系统当前内存使用量问题

有哪位高手知道获取系统内存当前使用量的函数以及如何获取某一个应用程序所占的内存大小呢?(EVC)…

查看全部问答>

avr单片机电子书

求AVR单片机原理电子书,谢谢啊。有的请上传或Email:879014874@qq.com.…

查看全部问答>

运营商有效整合的一些思考

     随着通信业的发展,由原来的邮电分分合合到现在的移动,联通,电信,整合后的三家企业中,可能移动变动不大,因为它并购了铁通,一个市场占有率很小的企业,移动本来核心员工也少,所以凭借它在2G市场上得优势,基本上是 ...…

查看全部问答>

步进电机在点胶机应用中的优点

 随着工业智能化的迅速推进,代替人工进行点胶作业的自动点胶机诞生了。自动点胶机的发明以及广泛应用,大大的节省了人力成本,实现了自动化的同时还实现了高精度,对提高产品质量有着极其重大的意义。今天我们将就点胶机的设计艺术来与大家 ...…

查看全部问答>

WEBENCH设计狂欢盛宴案例: LM3429的LED 36V 0.7A驱动电路

本帖最后由 qwqwqw2088 于 2014-5-30 10:32 编辑 德州仪器(TI)的在线设计工具WEBENCH是个好工具,如果用TI 的器件,这个工具确实省好多事情,即使你不用TI 的器件,不妨也体会一下,对于同类器件的电气性能比较,也是不错的。电子工程世界(eew ...…

查看全部问答>