ACALL WR_1820 ACALL RESET MOV A,#0CCH ACALL WR_1820 MOV A,#0BEH ACALL WR_1820 ACALL READ_1820 RET
;=========把高温和低温限值写入寄存器=================
WR_THL: JB FLAG,WR_HL
;==========把高温和低温限值写入EEPROM=================
WR_PROM:ACALL RESET
;========把EEPROM的值返回到高温和低温限值寄存器======== RE_PROM:
ACALL RESET MOV A,#0CCH ACALL WR_1820 MOV A,#0CCH ACALL WR_1820 MOV A,#48H ACALL WR_1820 RET RET MOV A,#0CCH ACALL WR_1820 MOV A,#4EH ACALL WR_1820 MOV A,TEMP_TH ACALL WR_1820 MOV A,TEMP_TL ACALL WR_1820 RET
WR_HL: ACALL RESET
MOV A,#0B8H ACALL WR_1820 RET
;===========初始化1820================================== RESET: SETB DQ
FLAG1: SETB NDQ:
;=============1820写字节======================== WR_1820:
MOV R6,#8 CLR C
CLR FLAG
DQ
ACALL ERROR RET MOV R5,#100 DJNZ SETB DJNZ
R5,$ DQ R5,$
FLAG
SETB NOP
MOV R5,#25H DJNZ JMP NDQ
R5,RESET1 DQ
NOP CLR DQ MOV R5,#250 DJNZ
R5,$
RESET1: JNB DQ,FLAG1
MOV R5,#100 JMP RETU
RETU: SETB
CLR DQ
R5,$
MOV R5,#7 DJNZ RRC A MOV DQ,C MOV R5,#25 DJNZ SETB NOP NOP DJNZ SETB RET
R6,WR1 DQ R5,$ DQ
WR1:
;==============读取1820数据====================== READ_1820:
MOV R2,#4 MOV R1,#TEMPL
MOV R6,#8 SETB
DQ
RE1: RE2:
NOP
CLR DQ CLR C NOP NOP SETB DJNZ
DQ R5,$
MOV R5,#9
MOV C,DQ MOV R5,#24 DJNZ RRC A DJNZ
R6,RE2 R5,$
MOV @R1,A DEC R1 DJNZ RET
R2,RE1
;===========转换数据=============================
TURN: MOV XIAOSHU,TEMPL ;保存TEMPL值,后面用于取低4位转换小数部分 KEYSCAN:
JB K1,RETUN JNB K1,$ ACALL CLR_LCD ACALL DISP_THL ACALL SET_HL ACALL WR_THL /ACALL LED ACALL WR_PROM
;限值复制到EEPROM中 ;清屏
;显示高温限值和低温限值 ;设定限值
;把高温限值和低温限值写入RAM ;按下K1,进入键盘扫描
ACALL DELAY20 RET
;========键盘扫描=============================
MOV A,TEMPL MOV C,16 RRC A MOV C,17 RRC A MOV C,18 RRC A MOV C,19 RRC A MOV TEMP,A MOV A,XIAOSHU ANL A,#00001111B MOV XIAOSHU,A
;22H的位寻址
RETUN: RET
;------------设定高低限值----------------------
相关推荐: