AT89C51单片机温度巡回测控仪设计
[关键词:AT89C51,单片机,温度巡回测控仪] [热度 ]提示:此毕业设计论文完整版包含【论文】 作品编号:dzxx0022,word全文:35页,合计:16000字 |
根据前面第二章,第三章的分析设计以及硬件电路和功能模块,系统程序将分为主程序和子程序,在主程序中完成初始化,系统复位,工作方式检测,数码管的显示等的控制以及数字滤波,温度值调整,键盘消抖等一系列的操作。系统有一个外部中断INT0子程序负责读ADC0809的输出量其它子程序还有延时,蜂鸣,码制转换等。另外,该系统的软件的一个重要特点是采用了对数字量进行去极值平均滤波技术,并设立了程序运行监视系统(WATCHDOG),指令冗余和软件陷阱等CPU抗干扰技术,进一步为系统平稳运行提供了可能。
测量数据调整程序的设计
测控仪测量范围在 0~~1000℃而通过A/D得到的数字量最大只能使255,所以必须根据前向通道的放大倍数给予调整。运用软件的手段保证测温达到1000℃。由于时间的限制该系统没来得及采用浮点运算保证温度值精确到十分位,这是本次设计的最大遗憾。程序如下:
MOV B, #4H ;乘4调整
MUL AB ;
MOV R7, A ;低8位保存
MOV R6, B
调整后配合硬件将测量的最高温度用模数转换最大值表示为FFH,供后续程序处理。
二进制温度值转化成BCD码温度显示值的程序设计
采集到的温度数据经过A/D成数字量并得到滤波处理和放大倍数的调整,最终仍是二进制数字量不能直接驱动数码管显示。怎样才能显示呢?这就必须让二进制温度值转化成BCD码,再经过后续处理成为显示字型码驱动LED数码管。所以,此程序包括两部分,二进制转换成BCD码,BCD码转换为字型吗。
经过前向通道调整的温度值由8位二进制成为了10位二进制,最终要成为4字节的BCD码。所以,影响的系统资源有:PSW,A,R2~~R7,堆栈要求为2字节。入口信息:待转换的双字节16位的二进制在R6,R7中。出口信息:转换后的三字节BCD码整数放在R3,R4,R5中。
定时/计数器T1溢出中断程序的设计实现
此系统在设计初时并没有考虑使用定时/计数器T1。后来由于自动方式下需要每隔3S显示一次通道的温度值,所以在后续修改时设计了此中断溢出子程序。它的设计思想是这样的:当自动方式键被按下时系统启动T1定时器进行50ms的计时,当计时结束申请中断,中断程序将判断是否计满60次即3S。是,则打开外部中断INT0,即允许采样中断程序根据ADC0809的转换情况进行中断采样;否,则继续计数50MS直到满足要求。
提示:此毕业设计论文完整版包含【论文】 作品编号:dzxx0022,word全文:35页,合计:16000字 |
本电子信息技术毕业设计论文作品由 毕业论文设计参考 [http://www.qflunwen.com] 征集整理——AT89C51单片机温度巡回测控仪设计(论文)!