基于8086微处理器的温度控制系统内容摘要:

2 .4KK1S P D TQ19 01 3D2I N 40 07+ 12 V+ 5V灯泡 图 8279 的逻辑符号 LED 显示器 工作原理: 发光二极管组成的显示器事单片机应用产品中最常用的廉价输出设备。 它由若干个发光二极管按一定的规律排列而成。 当某一个 发光二极管导通时,相应的一个点或一个比划被点亮,控制不同组合的二极管导通,就能显示出多种字符。 显示器的工作方式有两种,一种是静态显示:当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。 另一种事本次设计中采用的动态显示方式:所谓动态显示即一位一位轮流的点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。 但由于时间间隔很小,我们就可以看到完整的显示了。 第 8 页 共 24 页 图 数据显示部分 键盘 键盘在本实验中的作用 由于本设计需要向系统输入一个温度设定值,所以键盘起到了输入温度设定值的作用。 图 键盘连接部分 第 9 页 共 24 页 图 报警部分电路 四、 系统软件 设计 本设计的目的是以 8086 微处理器为控制器,将温度传感器输出的小信号经过放大和低通滤波后,送至 A/D 转换器;微控制器实时采集、显示温度值(要求以摄氏度显示),同时系统还应可设定、控制温度值, 实现温度超值后报警的功能。 主程序 通过开始界面,显示提示信息,调用温度子程序,设置温度。 通过模数转换器采集 A\D 值并求其平均值。 调用 BCD 码转换子程序将其转换为十进制温度值;调用显示子程序,如果温度 低 于实际温度,就加热,反之 则报警。 在此过程中,还可以重复设置温度值。 其流程图如图 所示。 第 10 页 共 24 页 图 N 开始 系统初始化 显示提示信息 调用温度值设置 子程序 实际温度低于给定值 PA0=1 加热 8255 PC6 口 =1 开始报警 8255 PC7 口 =1 显示提示信息 调用温度值设置子程序重新设置温度并将 PA0 拨到 0 以进行重新调节 返回 采集 A\D 值并求其平均值 调用 BCD 码转换子程序 将其转换为十进制温度值 调用显示子程序 Y Y N N N 有键按下 第 11 页 共 24 页 2. BCD 码转换子程序 设定温度为 0摄氏度时变换放大电路送出的模拟量为 ,此时 A/D 输出的数字量为 00H;温度为 68℃ 时变换器送出对应电压 ,此时 A/D 输出的数字量为 FFH,即每 ℃ 对应 1LSB 的变化量,对应电压值为。 报警温度设定为 68℃ ,此时,输出电压约为 左右。 其流程图如图 所示。 图 BCD 码转换子程序 采用动态显示方式,其流程图如图 所示。 BCD 码转换子程序 将采集得到的平均值乘以 转换为温度值 返回 对其进行非压缩 BCD码乘法调整 通过移位得到组合 BCD 码 第 12 页 共 24 页 问了避免加热温度过高,在程序设计中加了一条,即设定值不能大于 68℃,否则就认为有错系统报警。 其流程图如图 所示。 图 得到温度值各位上的数 通过查表指令得到 对应的数码管的断码 温度值设置子程序 键入温度值十位上的数值将它存于[ DI] 键入温度值个位上的数值将它存于[ DI+1] 将十位上的数值左移四位并与个位上的数值既得温度值 设置温度大于 68℃ 将温度值存于[ DI+1] 返回 声音报警并显示错误信息 返回 显示温度值十位上的数值 延时 返回 显示子程序 N Y 图 先将十进制温度值( AL)送到 (BL) 通过查表指令得到对应的数码管的断码 显示温度值个位上的数值 延时 取出( BL)中的温度值 得到温度值十位上的数值 第 13 页 共 24 页 扫描按键子函数流程图 NO YES 开始 写入 8279 控制字 有键按下。 读 FIFO/ROM,键号转化为键值并输出 NO KEY RET 结束 图 按键扫描流程图 第 14 页 共 24 页 、程序 CSAD EQU 209H Z8279 EQU 212H D8279 EQU 210H LEDMOD EQU 00H; 左边输入,八位显示外部译码八位显示 LEDFEQ EQU 38H。 扫描频率 LEDCLS EQU 0C1H。 清除显示 RAM Z8255 EQU 21BH Z8255A EQU 218H Z8255C EQU 21AH COUNT EQU 8 DATA SEGMENT DATA1 DB 4 DUP(?) MESS1 DB ‘ENTER ANY KEY TO BEGIN!’ ,0DH,0AH,’ $’ MESS2 DB 10, 13, ’ ENTER ANY KEY CAN EXIT TO DOS!’ ,0DH,0AH, ’ $’ MESS3 DB 10, 13, ’ INPUT THE TEMPERATURE VALUE: ’,’ $’ MESS4 DB 10, 13, ’ INPUT VALUE ERROR!’,0DH,0AH, ’ $’ MESS5 DB 10, 13, ’ INPUT A NEW TEMPERATURE VALUE:’,’ $’ MESS6 DB 10, 13, ’ *** LET PA0=0 TO ADJUST THE TEMPERATURE VALUE!***’,0DH,0AH,’ $’ MESS7 DB 10, 13, ’ *** LET PA0=1 TO INPUT A NEW TEMPERATURE VALUE!***’, 0DH,0AH,’ $’ LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H 第 15 页 共 24 页 DATA ENDS STACK SEGMENT SRACK STA DW 50 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS: CODE,DS: DATA,ES: DATA,SS: STACK START: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AH,09H。 显示提示信息一 MOV DX, OFFSET MESS1 INT 21H MOV AH,09H。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。