DS18B20数字温度计的主程序

DS18B20数字温度计的主程序

ID:38161471

大小:61.50 KB

页数:9页

时间:2019-06-06

DS18B20数字温度计的主程序_第1页
DS18B20数字温度计的主程序_第2页
DS18B20数字温度计的主程序_第3页
DS18B20数字温度计的主程序_第4页
DS18B20数字温度计的主程序_第5页
资源描述:

《DS18B20数字温度计的主程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、河南科技大学本科毕业设计(论文)主程序ORG0000HLJMPSTARTSTART:MOVDISBUF4,#00H;开始,初始化MOVDISBUF5,#00HMAIN:;主程序LCAALKEY;调按键预置数子程序CLRRS1CLRRS0LCALLRESET;调复位子程序MOVA,#0CCH;跳过ROM匹配------0CCLCALLWRITE;调DS18B20子程序MOVA,#44H;发出温度转换命令LCALLWRITE;调DS18B20子程序LCALLRESET;调复位子程序MOVA,#0CCH;跳过ROM匹配LCALLWRITE;调

2、DS18B20子程序MOVA,#0BEH;发出读取温度值命令LCALLWRITE;调DS18B20子程序LCALLREAD;调DS18B20子程序MOVA,3DHMOV29H,ALCALLREADMOVA,3DHMOV28H,AMOVR0,#34HMOVA,28HRLCAMOV47H,CJNB47H,BTOD1;28H中的最高位是否为1(温度<0)9河南科技大学本科毕业设计(论文);小于0的温度值不处理,大于0顺序执行BTOD1:MOVA,28HRRCAMOV40H,CRRCAMOV41H,CRRCAMOV42H,CRRCAMOV43H

3、,CMOVA,29HMOV27H,AMOVC,40H;将28H中的最低位移入C,40H41H42H43H;为28H中的位地址RRCA;将28H中的低4位移到A的高4位MOVC,41HRRCAMOVC,42HRRCAMOVC,43HRRCAMOV29H,A;将28H中的低4位放入29H中MOVA,29H;将29H中的十六进制数转换成10进制MOVB,#100DIVABMOV@R0,A;百位存于34HMOV@R0,#11H;百位不显示DECR0MOVA,#10XCHA,B9河南科技大学本科毕业设计(论文)DIVABMOV@R0,A;十位存于

4、33HDECR0MOV@R0,B;个位存于32HDECR0ANL27H,#0FH;小数点后一位进制转换MOVA,27HMOVB,#06HMULABMOVB,#10DIVABMOV@R0,A;小数点后一位存于31HMOVDISBUF0,33H;十位MOVDISBUF1,32H;个位MOVDISBUF2,31H;小数位MOVDISBUF3,#0H;置0MOVDISBUF6,#0HMOVDISBUF7,#0HLCALLCMP;调比较报警子程序LCALLDISPLAY;调显示子程序LJMPMAIN;转到MAINDS18B20复位子程序RESET

5、:NOPL0:CLRP3.7;拉低数据线MOVR2,#200;发出600us的复位脉冲L1:NOPDJNZR2,L1SETBP3.7;主机释放数据线9河南科技大学本科毕业设计(论文)MOVR2,#30;DS18B20等待60usL4:DJNZR2,L4CLRCORLC,P3.7;DS18B20数据变低(存在脉冲)吗?JCL3;DS18B20未准备好,重新初始化MOVR6,#80L5:ORLC,P3.7JCL3;DS18B20数据变高,初始化成功DJNZR6,L5;数据线低电平可持续3us*80=240usSJMPL0;初始化失败,重新初

6、始化L3:MOVR2,#250L2:DJNZR2,L2;DS18B20应答500usRET读DS18B20子程序READ:MOVR6,#8;循环8次,读一个字节RE1:CLRP3.7MOVR4,#6NOPNOPSETBP3.7RE2:DJNZR4,RE2;等待8USMOVC,P3.7;读DS18B20的数据RRCA;读取的数据移入AMOVR5,#30DJNZR6,RE1;读完一个字节的数据MOV3DH,A;数据存入3DH中SETBP3.7;把数据线拉高RET9河南科技大学本科毕业设计(论文)写DS18B20子程序;写DS18B20的子程

7、序,从DS18B20中写出一个字节的数据WRITE:MOVR3,#8;循环8次,写一个字节WR1:SETBP3.7;拉高数据线MOVR4,#8RRCA;写入位从A中移到CYCLRP3.7WR2:DJNZR4,WR2;等待16USMOVP3.7,C;命令字按位依次送给DS18B20MOVR4,#20WR3:DJNZR4,WR3;保证写过程持续40USDJNZR3,WR1;未写完一个字节转WR1继续SETBP3.7;写完一个字节,数据线置高RET比较报警子程序CMP:MOVA,DISBUF0;实际测量温度值放在DISBUF8中SWAPAMO

8、VDISBUF8,AMOVA,DISBUF1ORLA,DISBUF8MOVDISBUF8,AMOVA,DISBUF4;预置温度值放在DISBUF9中SWAPAMOVDISBUF9,AMOVA,DISBUF5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。