基于单片机的简易示波器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的简易示波器设计
一、系统结构和工作原理
1.1 系统结构
该系统设计方案是以AVR单片机为核心,再加上前端信号调理电路、键盘控制、LCD 显示构成的简易示波器,其系统结构框图如图l所示。
1.2 工作原理
系统的主控芯片是AVR系列单片机ATmega16,单片机内部自带一个10 bits精度的逐次逼近型模数转换器,内建采样/保持电路。ADC的时钟是可编程的,触发源选择为定时器/计数器0溢出;ATmega16的定时器的时钟源也是可编程的,这样就可以通过控制定时器/计数器0溢出中断频率来控制ADC的采样频率。
二、硬件设计
2.1 信号调理电路
信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚的显示出来。叠加直流分量的作用是:ATmega16自带的A/D是单电源的,没办法输入负压而待测信号又往往有负压。这时候就需要一个可以把负压抬高到0电平以上的电路,如图2。R1、R2分别由一个模拟开关CD4051来连接不同的电阻实现程控放大功能;可调电阻R9用来设置信号调理电路加入的直流分量的大小;放大后的信号和直流分量最后由U3模拟加法器叠加后输出。
三、软件设计
系统软件设计主要分为主程序模块、触发模块、显示模块和A/D转换采样及频率控制模块。
图2 信号调理电路 3.1 主程序模块
系统在一次采样未完成之前,只查询键盘。按下按键进行相应操作,如无键按下则继续
查询键盘,直到采样完成为止。采样完成后触发数据,只从数据里取出符合显示要求的数
据并将波形显示在LCD 上,进入下一次采样,如此循环。图3为系统主程序工作流程。
图3 简易示波器系统程序流程图
3.2 触发模块
采用硬件触发功能会增大系统硬件电路的复杂度,因此采用软件实现方式。一个周期的正弦波同一电压值对应两个不同的波形位置(除去最大值与最小值)。先找一个比触发电平小的电压,在此基础上再找与触发电平相同或更大的电压就可以判断出大于或等于触发电平的
Y N
Y
N
开 始
系统初始化
开机动画
键盘扫描及功能
采样完毕?
数字触发
清波形显示区
数据运算及显 示波形循环
幅度等于 最大值?
程控放大器放大倍数下降一级
数据就是上升沿的触发点。以下给出具体的C语言实现程序代码:
for(ik=0;ik<500;ik++){ //每次采样的深度为500点
if(k0_ram){ //触发点的判断
if(box_buff[ik] kk_ram=l;} if(kk_ram){ if((box_buff[ik]>=trigger)&(ik<402)){ //如果触发后的数据不够显示则放弃该 组数据,结果不会保存到显示区寄存器en_ram=l; k0_ram=0; kk_ram=0;}}} if(en_ram){ //取出触发后,显示的波形数据(96点), 存入显示区寄存器 boxing[adc_data]=box_buff[ik]; adc_data++: if(adc_data>96){ //判断数据是否接收完毕 adc_data=0x00; en_ram=0;}}} 程序中,trigger的大小通过触发电平的上移,下移按键来设置。 3.3 显示模块 GDMl2864A是一个具有128*64点阵的LCD。根据所选的LCD的特点,Y轴只有64点,所以显示数据范围为0-63,而8位采样数据的二进制数据为0-255。采样数据为了能在该LCD 上显示,只取其8位数据的高6位。LCD的Y轴分成8个地址,从上到下依次为0—7。每个地址段有8个数据点。在某个数据段中如果从上到下依次点亮这些数据点就需要向这个地址段依次传送数据Ox0l,Ox02,Ox04,ox08,Oxl0,Ox20,Ox40,Ox80。当送入c0x00时,该地址段的8个数据点则不被点亮。具体实现流程如图4所示。 图4 数据还原成波形上数据点的程序流程 3.4 A/D 转换器采样及频率控制模块 ATmegal6内置一个10 bit 精度的逐次逼近型A/D 转换器,内带采样/保持电路。A/D 转换器的时钟可编程,触发源选择为定时器/计数器0溢出;ATmegal6定时器的时钟源也是可编程 的。因此可通过控制定时器/计数器0溢出中断频率来控制A/D 转换器的采样频率。A/D 转换 器中断的计算公式为: 0256TCNT f f clk ADC -= 。通过ATmegal6的特殊功能寄存器TCCRO 的低3 位CS02,CSOI ,CS00设置clk f 的频率,再把TCNT0设置成不同数值就可得到该系统所需的各个采样频率值。 四、结论 该简易示波器设计结构简单、清晰,充分利用AVR 单片机内部资源简化系统电路设计。该系统进一步改进了其信号调理电路,选用性能更好的模拟开关和运算放大器,更合理的电阻,可提高信号调理电路的放大准确度,从而改善整个系统性能,增大测量幅度范围。 参考文献: [1] 于桂君,郭丹婷.基于AVR单片机的简易示波器设计[J].辽宁科技学院学报,2010.12(2) [2] 余海斌,陈志英.基于AVR单片机的简易示波器设计[J].电子设计工程,2009.17(5) [3] 万国庆.电子测量教程[M].北京:电子工业出版社,2006 [4] 徐科军.电气测试技术[M].2版,2008 [5] 刘祖刚.模拟电路分析与设计基础[M].北京:机械工业出版社,2007 [6] 高吉祥.全国大学生电子设计竞赛培训系列教程[M].北京:电子工业出版社,2007 [7] 马潮.A VR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007 [8] 刘海成.A VR单片机原理及测控工程应用[M].北京:北京航空航天大学出版社,2008 [9] 耿德根.A VR高速嵌入式单片机原理与应用(修订版)[M].北京:北京航空航天大学出版 社,2002.10 [10]卜祥军,乔开晓,邱选兵,魏计林.基于A VR的DDS数字可调共振源的设计[J].太原科 技大学学报,2010(6)