📄 wan nian li.asm
字号:
#INCLUDE WANNIANLI.INC
;;************************************************
;;******************MASK OPTION*******************
;;************************************************
;;MCU BODY: HT45R02
;;PRODUCT: 51 PIN COB
;;FSYS: RC MODE(270K=4MHZ)
;;VDD: 5V
;;WAKE-UP: NONE WAKE-UP
;;PULL-HIGH: PA,PC,PD AND PE PORT PULL-HIGH
;;NONE PULL-HIGH: PB PORT NONE PULL-HIGH
;;BZ OUTPUT: PB1,PB0=I/O,I/O
;;WDT: WDT DISABLE
;;CLR WDT: ONE CLEAR INSTRUCTION
;;FS CLOCK SOURCE: RTC OSC
;;LVR: DISABLE
;;TIMER COUNTER CLOCK SOURCE: FSP
;;ESTABLISHED DATE: 2005/08/29
;;LED SHOW SINGLE NUMBER
;;************************************************
;;*******************CODE SECTION*****************
;;************************************************
MAIN. SECTION AT 0H 'CODE'
ORG 00H
JMP MAIN
ORG 04H
RETI
ORG 08H
JMP ISR_TIMER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN:
CLR INTC
; MOV A,R_TCODE1
; XOR A,55H
; SNZ Z
; JMP L_INI_RAM
; MOV A,R_TCODE2
; XOR A,0AAH
; SZ Z
; JMP L_INI_REGISTER
L_INI_RAM:
CALL INI_RAM
L_INI_REGISTER:
CALL INI_REGISTER
CALL SBR_TESTLED
SET TMRC.4
SET INTC.0
;;************************************************
MLP_MAIN:
L_PROCESSCLOCK:
SNZ F_SECOND
JMP L_PROCESSKEY
CALL SBR_CLOCK
CALL SBR_CHECKALARM
CALL SBR_CHECKINTEGERALARM
CALL SBR_CHECKALARMING
CALL SBR_CHECKSTOPALARMING
CALL SBR_TRANSMITCOMMANDINTIAL
;;------------------------------------------------
L_PROCESSKEY:
CALL SBR_KEYSCAN
SZ F_VALIDKEY
SET F_BUZZERON ;;KEY TONE
CALL SBR_STOPADJUSTTIME
CALL SBR_SETSOLARTERMLEDMODE
SNZ F_UPDATEDATE
JMP L_CHECKADJUSTALARM
CALL SBR_GETLUNARCALENDAR
CALL SBR_GETWEEK
CALL SBR_GETSOLARTERM
;;************************************************
L_CHECKADJUSTALARM:
SZ R_SETMODE2
JMP L_CHECKADJUSTALNUMBER
JMP L_CHECKADJUSTALARMEXIT
L_CHECKADJUSTALNUMBER:
SNZ R_SETMODE2.0
JMP L_SHOWALARMNUMBER
SNZ F_LEDFLASH
JMP L_SHOWALARMNUMBER
MOV A,0FFH
MOV R_LEDWEEK,A
JMP L_CHECKADJUSTALHOUR
L_SHOWALARMNUMBER:
MOV A,R_ALARMNUMBER
MOV R_LEDWEEK,A
;;------------------------------------------------
L_CHECKADJUSTALHOUR:
SNZ R_SETMODE2.1
JMP L_SHOWALARMHOUR
SNZ F_LEDFLASH
JMP L_SHOWALARMHOUR
MOV A,0FFH
MOV R_LEDHOUR,A
JMP L_CHECKADJUSTALMINUTE
L_SHOWALARMHOUR:
MOV A,R_ALARMNUMBER
XOR A,01H
SNZ Z
JMP L_SHOWALARMHOUR2
MOV A,R_ALARMHOUR1
CALL SBR_CONVERTCLOCKMODE
CALL SBR_HEXTODEC
MOV R_LEDHOUR,A
JMP L_CHECKADJUSTALMINUTE
L_SHOWALARMHOUR2:
MOV A,R_ALARMNUMBER
XOR A,02H
SNZ Z
JMP L_SHOWALARMHOUR3
MOV A,R_ALARMHOUR2
CALL SBR_CONVERTCLOCKMODE
CALL SBR_HEXTODEC
MOV R_LEDHOUR,A
JMP L_CHECKADJUSTALMINUTE
L_SHOWALARMHOUR3:
JMP L_CHECKADJUSTALMINUTE
;;------------------------------------------------
L_CHECKADJUSTALMINUTE:
SNZ R_SETMODE2.2
JMP L_SHOWALMINUTE
SNZ F_LEDFLASH
JMP L_SHOWALMINUTE
MOV A,0FFH
MOV R_LEDMINUTE,A
JMP L_CHECKADJUSTALARMON_OFF
L_SHOWALMINUTE:
MOV A,R_ALARMNUMBER
XOR A,01H
SNZ Z
JMP L_SHOWALMINUTE2
MOV A,R_ALARMMINUTE1
CALL SBR_HEXTODEC
MOV R_LEDMINUTE,A
JMP L_CHECKADJUSTALARMON_OFF
L_SHOWALMINUTE2:
MOV A,R_ALARMNUMBER
XOR A,02H
SNZ Z
JMP L_SHOWALMINUTE3
MOV A,R_ALARMMINUTE2
CALL SBR_HEXTODEC
MOV R_LEDMINUTE,A
JMP L_CHECKADJUSTALARMON_OFF
L_SHOWALMINUTE3:
JMP L_CHECKADJUSTALARMON_OFF
;;------------------------------------------------
L_CHECKADJUSTALARMON_OFF:
SNZ R_SETMODE2.3
JMP L_SHOWALON_OFF
SNZ F_LEDFLASH
JMP L_SHOWALON_OFF
MOV A,0FFH
MOV R_LEDSMONTH,A
JMP L_SHOWADJUSTALARMMODE
L_SHOWALON_OFF:
MOV A,01H
XOR A,R_ALARMNUMBER
SZ Z
JMP L_SHOWALON_OFF1
MOV A,02H
XOR A,R_ALARMNUMBER
SZ Z
JMP L_SHOWALON_OFF2
JMP L_SHOWADJUSTALARMMODE
L_SHOWALON_OFF1:
MOV A,0AAH
SZ F_ALARM1
MOV A,0BH
MOV R_LEDSMONTH,A
JMP L_SHOWADJUSTALARMMODE
L_SHOWALON_OFF2:
MOV A,0AAH
SZ F_ALARM2
MOV A,0BH
MOV R_LEDSMONTH,A
; JMP L_SHOWADJUSTALARMMODE
L_SHOWADJUSTALARMMODE:
SET R_LEDFLAG.6 ;;TURN OFF 20 YEAR
MOV A,0FFH
MOV R_LEDSYEAR,A
MOV R_LEDSDATE,A
MOV R_LEDSECOND,A
MOV R_LEDTEMPERATURE,A
MOV R_LEDLMONTH,A
MOV R_LEDLDATE,A
MOV R_LEDDELTADAYS,A
CALL SBR_LEDSCAN
JMP MLP_MAIN
L_CHECKADJUSTALARMEXIT:
CLR R_LEDFLAG.6
; JMP L_CHECKSETYEAR
;;************************************************
L_CHECKSETYEAR:
SNZ R_SETMODE1.0
JMP L_CONVERTYEARDATA
SNZ F_LEDFLASH
JMP L_CONVERTYEARDATA
MOV A,0FFH
MOV R_LEDSYEAR,A
JMP L_CHECKSETMONTH
L_CONVERTYEARDATA:
MOV A,R_YEAR_SOLAR
CALL SBR_HEXTODEC
MOV R_LEDSYEAR,A
;;-----------------------------------------------
L_CHECKSETMONTH:
SNZ R_SETMODE1.1
JMP L_CONVERTMONTHDATA
SNZ F_LEDFLASH
JMP L_CONVERTMONTHDATA
MOV A,0FFH
MOV R_LEDSMONTH,A
JMP L_CHECKSETDATE
L_CONVERTMONTHDATA:
MOV A,R_MONTH_SOLAR
CALL SBR_HEXTODEC
MOV R_LEDSMONTH,A
;;------------------------------------------------
L_CHECKSETDATE:
SNZ R_SETMODE1.2
JMP L_CONVERTDATEDATA
SNZ F_LEDFLASH
JMP L_CONVERTDATEDATA
MOV A,0FFH
MOV R_LEDSDATE,A
JMP L_CONVERTWEEKDATA
L_CONVERTDATEDATA:
MOV A,R_DATE_SOLAR
CALL SBR_HEXTODEC
MOV R_LEDSDATE,A
;;------------------------------------------------
L_CONVERTWEEKDATA:
MOV A,R_WEEK
XOR A,07H
MOV A,R_WEEK
SZ Z ;;IS SUNDAY OR NOT,IF IT IS SUNDAY THEN SHOW 8
MOV A,08H ;;IT IS SUNDAY
MOV R_LEDWEEK,A
;;------------------------------------------------
L_CHECKSETHOUR:
SNZ R_SETMODE1.3
JMP L_CONVERTHOURDATA
SNZ F_LEDFLASH
JMP L_CONVERTHOURDATA
MOV A,0FFH
MOV R_LEDHOUR,A
JMP L_CHECKSETMINUTE
L_CONVERTHOURDATA:
MOV A,R_HOUR
CALL SBR_CONVERTCLOCKMODE
CALL SBR_HEXTODEC
MOV R_LEDHOUR,A
;;------------------------------------------------
L_CHECKSETMINUTE:
SNZ R_SETMODE1.4
JMP L_CONVERTMINUTEDATA
SNZ F_LEDFLASH
JMP L_CONVERTMINUTEDATA
MOV A,0FFH
MOV R_LEDMINUTE,A
JMP L_CONVERTSECONDDATA
L_CONVERTMINUTEDATA:
MOV A,R_MINUTE
CALL SBR_HEXTODEC
MOV R_LEDMINUTE,A
;;------------------------------------------------
L_CONVERTSECONDDATA:
MOV A,R_SECOND
CALL SBR_HEXTODEC
MOV R_LEDSECOND,A
MOV A,R_TEMPERATURE
SUB A,09H
SZ C
JMP L_CONVERTTEMPERATURE
MOV A,R_TEMPERATURE
OR A,0A0H
; JMP L_CONVERTTEMPERATURE
;;------------------------------------------------
L_CONVERTTEMPERATURE:
CALL SBR_HEXTODEC
MOV R_LEDTEMPERATURE,A
MOV A,R_MONTH_LUNAR
CALL SBR_HEXTODEC
MOV R_LEDLMONTH,A
MOV A,R_DATE_LUNAR
CALL SBR_HEXTODEC
MOV R_LEDLDATE,A
MOV A,R_DELTADAYS
CALL SBR_HEXTODEC
MOV R_LEDDELTADAYS,A
;;-----------------------------------------------
L_SHOWLED:
CALL SBR_LEDSCAN
L_CALCULATETEMPERATURE:
CALL SBR_GETTEMPERATURE
JMP MLP_MAIN
#INCLUDE SUBROUTINE.ASM
#INCLUDE TABLE.ASM
;;************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -