自制作diy智能型ICL7135四位半表头 附视频(4)
时间:2013-02-22 17:06来源:www.crystalradio.cn 作者:Edward 点击:
次
图7焊接好元件之后 设计工作的最后一步自然是程序设计了。其实程序设计、测试和电路板打样、修改是交互进行的。第一次打样出的PCB很可能有很多问题,如设计不合理等等。在写程序和测试时发现问题就要修改电路板,然
图7 焊接好元件之后
设计工作的最后一步自然是程序设计了。其实程序设计、测试和电路板打样、修改是交互进行的。第一次打样出的PCB很可能有很多问题,如设计不合理等等。在写程序和测试时发现问题就要修改电路板,然后再编程再打样再测试,如此反复,最后设计出成品。可以说,程序是整个作品的灵魂,因为表头的全部功能都体现在程序上,程序的好坏直接决定了作品的成败。我花了很长时间来设计这个程序,也尝试使用了一些以前未曾用过的程序结构,得到了比较好的效果。整个程序最关键的自然是ADC数据的读取和显示。最初我没有使用 信号和中断,结果数据读取不及时,有时还会丢字或者是重复读取,而且还不好与显示函数协调。经过反复尝试和研读ICL7135手册,最后利用 的电平脉冲信号产生中断来读取和更新数据。读取ADC数据后结束中断返回正常运行,由于读取数据过程很短,能够不影响显示正常的显示、通信和控制,同时也节省了单片机资源,简化了程序。把主要的做好,其他的功能逐步添加就可以了。由于单片机的功能很强,同时也有EEPROM,可以方便的存储数据,所以我设计了一个菜单来方便功能的设置,设置数据存储在EEPROM中实现掉电不丢失。现在功能菜单也有了,就可以完全任凭自己的想象力来发挥了,因为MCU无限可能。我目前实现的功能有数据保持、串口发送测量值设定、工作频率设定、小数点位置设定、菜单超时退出和还原出厂设置等。未来要实现的功能有:开关短按功能设置,电压超阈值报警,平均值计算,差值计算,软件校准,自动控制等等。板子上只设计了一个轻触开关,基本够用了。长按按键进入设置菜单,短按按键数据保持。以后要增加短按功能设置,可以更改短按的功能。这个程序也是我第一次使用定时器来进行按键按检测。我没有使用常用的软件延时和中断检测法。因为单片机要不断扫描数码管,不能打断扫描太长时间,不然数字显示会闪烁或中断。不使用中断的原因是单片机外部中断资源比较有限,我想把中断1端口预留给以后控制使用;另外程序编写得循环很快,每次循环只扫描一个数码管,这样一次循环的时间就很短,不会影响到按键的判断。程序也有向上位机发送测量结果的功能如果设置打开了串口发送数据,那么每次测量结束就会将测量结果以BCD码通过串口发送出去。多参考单片机的数据手册,再开动脑筋就可以做出很多很有意思的功能。编写程序的时候要注意IO口的工作模式,数据接收要设为开漏,数据发送和发送接收口要设为准双向口,数码管段驱动口要根据选取的数码管类型(共阴或共阳)设为推挽或开漏,数码管位驱动口同样,要设为开漏或推挽。
当程序编写调试完成后,在投入使用前最后一个重要工作就是对表头进行校准,以保证测量的准确性。原则上应该使用4½及以上位数的数字电压表或万用表,将其输入端与表头输入端并联,并输入一个1V左右稳定的电压,调节电位器使二者显示一致的方式来调整。但是考虑可能没有4½或以上位数的仪表,也可以用精度良好的3½或3¾位万用表来简单调整。方法是使用万用表200.0mV或400.0mV量程电压档,将其输入端与本机输入端并联,并输入一个100-200mV稳定的电压,调节电位器,调整使二者显示一致即可。
最后就可以将表头投入使用了。由于我没有更好的积分电容,所以表头精度略差,实际满量程误差是正负十几个字左右。整机耗电在30mA左右。目前工作正常,与上位机通信也很稳定。
![08.jpg 自制作diy智能型ICL7135四位半表头 附视频](/uploads/allimg/130222/1FJR152-15.jpg)
图8 工作中的表头
另外再补充一段工作时的视频:(数据保持忘了拍了,是短按按键,蓝色LED会亮。为了方便拍摄,是使用串口控制的表头,如果按键,正常显示时短按就是数据保持,长按就是进入菜单,长按生效时,全部LED都会亮起。)
最后,要感谢sudo1234等在制作期间的大力支持与帮助
(责任编辑:admin) |
织梦二维码生成器
------分隔线----------------------------