⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table.asm

📁 此款LED 数码万年历采用Holtek 公司开发的HT45R02 和HT38A5 微控制器设计
💻 ASM
📖 第 1 页 / 共 2 页
字号:
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 + -