基于mcs-51单片机温湿度仪系统的设计(编辑修改稿)内容摘要:

******************************** ORG 00H LJMP MAIN ORG 03H LJMP LINT0 ORG 0BH LJMP LTIME0 ORG 13H LJMP CH451_INT1。 设置键盘中断外部中断1 ORG 23H LJMP RECIVE ORG 30HMAIN: MOV SP,60H LCALL INITIAL_GLCD。 调用LCD初试化 LCALL INICH451。 显示和键盘初始化 LCALL DS1302INI。 时钟芯片ds1302初始化 SETB IT1。 置外部中断信号为边沿触发 SETB EX1。 允许键盘中断 SETB EA。 开总中断STAT: MOV A,01H。 清除LCD显示器 LCALL COMMAND_GLCD MOV DPTR,DHZTAB1 MOV ADDR1,00H。 开始行位置 MOV N1,6。 显示数量 LCALL DHZ LCALL OFFDIS MOV 77H,0 MOV 78H,18H MOV 79H,18H MOV 7AH,0EH MOV 7BH,17H LCALL DISPLAY MOV 20H,0 MOV DATA_KEY,0 SETB EX1。 ***********键盘判断*****************************KEY0: JNB 00H,KEY0 CLR 00H MOV A,DATA_KEYKEY1: CJNE A,41H,KEY2。 39。 139。 键。 定时器 CLR EX1。 禁止键盘中断 MOV TMOD,01H。 T0方式1 MOV TL0,0B0H。 定时50毫秒 MOV TH0,3CH MOV R5,40。 2秒 SETB ET0。 允许T0中断 SETB EA CLR F0 SETB TR0 JNB F0,$ CLR F0 AJMP STAT。 外中断INT0KEY2: CJNE A,42H,KEY3。 39。 239。 键 CLR EX1 SETB IT0。 置外部中断0信号为边沿触发 SETB EX0 SETB EA JNB 01H,$ CLR 01H AJMP STAT。 存储器写记录KEY3: CJNE A,43H,KEY31。 39。 339。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCD MOV 77H,3 LCALL DISPLAY SETB WP。 控制允许24C02A读写 NOP CLR WP LCALL MEM LCALL DELAY_1S AJMP STAT。 存储器读记录KEY31: CJNE A,48H,KEY4。 39。 439。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCD MOV 77H,4 LCALL DISPLAYJKEY: JNB 00H,JKEY CLR 00H MOV A,DATA_KEY CJNE A,52H,JKEY1。 39。 4+A39。 键按顺序显示记录 MOV 7AH,0AH LCALL DISPLAY LCALL DELAY_1S LCALL DISJILU。 显示记录 AJMP STATJKEY1: CJNE A,53H,JKEY2。 39。 4+B39。 键按时间和日期显示记录 LCALL DISJILUDT MOV 7AH,0BH LCALL DISPLAY LCALL DELAY_1S AJMP STATJKEY2: CJNE A,53H,JKEY。 ‘4+E’键返回 MOV 7AH,0EH LCALL DISPLAY LCALL DELAY_1S AJMP STAT。 串行通讯发送KEY4: CJNE A,49H,KEY5。 39。 539。 键 CLR EX1 LCALL TONGXIF AJMP STAT。 串行通讯接收KEY5: CJNE A,4AH,KEY6。 39。 639。 键 CLR EX1 LCALL TONGXIS AJMP STAT。 蜂鸣器KEY6: CJNE A,4BH,KEY7。 39。 739。 键 CLR EX1 MOV R7,10KK: LCALL YAN300 CPL LCALL YAN300 CPL DJNZ R7,KK SETB EX1 AJMP STAT。 A/DKEY7: CJNE A,50H,KEY8。 39。 839。 键 LCALL ADREAD AJMP STAT。 D/AKEY8: CJNE A,51H,KEY9。 39。 939。 键 LCALL DAWRITE AJMP STAT。 D/AKEY9: CJNE A,52H,KEY10。 39。 A39。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCDCONT: SETB ACK LCALL MEASTEMP。 测量温度 结果在B(6位整数)A(8位小数)中 LCALL DISTEMP。 显示测量温度 LCALL YAN300 LCALL MEASHUMI LCALL DISHUMI LCALL DELAY_1S JNB 00H,CONT CLR 00H AJMP STAT。 键盘输入日期和时间初值KEY10: CJNE A,53H,KEY11。 39。 B39。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCD LCALL DT。 键盘输入日期和时间初值 AJMP STAT。 显示日期和时间KEY11: CJNE A,58H,KEY12。 39。 C39。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCD MOV 77H,0CH LCALL DISPLAY LCALL XTTIME AJMP STAT。 将记录个数清零KEY12: CJNE A,59H,KEY13。 39。 D39。 键 LCALL OFFDIS MOV A,01H。 清除显示器 LCALL COMMAND_GLCD MOV 77H,0DH LCALL DISPLAY MOV 47H,0A0H。 写命令0A0H=1010 000(页地址) 0(写) MOV 48H,0。 地址00H存记录个数 MOV 49H,0。 数据 LCALL WRDATA。 记录个数清零 LCALL DELAY_1S AJMP STATKEY13: AJMP KEY0。 ***********按时间和日期显示记录***********************DISJILUDT: MOV COUNT,0。 统计键盘输入年、月、日、时查询和显示 MOV R0,30HDDT: JNB 00H,DDT CLR 00H MOV A,DATA_F MOV @R0,A INC COUNT RET。 按顺序显示记录。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。