×
单片机 > 单片机程序设计 > 详情

89C51单片机做示波器,读取波形代码

发布时间:2020-06-02 发布时间:
|

上两周主要在探索单片机实时采集AD值并用串口发送到电脑端处理。虽然原理比简单,但由于个人理论功底还有所欠缺,再加上前期目标还不清晰,所以花的时间还是有点多。


刚开始在很长一段时间内串口读不到AD采集的电压值,但在单独调试串口时却是好的。经过很长时间的测试才发现串口中断也定时中断同时打开,导致程序跑飞。后来改中断方式为查询方式,避免了这个问题。后来又遇到了串口波特率一致问题。软件问题都一一解决后,终于能读到数据。画出波形:


正弦信号:幅值2V,偏执1V


无论怎么改变采集信号的频率,发现波形还是这样。再三检查程序确认没有问题时仔细阅读AD的芯片资料后,发现手上这款PCF8591芯片内部自带了峰值保持电路,也就是正弦信号理论上只能采集它的峰值,这与我们实际采集到的信号是一致的。这款芯片适合增益可调模块不适合采集信号。换了另外一个单片机的AD来采集,果然得到了预期的结果:


正弦信号:幅值2V,偏执1V,频率500HZ


正弦信号:幅值2V,偏执1V,频率5HZ


正弦信号:幅值2V,偏执1V,频率1HZ


分析在本系统中,当信号的频率越来越低时,采集到的信号越接近真实值,关键是AD的采样率制约,建议购买高采样率AD。


关键字:89C51  单片机  示波器  波形代码

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多