淄 博 职 业 学 院 毕 业 论 文
MOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD1 ACALL T12MS JB S2, ADD1 JNB S2, $ INC TEMPL MOV A, TEMPL
CJNE A, #100, ADD1 MOV TEMPL, #0 ADD1: JB S3, ADD2 ACALL T12MS JB S3, ADD2 JNB S3, $ DEC TEMPL MOV A, TEMPL
CJNE A, #00 , ADD2 MOV TEMPL,#100 ADD2: JB S4, TIAOTL ACALL T12MS JB S4, TIAOTL JNB S4, $
MOV TEMPUTER, 50H LJMP START
TIAOTH:MOV 50H, TEMPUTER MOV 37H, TEMPH ACALL BIN_BCD ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS MOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS
10
淄 博 职 业 学 院 毕 业 论 文
ACALL T12MS ACALL T12MS JB S2, ADD11 ACALL T12MS JB S2, ADD11 JNB S2, $ INC TEMPH MOV A, TEMPH
CJNE A, #100, ADD11 MOV TEMPH, #0 ADD11: JB S3, ADD22 ACALL T12MS JB S3, ADD22 JNB S3, $ DEC TEMPH MOV A, TEMPH
CJNE A, #00 , ADD22 MOV TEMPH,#100 ADD22: JB S4, TIAOTH ACALL T12MS JB S4, TIAOTH JNB S4, $
MOV TEMPUTER, 50H LJMP START TOIT: PUSH PSW PUSH ACC
MOV TH0, #3CH MOV TL0, #0B0H INC MS50 MOV A, MS50
CJNE A, #14H, RETURN MOV S1OK, #1 MOV MS50, #00H RETURN:POP ACC POP PSW RETI
4.2 读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图8示
11
淄 博 职 业 学 院 毕 业 论 文
发DS18B20复位命令 发跳过ROM命令 发读取温度命令 读取操作,CRC校验 Y 9字节完? Y CRC校验正?确? N N 移入温度暂存器 结束
图8读温度流程图
读取温度子程序为: INIT_1820: SETB P2.0 NOP
CLR P2.0 MOV R0,#06BH MOV R1,#03H TSR1:
DJNZ R0,TSR1 MOV R0,#6BH DJNZ R1,TSR1 SETB P2.0 NOP NOP NOP
12
淄 博 职 业 学 院 毕 业 论 文
MOV R0,#25H TSR2:
JNB P2.0,TSR3 DJNZ R0,TSR2 LJMP TSR4 TSR3:
SETB 20H.1 LJMP TSR5 TSR4:
CLR 20H.1 LJMP TSR7 TSR5:
MOV R0,#06BH MOV R1,#03H TSR6:DJNZ R0,TSR6 MOV R0,#6BH DJNZ R1,TSR6 TSR7:SETB P2.0 RET
RE_CONFIG:JB 20H.1,RE_CONFIG1 RET RE_CONFIG1:
MOV A,#0CCH
LCALL WRITE_1820 MOV A,#4EH
LCALL WRITE_1820 MOV A,#00H
LCALL WRITE_1820 MOV A,#00H LCALL WRITE_1820 MOV A,#1FH
LCALL WRITE_1820 RET GET_TEMPER:
SETB P2.0
LCALL INIT_1820 JB 20H.1,TSS2 RET TSS2:
MOV A,#0CCH LCALL WRITE_1820 MOV A,#44H
LCALL WRITE_1820 LCALL INIT_1820
13
淄 博 职 业 学 院 毕 业 论 文
MOV A,#0CCH LCALL WRITE_1820 MOV A,#0BEH LCALL WRITE_1820 LCALL READ_18200 MOV 37H,A RET
4.3 温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成[6]。温度转换命令子程序流程图如下图,图9所示
发DS18B20复位命令 发跳过ROM命令 发温度转换开始命令 结束 图9 温度转换流程图
温度转换程序:
TEMPER_COV: MOV A,#0F0H ANL A,36H SWAP A MOV 37H,A MOV A,36H
JNB ACC.3,TEMPER_COV1 INC 37H TEMPER_COV1:
MOV A,35H ANL A,#07H SWAP A
ADD A,37H MOV 37H,A LCALL BIN_BCD RET
4.4 计算温度子程序
14
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业论文正文(3)在线全文阅读。
相关推荐: