JB P3.7,$
MOV 24H,#00H ;R4 MOV 25H,#03FH ;R4 MOV 26H,#00H MOV 27H,#03FH MOV R3,#00H MOV R4,#00H
LCALL QINGPING QINGPINGHAI1:
JNB P3.7,QINGPINGRED0 JNB P3.6,QINGPINGEND AJMP QINGPINGHAI1
QINGPINGRED0: JB P3.7,$
MOV 24H,#0E0H ;R4 MOV 25H,#0FFH ;R4 MOV 26H,#0E0H MOV 27H,#0FFH MOV R3,#00H MOV R4,#0E0H LCALL QINGPING QINGPINGRED1:
JNB P3.7,QINGPINGLV0 JNB P3.6,QINGPINGEND AJMP QINGPINGRED1
QINGPINGLV0: JB P3.7,$
MOV R1,#00H MOV R2,#03H MOV R3,#10H MOV R4,#0B0H LCALL XML ;写命令 LCALL XSJ ;写数据
MOV R1,#00H MOV R2,#22H LCALL XML ;写命令 MOV 24H,#0C3H ;底 MOV 25H,#3FH ;字 MOV 26H,#0C3H ;底 MOV 27H,#3FH ;字 MOV R3,#00H MOV R4,#0C3H LCALL QINGPING
QINGPINGLV1:
JNB P3.7,QINGPINGHAI0 JNB P3.6,QINGPINGEND AJMP QINGPINGLV1
;========================= QINGPINGEND: MOV R1,#00H MOV R2,#22H LCALL XML ;写命令 LCALL GUDING ;固定字符 LCALL WINDU ;温度 LCALL YAOKONG ;遥控 LJMP XSU MAIN:
LCALL DINGSHISHU ;定时数 LCALL DINGSHIZU ;定时组 LCALL XPX ;星期几 LCALL SHIJIAN ;时间 LCALL WENDUCHULI LCALL WINDU ;温度 LCALL TIR0
SETB P2.5 ;-----完全相等---关闹 CLR P2.6 ;-----完全相等---关闹 MAIN1: CLR P2.7
LCALL SHIJIAN ;时间
;底
LCALL JP0 ;键盘
;遥控处理
LCALL POWER
;----------------------
MOV A,2CH
CJNE A,RR3,MAIN2 ;RR3为分计 LJMP MAIN3 ;定义十秒锺扫一次温度 MAIN2:
MOV 2CH,RR3
LCALL WENDUCHULI ;温度处理 LCALL WINDU ;温度
MAIN3:
MOV A,RR0 ;分有变动就扫描定时 CJNE A,RR4,MAIN4 ;RR4为分 LJMP MAIN1 MAIN4:
MOV RR0,RR4
LCALL BIJIAO ;定时比较
LJMP MAIN1
;=============温度处理====================== WENDUCHULI: LCALL WENDUXS MOV A,21H MOV R0,#20H XCHD A,@R0 ANL A,#0FH
;读写子程序
MOV 21H,A
MOV A,20H SWAP A
;21H小数处理
;20整数处理
MOV 20H,A
JB 07H,WENDUCHULI1;是负数转 MOV WD4,26H ;清除负数标示
LCALL WENDUCHULI0 ;写整数个位 MOV WD2,A
LCALL WENDUCHULI0 ;写整数十位 MOV WD1,A
MOV A,21H ;写小数位 MOV B,#02 DIV AB MOV B,A ADD A,B ADD A,#30H
MOV WD3,A ;写小数位 RET
WENDUCHULI1:;负数处理..... MOV WD4,27H ;负数标示 MOV A,20H ;20整数处理 CPL A ;取反 ANL A,#7FH ;清负数位 INC A ;加一
MOV 20H,A ;20整数处理
MOV A,21H ;21H小数处理 CPL A ;取反 ANL A,#0FH ;清除高位 INC A ;加一
MOV 21H,A ;21H小数处理
LCALL WENDUCHULI0 ;写整数个位 MOV WD2,A
LCALL WENDUCHULI0 ;写整数十位 MOV WD1,A MOV A,21H
;写小数位
MOV B,#02 DIV AB MOV B,A ADD A,B ADD A,#30H
MOV WD3,A ;写小数位 RET
;------------整数写子程序-------- WENDUCHULI0:
MOV A,20H ;整数写子程序 MOV B,#10 DIV AB
MOV 20H,A MOV A,B ADD A,B
ADD A,#30H ;整数写子程序 RET
;======写数据=========
WENDUXS:
LCALL WENDURST
JB 70H,WENDUXS1 ;检复位成功了转 RET
WENDUXS1:
MOV A,#0CCH ;跳过ROM LCALL WENDUXS_B
MOV A,#44H
LCALL WENDUXS_B ;RAM温度转换 MOV R4,#50 D1: ;等待750uS转换完成 MOV R5,#13 DJNZ R5,$ DJNZ R6,D1