基于51单片机地温度控制系统.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
原理电路总设计图 23 附录 2 源程序: FK1 EQU 24H ;F(k) 实测温度 FK EQU 25H ;F(k) 实测温度暂存 RK EQU 26H ;R(k) 给定温度 SHI1 EQU 30H ; 实测温度十位 SHI2 EQU 31H ; 实测温度个位 SHI3 EQU 32H ; 实测温度小数位 GAO EQU 33H ; 给定温度十位 ZHO EQU 34H ; 给定温度个位 DI EQU 35H ; 给定温度小数位 CNT EQU 37H ; 按键消抖计数器 LSB EQU 50H ; 检测温度低 8 位 MSB EQU 51H ; 检测温度高 8 位 K_INM BIT P3.1 ;DI 位设定温度按键 K_INH BIT P3.2 ;ZHO 位设定温度按键 KI BIT P3.3 ;GAO 位设定温度按键 DQ BIT P3.0 ;DS18B20 的温度输入口 ORG 0000H ; 主程序入口地址 AJMP MAIN ; 跳转到主程序 ORG 000BH ;T0 中断入口地址 ORG 001BH ;T1 中断入口地址 ORG 0050H MAIN:MOV SP,#60H ; 堆栈指针初始化 MOV GAO,#0 ; 置设定值显示十位初值 MOV ZHO,#0 ; 置设定值显示个位初值 MOV DI,#0 ; 置设定值显示小数位初值 MOV CNT,#10 ; MOV TMOD,#11H ; 定时器 T0、 T1 初始化(方式 1) MOV TH0,#3CH ;T0 定时器 定时常数 24 MOV TL0,#0B0H ; MOV TH1,#0FCH ;T1 定时器 定时常数 MOV TL1,#18H ; SETB PT1 ;T1 优先中断 MOV IE,#8AH ; 中断使能 SETB TR0 ; 启动定时器 T0 SETB TR1 ; 启动定时器 T1 LOOP:ACALL GETTMP ; 调用测温子程序 ACALL BBLD ; 调用二十进制子程序 ACALL TER ; 调用拆字子程序 ACALL XIAOSHU ; 调用小数处理子程序 ACALL DISP1 ; 调用测得温度显示程序 ACALL KEY ; 调用按键处理子程序 ACALL IDTB ; 调用十二进制转换子程序 ACALL CHK1 ; 调用报警子程序 ACALL DISP2 ; 调用设定温度显示子程序 AJMP LOOP ; 循环 ;******* 测温子程序 ****** GETTMP:ACALL RESET_PULSE ACALL PRESENCE MOV A,#0CCH ACALL WRITE_BYTE ; 发跳过 ROM命令 MOV A,#44H ACALL WRITE_BYTE ; 发出温度转换命令 JNB DQ,$ ACALL RESET_PULSE ACALL PRESENCE MOV A,#0CCH ; 发跳过 ROM命令 ACALL WRITE_BYTE MOV A,#0BEH ; 发读存储器命令 ACALL WRITE_BYTE 25 ACALL READ_BYTE MOV LSB,A ; 温度值低位字节送 LSB ACALL READ_BYTE MOV MSB,A ; 温度值高位字节送 MSB ACALL RESET_PULSE ACALL PRESENCE MOV A,MSB SWAP A ANL A,#70H MOV FK,A MOV A,LSB SWAP A ANL A,#0FH ORL FK,A MOV FK1,FK RET ***** 读 DS18B20的程序 ******* READ_BYTE:MOV R6,#8 READ1:CLR DQ NOP NOP SETB DQ NOP NOP NOP MOV R5,A MOV C,DQ MOV A,R5 MOV R7,#30 DJNZ R7,$ RRC A 26 DJNZ R6,READ1 RET PRESENCE:JB DQ,$ JNB DQ,$ RET RESET_PULSE:CLR DQ MOV R7,#250 DJNZ R7,$ SETB DQ MOV R7,#10 DJNZ R7,$ RET ;********** 写 DS18B20的程序 ******* WRITE_BYTE:MOV R6,#8 WRITE:RRC A JC WRITE1 CLR DQ MOV R7,#30 DJNZ R7,$ SETB DQ NOP NOP NOP NOP DJNZ R6,WRITE RET WRITE1:CLR DQ NOP NOP NOP NOP 27 SETB DQ MOV R7,#30 DJNZ R7,$ DJNZ R6

文档评论(0)

5566www + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档