基于单片机的简易示波器设计
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采样频率的设置
采样频率(KHz) | 100 | 50 | 20 | 10 | 5 | 2 | 1 | 0.5 | 0.2 | 0.1 | 0.05 | 0.0033 |
TCCR0 | 0x02 | 0x02 | 0x02 | 0x02 | 0x02 | 0x03 | 0x03 | 0x04 | 0x04 | 0x05 | 0x05 | 0x05 |
TCNT0 | 250 | 235 | 204 | 149 | 42 | 189 | 123 | 188 | 89 | 169 | 89 | 4 |
2、系统性能指标及误差
2.1、系统性能指标
系统主要性能指标见表2所示。
表2系统主要性能指标
系统工作电压 | +5V及-5V电源 |
频率测量范围 | 0.33Hz ~ 3KHz |
电压测量范围 | 10mV ~ 2V |
2.2、系统误差
系统的误差主要出在信号调理电路,因为模拟开关有一定的内阻约为80Ω对调理电路的放大倍数会造成一定的影响。通过1.1中的计算公式计算出来的电阻值在实际中不存在,通过几个电阻串联来实现也还是会有一定的误差。平衡电阻R3是固定的在R1,R2发生变化的时候,平衡电阻可能就不能平衡也会给运算放大器引入一定的误差。
2.3、可以改进的地方
系统可以进一步改进的地方在于信号调理电路,可以通过选择性能更好的模拟开关和运算放大器,更合理的选择电阻这样就可以提高信号调理电路的放大的准确度。使整个系统的性能得以进一步改善。
2.4、系统实际工作情况
LCD显示的信息分别有,波形图像,在波形的上面是横轴的标尺,在屏幕的右边为系统的运行状态(Run / Stop),Time为整个波形框的时间长度,Volt-为电压档,在波形框与信息框之间有个小点为信号的触发电平。信号的频率=波形框中信号的周期数/Time。
3、结论
用这种方法可以实现一个简易的示波器,整个系统结构简单,清晰。充分利用了AVR单片机内部资源使系统电路得以简单化,就连系统的工作时钟也是AVR内部自带的。通过测试该系统在测量频率方向的误差很小,可以用来比较准确的测量测试信号的频率。
[参考文献]
[1]刘海成. AVR单片机原理及测控工程应用[M]北京:北京航空航天大学出版社,2008.3.
[2]高吉祥.全国大学生电子设计竞赛培训系列教程[M]北京:电子工业出版社,2007.6.
[3]刘祖刚.模拟电路分析与设计基础[M]北京:机械工业出版社,2007.10.
评论