数字温度计原程序.doc

数字温度计资料

收藏

压缩包内文档预览:
预览图 预览图 预览图
编号:6180972    类型:共享资源    大小:73.36KB    格式:ZIP    上传时间:2017-12-05 上传人:超****计 IP属地:浙江
3.6
积分
关 键 词:
数字 温度计 资料
资源描述:
数字温度计资料,数字,温度计,资料
内容简介:
数字温度计程序清单S1OK EQU 5FHTEMPUTER EQU 39HTEMPH EQU 5EHTEMPLEQU 5DHMS50 EQU 5CHSIGN EQU 5BHS1 BIT P1.0S2 BIT P1.1S3 BIT P1.2S4 BIT P1.3ORG 0000HLJMP MAINORG 000BHLJMP TOITORG 0030HMAIN: MOV SP, #60HMOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HSETB ET0SETB TR0SETB EAMOV TEMPH, #30MOV TEMPL, #9MOV TEMPUTER, #15 ;温度最始值MOV S1OK, #00HMOV SIGN, #00HMOV 38H, #0BHMOV 37H, #0CHMOV 36H, #0BHACALL DISPACALL T1S; *; 主程序START: JB S1, NET1ACALL T12MSJB S1, NET1JNB S1, $INC SIGNMOV A, SIGNCJNE A, #1, TIAOACALL TIAOTLTIAO:CJNE A, #2, NET1MOV SIGN, #0ACALL TIAOTH; *NET1: MOV A, S1OKCJNE A, #1, STARTMOV A, TEMPUTERSUBB A, TEMPHJNB ACC.7, ALEMMOV A, TEMPUTERSUBB A, TEMPLJB ACC.7, ALEMSETB P2.1ACALL WENDUACALL DISPMOV S1OK, #00HAJMP STARTALEM: MOV 36H, #0CHMOV 37H, #0CHMOV 38H, #0CHCLR P2.1ACALL DISPACALL T1SLCALL WENDULCALL DISPMOV S1OK, #00HSJMP START;*TIAOTL:MOV 50H, TEMPUTERMOV 37H, TEMPLACALL BIN_BCDACALL DISPACALL T12MSACALL T12MSACALL T12MSACALL T12MSMOV 36H, #0AHMOV 37H, #0AHMOV 38H, #0AHACALL DISPACALL T12MSACALL T12MSACALL T12MSACALL T12MSJB S2, ADD1ACALL T12MSJB S2, ADD1JNB S2, $INC TEMPLMOV A, TEMPLCJNE A, #100, ADD1MOV TEMPL, #0ADD1: JB S3, ADD2ACALL T12MSJB S3, ADD2JNB S3, $DEC TEMPLMOV A, TEMPLCJNE A, #00 , ADD2MOV TEMPL,#100ADD2: JB S4, TIAOTLACALL T12MSJB S4, TIAOTLJNB S4, $MOV TEMPUTER, 50HLJMP START; 高位调整; *TIAOTH:MOV 50H, TEMPUTERMOV 37H, TEMPHACALL BIN_BCDACALL DISPACALL T12MSACALL T12MSACALL T12MSACALL T12MSMOV 36H, #0AHMOV 37H, #0AHMOV 38H, #0AHACALL DISPACALL T12MSACALL T12MSACALL T12MSACALL T12MSJB S2, ADD11ACALL T12MSJB S2, ADD11JNB S2, $INC TEMPHMOV A, TEMPHCJNE A, #100, ADD11MOV TEMPH, #0ADD11: JB S3, ADD222ACALL T12MSJB S3, ADD22JNB S3, $DEC TEMPHMOV A, TEMPHCJNE A, #00 , ADD22MOV TEMPH,#100ADD22: JB S4, TIAOTHACALL T12MSJB S4, TIAOTHJNB S4, $MOV TEMPUTER, 50HLJMP START; 一秒定时中段; *TOIT: PUSH PSWPUSH ACCMOV TH0, #3CHMOV TL0, #0B0HINC MS50MOV A, MS50CJNE A, #14H, RETURNMOV S1OK, #1MOV MS50, #00HRETURN:POP ACCPOP PSWRETI; *;温度总子程序; *wendu: ACALL INIT_1820ACALL RE_CONFIGACALL GET_TEMPERACALL TEMPER_COVRET; *;DS18B20 初始化程序; *INIT_1820:SETB P2.0NOPCLR P2.0MOV R0,#06BHMOV R1,#03HTSR1:DJNZ R0,TSR1 ; 延时MOV R0,#6BHDJNZ R1,TSR1SETB P2.0NOPNOPNOPMOV R0,#25HTSR2:JNB P2.0,TSR3DJNZ R0,TSR2LJMP TSR4 ; 延时TSR3:SETB 20H.1 ; 置标志位,表示 DS1820 存在LJMP TSR5TSR4:CLR 20H.1 ; 清标志位,表示 DS1820 不存在LJMP TSR7TSR5:MOV R0,#06BHMOV R1,#03HTSR6:DJNZ R0,TSR6 ; 延时MOV R0,#6BHDJNZ R1,TSR6TSR7:SETB P2.0RET; *; 重新写 DS18B20 暂存存储器设定值; *RE_CONFIG:JB 20H.1,RE_CONFIG1 ; 若 DS18B20 存在,转 RE_CONFIG1RETRE_CONFIG1:MOV A,#0CCH ; 发 SKIP ROM 命令LCALL WRITE_1820MOV A,#4EH ; 发写暂存存储器命令LCALL WRITE_1820MOV A,#00H ; TH(报警上限)中写入 00HLCALL WRITE_1820MOV A,#00H ; TL(报警下限)中写入 00HLCALL WRITE_1820MOV A,#1FH ; 选择 9 位温度分辨率LCALL WRITE_1820RET; *; 读出转换后的温度值; *GET_TEMPER:SETB P2.0 ; 定时入口LCALL INIT_1820JB 20H.1,TSS2RET ; 若 DS18B20 不存在则返回TSS2:MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820LCALL INIT_1820MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200MOV 37H,A ; 将读出的温度数据保存RET; *; 写 DS18B20 的程序; *WRITE_1820:MOV R2,#8CLR CWR1:CLR P2.0NOPNOPNOPNOPRRC AMOV P2.0,CMOV R3,#35DJNZ R3,$SETB P2.0NOPDJNZ R2,WR13SETB P2.0RET; *; 读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数据; *READ_18200:MOV R4,#2 ; 将温度高位和低位 DS18B20 中读 RE00:MOV R2,#8RE01:CLR CSETB P2.0NOPNOPCLR P2.0NOPNOPNOPSETB P2.0NOPNOPMOV C,P2.0MOV R3,#35RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET; *; 将从 DS18B20 中读出的温度数据进行转换; *TEMPER_COV:MOV A,#0F0HANL A,36H ; 舍去温度低位中小数点SWAP AMOV 37H,AMOV A,36HJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC 37HTEMPER_COV1:MOV A,35HANL A,#07HSWAP AADD A,37HMOV 37H,A ; 保存变换后的温度数据LCALL BIN_BCDRET; *; 将 16 进制的温度数据转换成压缩 BCD 码; 38H 中放百位,37 十位,36 个位; *BIN_BCD:MOV 39H,37HMOV A,37HMOV B,#100DIV ABMOV 38H,AMOV 37H,BXCH A,BMOV B,#10DIV ABMOV 37H,AMOV 36H,BRETDISP: SETB RS0MOV R0, #36HMOV R7, #3LOOPP:MOV A, R0MOV DPTR, #TABMOVC A, A+DPTRMOV SBUF, AJNB TI, $CLR TIINC R0DJNZ R7, LOOPPCLR RS0RETTAB: DB 11H, 0D7H, 32H, 92H, 0
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:数字温度计资料
链接地址:https://www.renrendoc.com/p-6180972.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!