CLR FLAG1 LJMP TSR6 TSR5:
MOV R0,#100 DJNZ R0,$ TSR6:
SETB DQ RET
;******************************************* ;读出转换后的温度
;******************************************* GET_TEMPER:
SETB DQ
LCALL INIT_1820 JB FLAG1, TSS2 RET TSS2:
MOV A,#0CCH LCALL WRITE_1820 MOV A,#44H
LCALL WRITE_1820 LCALL S_DELAY LCALL INIT_1820 MOV A,#0CCH LCALL WRITE_1820 MOV A,#0BEH LCALL WRITE_1820 LCALL READ_18B20 RET
;******************************************* ;写,读DS18B20的子程序
;******************************************** WRITE_1820:
MOV R2,#8 CLR C WR1:
CLR DQ MOV R3,#3
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
DJNZ R3,$ RRC A MOV DQ,C MOV R3,#33 DJNZ R3,$ SETB DQ NOP
DJNZ R2,WR1 SETB DQ RET
READ_18B20:
MOV R4,#2 MOV R1,#31H RE00: MOV R2,#8 RE01: CLR C SETB DQ NOP NOP
CLR DQ NOP NOP NOP
SETB DQ MOV R3,#9 RE10: DJNZ R3,RE10 MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A
DJNZ R2,RE01 MOV @R1,A DEC R1
DJNZ R4,RE00 RET
;***************************************************** ;数据处理子程序,判断正负,并分离转换值的整数和小数部分 ;符号位为SIGN,0为正,1为负
;整数部分存放在INTEG(32H)中,小数部分存放在DECIM(33H)中 ;***************************************************** DATA_PROC:
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
CLR C CLR SIGN MOV A ,MSB RLC A JC NEG LJMP PROC NEG:
CLR C SETB SIGN MOV A,LSB CPL A ADD A,#1 MOV LSB,A MOV A,MSB CPL A ADDC A,#0 MOV MSB,A PROC:
MOV A,LSB ANL A,#0FH MOV DECIM,A MOV A,MSB SWAP A
ANL A,#0F0H MOV INTEG,A MOV A,LSB SWAP A
ANL A ,#0FH MOV R0,INTEG ORL A,R0 MOV INTEG,A
RET
;*************************************************************** ;生成显示码子程序 ,摄氏首地址为34H,开式首地址为50H,华氏为63H ;符号位断码存放在SEG-S中,整数断码存放在SEG-I3到SEG-I1中 ;小数部分断码存放在SEG_D1(38H),SEG_D2(39H)中 .
;*************************************************************** SEG_GEN:
JB SIGN,S_NEG MOV SEG_S,#00H SJMP S_INT S_NEG:
MOV SEG_S,#40H S_INT:
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
MOV A,INTEG MOV B,#100 DIV AB MOV 58H,A
MOVC A,@A+DPTR MOV SEG_I3,A MOV A,B MOV B,#10 DIV AB MOV 59H,A MOVC A,@A+DPTR MOV SEG_I2,A MOV A,B MOV 5AH,A MOVC A,@A+DPTR ORL A,#80H MOV SEG_I1,A
MOV A,DECIM MOV B,#12 MUL AB PUSH ACC MOV A,DECIM CLR C RRC A MOV R3,A POP ACC ADD A,R3
MOV B,#2 DIV AB PUSH ACC MOV A,B
CJNE A,#01H,SW1 POP ACC AJMP ACT SW1: POP ACC INC A ACT: MOV B,#10 DIV AB MOV 5BH,A
MOVC A,@A+DPTR MOV SEG_D1,A MOV A,B
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
MOV 5CH,A MOVC A,@A+DPTR MOV SEG_D2,A
MOV SEG_O,#63H ;符号 ℃ MOV SEG_C,#39H
MOV A,5CH ;计算开式温标数值
AGAIN1: ADD A,#5 MOV B,#10 DIV AB MOV 68H,B ADD A,5BH ADD A,#1 MOV B,#10 DIV AB MOV 67H,B ADD A,5AH ADD A,#3 MOV B,#10 DIV AB MOV 66H,B ADD A,59H ADD A,#7 MOV B,#10 DIV AB MOV 65H,B ADD A,58H ADD A,#2 MOV B,#10 DIV AB MOV 64H,B MOV R0,#64H
MOV A,@R0 MOVC A,@A+DPTR MOV @R0,A INC R0
CJNE R0,#69H,AGAIN1 ORL 66H,#80H
MOV 69H,#06H ;得到开式段码符号K
;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说医药卫生基于18B20的单片机课程设计报告(含汇编程序)(3)在线全文阅读。
相关推荐: