DS18B20数字温度计汇编程序

DS18B20数字温度计汇编程序

ID:38706474

大小:52.50 KB

页数:9页

时间:2019-06-18

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

《DS18B20数字温度计汇编程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、TEMPLEQU40HTEMPHEQU41HTEMPHCEQU42HTEMPLCEQU43HBUF1equ44h;温度十分之一位BUF2equ45h;温度个位BUF3equ46h;温度十位BUF4equ47h;温度十位FLAG1equ48hTEMPER_LEQU50HTEMPER_HEQU51HLEDDUANequp0;LEDDUAN段扫描代码TEMPDINBITP2.3;**********************org00hljmpmainorg03hretiorg0bhretiorg13hretiorg1bhretiorg23hreti;***************

2、***********************main:movsp,#07hclramovLEDDUAN,a;LEDDUAN灭movBUF4,#0;温度百位=0movBUF3,#8;温度十位=8movBUF2,#8;温度个位=8movBUF1,#8;温度十分之一位=8;lcallDISPLAYMOVSCON,#50H;设置串行口的工作方式为方式1允许串行接收SERIALPORT=MOD1BAUD=4800MOVTMOD,#20H;T1,MODE2自动重装初值的8位定时器MOVPCON,#0;#80H;SMOD=1串行口在方式1时波特率加倍MOVTH1,#0FAH;#0F3H

3、MOVTL1,#0FAH;#0F3H;波特率=fosc/12/(256-TC)/16MOVTCON,#40H;SETBTR1STARTTR1=1SETBEA;LCALLSENDWD;ljmpmain;==================================LM:LCALLGET_TEMPERLCALLCONVTEMPLCALLDISPBCDLCALLDISPLAYLCALLSENDWDAJMPLM;===================================;DS18B20复位初始化子程序;*******************************

4、*******INIT_1820:SETBTEMPDINNOPCLRTEMPDIN;主机发出延时复位低脉冲MOVR1,#3TSR1:MOVR0,#107DJNZR0,$DJNZR1,TSR1SETBTEMPDIN;然后拉高数据线NOPNOPNOPMOVR0,#25H;延时TSR2:JNBTEMPDIN,TSR3;等待DS18B20回应DJNZR0,TSR2LJMPTSR4;DS1820不存在TSR3:SETBFLAG1;置标志位LJMPTSR5TSR4:CLRFLAG1;清标志位LJMPTSR7TSR5:MOVR0,#117TSR6:DJNZR0,TSR6TSR7:SETB

5、TEMPDINRET;****************************************;读出转换后的温度值;****************************************GET_TEMPER:SETBTEMPDINLCALLINIT_1820;复位DS18B20JBFLAG1,TSS2RET;判断DS1820是否存在TSS2:MOVA,#0CCH;跳过ROM匹配LCALLWRITE_1820MOVA,#44H;温度转换LCALLWRITE_1820;*****************************************LCALL

6、DISPLAY;*****************************************LCALLINIT_1820MOVA,#0CCHLCALLWRITE_1820MOVA,#0BEH;从RAM中读数据LCALLWRITE_1820LCALLREAD_18200RET;*******************************************;写8位数据(待写内容在A中);*******************************************WRITE_1820:MOVR2,#8CLRCSETBTEMPDINNOPNOPWR1:CLR

7、TEMPDINMOVR3,#6DJNZR3,$RRCA;把写的位放到CMOVTEMPDIN,C;C内容到总线MOVR3,#23DJNZR3,$SETBTEMPDINNOPDJNZR2,WR1SETBTEMPDINRET;*************************************;温度转换子程序二进制求补再转换成十进制并除以2得到被测温度值;*************************************CONVTEMP:MOVA,TEMPHANLA,#80HJZTEMPC1CLRCMOVA

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

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

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