📄 table.asm
字号:
SBR_GETSOLARTERMDELTADATEHIGH:
TABRDC R_TEMP2
RET
;;********************************************
TABLE2. SECTION PAGE 'CODE'
;;********************************************
T_RVSTEMPERATURE:
; DC 12B3H ;;-10
; DC 11B3H
DC 10C5H ;;-8
DC 0FE3H
DC 0F0EH
DC 0E46H ;;-5
DC 0D88H
DC 0CD5H
DC 0C2CH
DC 0B93H
DC 0AFDH ;;0
DC 0A71H ;;1
DC 09ECH
DC 0960H
DC 08F6H
DC 08DCH ;;5
DC 081BH
DC 07B8H
DC 0759H
DC 0700H
DC 06ABH ;;10
DC 065AH ;;11
DC 060EH
DC 05C6H
DC 0582H
DC 0541H ;;15
DC 0504H
DC 04C9H
DC 0492H
DC 045DH
DC 042CH ;;20
DC 03FCH
DC 03CFH
DC 03A5H
DC 037CH
DC 0355H
DC 0331H
DC 030EH
DC 02EDH
DC 02CDH
DC 02AFH ;;30
DC 0292H
DC 0277H
DC 025DH
DC 0244H
DC 022DH
DC 0216H
DC 0201H
DC 01ECH
DC 01D8H
DC 01D5H ;;40
DC 01B3H
DC 01A2H
DC 0192H
DC 0182H
DC 0174H
DC 0165H
DC 0157H
DC 0143H
DC 013EH
DC 0132H ;;50
; DC 0124H
; DC 0116H
; DC 00H
SBR_GETRVSTEMPERATURE:
MOV TBLP,A
DEC TBLP
MOV A,LOW T_RVSTEMPERATURE
ADDM A,TBLP
TABRDC R_RTCCTL
M_MOV R_RTCCTH,TBLH
RET
;;********************************************
T_LEDCHARACTER:
DC 003FH ;;SHOW 0
DC 0006H ;;SHOW 1
DC 005BH ;;SHOW 2
DC 004FH ;;SHOW 3
DC 0066H ;;SHOW 4
DC 006DH ;;SHOW 5
DC 007DH ;;SHOW 6
DC 0007H ;;SHOW 7
DC 007FH ;;SHOW 8
DC 006FH ;;SHOW 9
DC 0040H ;;TURN ON SEGMENT G
DC 0037H ;;SHOW CHARACTER N
DC 0071H ;;SHOW CHARACTER F
DC 0000H
DC 0000H
DC 0000H
SBR_GETLEDCHARACTER:
AND A,0FH
MOV TBLP,A
MOV A,LOW T_LEDCHARACTER
ADDM A,TBLP
TABRDC ACC
XOR A,0FFH
RET
;;********************************************
SBR_CHECKALARMING:
SZ F_ALARMON
JMP L_PROCESSALARMING
SNZ F_INTEGERALARMON
RET
; JMP L_PROCESSINTEGERALARMING
L_PROCESSINTEGERALARMING:
MOV A,C_INTEGERALS
SUB A,R_HOUR
SNZ C
JMP L_CHECKINTEGERALE ;;C_INTEGERALS<R_HOUR
SNZ Z ;;C_INTEGERALS>=R_HOUR
RET ;;C_INTEGERALS>R_HOUR
CLR R_COMMAND ;;C_INTEGERALS=R_HOUR
JMP L_ALARMWORK
L_CHECKINTEGERALE:
MOV A,C_INTEGERALE
SUB A,R_HOUR
SNZ C
RET ;;C_INTEGERALE<R_HOUR
MOV A,C_INTEGERALS ;;C_INTEGERALE>=R_HOUR
MOV R_COMMAND,A
MOV A,R_HOUR
SUBM A,R_COMMAND
JMP L_ALARMWORK
L_PROCESSALARMING:
MOV A,C_ALCOMMAND
MOV R_COMMAND,A
; JMP L_ALARMWORK
L_ALARMWORK:
SET F_DELAYT3
RET
;;********************************************
SBR_TRANSMITCOMMANDINTIAL:
SNZ F_DELAYT3 ;;IF F_DELAYT3 IS 1, THEN INDICATED HT38A5 SHOULD DELAY T3.
RET
SZ F_INTIALIO ;;MUST INTIAL DATA,CLK PIN BEFORE HT38A5 RECIVER COMMAND
JMP L_WAKEUP38A5
; JMP L_INTIALIO
L_INTIALIO:
MOV A,0E0H ;;PA7(DATA),PA6(CLK) OUTPUT MODE, PA5(RES) INPUT
ORM A,PA ;;PA7(DATA) OUTPUT HIGH LEVEL,PA6(CLK) OUTPUT HIGH LEVEL
MOV A,1FH
ANDM A,PAC
MOV A,0BFH
ANDM A,PA ;;PA6(CLK) OUTPUT LOW LEVEL.
SET F_INTIALIO
CLR F_ALARMON
CLR F_INTEGERALARMON
L_WAKEUP38A5:
INC R_T3
MOV A,C_T3
SUB A,R_T3
SZ C
RET
CLR F_INTIALIO
CLR F_DELAYT3
CLR R_T3
SET F_TRCOMMANDING ;;IF F_TRCOMMANDING IS 1, THEN INDICATED HT38A5 BEGIN RECIVE COMMAND.
MOV A,09H
MOV R_COMMANDBITS,A
RET
;;********************************************
SBR_TRANSMITCOMMAND:
SNZ F_TRCOMMANDING
RET
CLR INTC.0
;;----------------------------------------
MLP_TRANSMITCOMMAND:
SDZ R_COMMANDBITS
JMP L_TRANSMITCOMMAND
; JMP L_TRANSMITPARITY
L_TRANSMITPARITY:
SET F_TRCOMMANDOK
SZ R_PARITY.0
JMP L_TRANSMITCOMMAND1
JMP L_TRANSMITCOMMAND0
L_TRANSMITCOMMAND:
SZ R_COMMAND.0
JMP L_TRANSMITCOMMAND1
; JMP L_TRANSMITCOMMAND0
L_TRANSMITCOMMAND0:
MOV A,7FH
ANDM A,PA
RR R_COMMAND
JMP L_TRANSMITCLOCK
L_TRANSMITCOMMAND1:
MOV A,80H
ORM A,PA
INC R_PARITY
RR R_COMMAND
; JMP L_TRANSMITCLOCK
;;------------------------------------------
L_TRANSMITCLOCK:
MOV A,0BFH
ANDM A,PA ;;PA6(CLOCK) OUTPUT LOW
CALL SBR_DELAY06MS
MOV A,40H
ORM A,PA ;;PA6(CLK) OUTPUT HIGH LEVEL
CALL SBR_DELAY06MS
SNZ F_TRCOMMANDOK
JMP MLP_TRANSMITCOMMAND
L_TRANSMITCOMMANDOK:
CLR F_TRCOMMANDOK
SNZ F_COMMANDTYPE ;;F_COMMANDTYPE IS 0, THEN INDICATED CUREENT TRANSMIT COMMAND IS NOT STOP COMMAND.
JMP L_SETSTOPALARMFLAG ;;SO AFTER ONE MINUTE MUST STOP COMMAND.
L_CLEARSTOPALARMFLAG:
CLR F_STOPALARMING
JMP L_TRANSMITCOMMANDEXIT
L_SETSTOPALARMFLAG:
SET F_STOPALARMING
L_TRANSMITCOMMANDEXIT:
CLR F_COMMANDTYPE
CLR F_TRCOMMANDING
MOV A,0E0H
ORM A,PAC
RETI
;;********************************************
SBR_CHECKSTOPALARMING:
SNZ F_STOPALARMING
RET
MOV A,C_ALARMTIME
SUB A,R_DELAYCOUNT
SZ C
RET
SET F_COMMANDTYPE
CLR R_DELAYCOUNT
MOV A,C_STOPCOMMAND
MOV R_COMMAND,A
SET F_DELAYT3
RET
;;********************************************
SBR_DELAY1S:
MOV A,00H
MOV R_TEMP0,A
MOV R_TEMP1,A
MOV A,04H
MOV R_TEMP2,A
MLP_DELAY1S:
CLR WDT
SDZ R_TEMP0
JMP MLP_DELAY1S
SDZ R_TEMP1
JMP MLP_DELAY1S
SDZ R_TEMP2
JMP MLP_DELAY1S
RET
;;********************************************
;;DELAY 3.3MS
SBR_DELAY33MS:
MOV A,65H
MOV R_TEMP0,A
MOV A,0CH
MOV R_TEMP1,A
MLP_DELAY33MS:
SDZ R_TEMP0
JMP MLP_DELAY33MS
SDZ R_TEMP1
JMP MLP_DELAY33MS
RET
;;********************************************
;;DELAY 600uS
SBR_DELAY06MS:
MOV A,6FH
MOV R_TEMP0,A
MLP_DELAY06MS:
SDZ R_TEMP0
JMP MLP_DELAY06MS
RET
;;********************************************
SBR_DISABLE0:
MOV R_TEMP0,A ;; \
XOR A,0C0H ;; \
MOV A,R_TEMP0 ;; --> DISABLE 0
SZ Z ;; /
MOV A,0FFH ;; /
RET
;;********************************************
SBR_TESTLED:
MOV A,0E0H
ANDM A,PA
MOV A,1FH
ANDM A,PB
MOV A,0FEH
MOV R_TEMP3,A
MLP_TESTLED:
MOV PC,A
MOV PD,A
MOV PE,A
CALL SBR_DELAY1S
SNZ R_TEMP3.7
JMP L_TESTLEDEXIT
RL R_TEMP3
MOV A,R_TEMP3
JMP MLP_TESTLED
L_TESTLEDEXIT:
MOV A,1FH
ORM A,PA
MOV A,0E0H
ORM A,PB
RET
;;********************************************
SBR_CHECKLEAPYEAR:
CLR F_LEAPYEAR
SZ R_YEAR_SOLAR.0
RET
SZ R_YEAR_SOLAR.1
RET
SET F_LEAPYEAR
RET
;;********************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -