📄 clock_v1.dt
字号:
;;
JMP MAIN
;;----------------------------------------------------------------------------
ALARM_MODE BC PORT_6,2
MOV A,@0X11
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP ALARM_INC_1HR
;;
MOV A,@0X12
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP ALARM_INC_1MIN
;;
MOV A,@0X10
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP DISPLAY_ALARM
;;
JMP MAIN
;;----------------------------------------------------------------------------
TIMER_MODE WDTC
JBC TIMER_STATUS,UP_TIMER_ON
JMP STOP_UP_TIMER
;;
MOV A,@0X01
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP TIMER_INC_5MIN
;;
MOV A,@0X02
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP TIMER_INC_30SEC
;;
START_STOP_KEY MOV A,@0X10
XOR A,KEY_PORT_BACKUP
JBC STATUS,Z_FLAG
JMP TIMER_STARTSTOP
JMP MAIN
;;----------------------------------------------------------------------------
CLOCK_INC_1MIN CLR CLOCK_SEC_L
CLR CLOCK_SEC_H
INC CLOCK_MIN_L ;;
MOV A,@0X0A ;;
XOR A,CLOCK_MIN_L ;;
JBS STATUS,Z_FLAG ;;
JMP CLOCK_ADJ_OVER ;;
;; ;;
CLR CLOCK_MIN_L ;;
INC CLOCK_MIN_H ;;
MOV A,@0X06 ;;
XOR A,CLOCK_MIN_H ;;
JBC STATUS,Z_FLAG ;;
CLR CLOCK_MIN_H ;;
JMP CLOCK_ADJ_OVER
;;
CLOCK_INC_1HR INC CLOCK_HR_L ;;
MOV A,@0X04 ;;
XOR A,CLOCK_HR_L ;;
JBS STATUS,Z_FLAG ;;
JMP ADJ_CLOCK ;;
MOV A,@0X02 ;;
XOR A,CLOCK_HR_H ;;
JBS STATUS,Z_FLAG ;;
JMP ADJ_CLOCK ;;
;; ;;
CLR CLOCK_HR_L ;;
CLR CLOCK_HR_H ;;
JMP CLOCK_ADJ_OVER ;;
;; ;;
ADJ_CLOCK MOV A,@0X0A ;;
XOR A,CLOCK_HR_L ;;
JBS STATUS,Z_FLAG ;;
JMP CLOCK_ADJ_OVER ;;
;; ;;
CLR CLOCK_HR_L ;;
INC CLOCK_HR_H ;;
;;
CLOCK_ADJ_OVER MOV A,@0X01
MOV MODE_SELECT,A
JMP MAIN
;;
DISPLAY_TIMER CALL LOAD10SEC
MOV A,SEC3_TIMER
JBS STATUS,Z_FLAG
JMP MAIN
CALL LOAD177SEC
JMP MAIN
;;----------------------------------------------------------------------------
ALARM_INC_1MIN INC ALARM_MIN_L ;;
MOV A,@0X0A ;;
XOR A,ALARM_MIN_L ;;
JBS STATUS,Z_FLAG ;;
JMP MAIN ;;
;;
CLR ALARM_MIN_L ;;
INC ALARM_MIN_H ;;
MOV A,@0X06 ;;
XOR A,ALARM_MIN_H ;;
JBC STATUS,Z_FLAG ;;
CLR ALARM_MIN_H ;;
JMP MAIN
JMP ALARM_ADJ_OVER
;;
ALARM_INC_1HR INC ALARM_HR_L ;;
MOV A,@0X04 ;;
XOR A,ALARM_HR_L ;;
JBS STATUS,Z_FLAG ;;
JMP ADJ_ALARM ;;
MOV A,@0X02 ;;
XOR A,ALARM_HR_H ;;
JBS STATUS,Z_FLAG ;;
JMP ALARM_ADJ_OVER ;;
;; ;;
CLR ALARM_HR_L ;;
CLR ALARM_HR_H ;;
JMP ALARM_ADJ_OVER ;;
;; ;;
ADJ_ALARM MOV A,@0X0A ;;
XOR A,ALARM_HR_L ;;
JBS STATUS,Z_FLAG ;;
JMP ALARM_ADJ_OVER ;;
;; ;;
CLR ALARM_HR_L ;;
INC ALARM_HR_H ;;
;; ;;
ALARM_ADJ_OVER MOV A,@0X02 ;;
MOV MODE_SELECT,A ;;
JMP MAIN ;;
;;
STOP_ALARM BC ALARM_STATUS,ALARM_TIME_ON
JMP MAIN
;;
DISPLAY_ALARM CALL LOAD10SEC
JMP MAIN
;;----------------------------------------------------------------------------
TIMER_INC_30SEC MOV A,@0X03 ;;
ADD TIMER_SEC_H,A ;;
JMP ADJ_TIMER
;; ;;
TIMER_INC_5MIN MOV A,@0X05
ADD TIMER_MIN_L,A
JMP ADJ_TIMER_MIN
;;
ADJ_TIMER MOV A,TIMER_SEC_H
XOR A,@0X06
JBC STATUS,Z_FLAG
JMP TIMER_INC_1MIN
;;
MOV A,TIMER_SEC_H
XOR A,@0X07
JBC STATUS,Z_FLAG
JMP TIMER_INC_1MIN
;;
MOV A,TIMER_SEC_H
XOR A,@0X08
JBC STATUS,Z_FLAG
JMP TIMER_INC_1MIN
JMP MAIN
;;
TIMER_INC_1MIN MOV A,@0X06
SUB TIMER_SEC_H,A
INC TIMER_MIN_L
;;
ADJ_TIMER_MIN MOV A,TIMER_MIN_L
ADD A,@0X00
DAA
MOV TIMER_MIN_L,A
JBS TIMER_MIN_L,4
JMP MAIN
;;
BC TIMER_MIN_L,4
INC TIMER_MIN_H
JBS TIMER_MIN_H,1
JMP MAIN
JBS TIMER_MIN_H,2
JMP MAIN
;;
INC_HH CLR TIMER_MIN_H ;;
MOV A,@0X0B
MOV TIMER_HR_H,A
;;
INC TIMER_HR_L ;;
MOV A,@0X0A
XOR A,TIMER_HR_L
JBS STATUS,Z_FLAG
JMP MAIN ;;
MOV A,@0X09
MOV TIMER_HR_L,A
MOV TIMER_MIN_L,A
MOV TIMER_SEC_L,A
MOV A,@0X05
MOV TIMER_MIN_H,A
MOV TIMER_SEC_H,A
JMP MAIN
;;----------------------------------------------------------------------------
TIMER_CLEAR CLR TIMER_SEC_L
CLR TIMER_SEC_H
CLR TIMER_MIN_L
CLR TIMER_MIN_H
CLR TIMER_HR_L
CLR TIMER_HR_H
BC TIMER_STATUS,START_STOP_BIT
BC PORT_6,2
JMP MAIN
;;
TIMER_STARTSTOP BC TIMER_STATUS,UP_TIMER_ON
JBS TIMER_STATUS,START_STOP_BIT
JMP SET_START
;;
SET_STOP BC TIMER_STATUS,START_STOP_BIT
BC PORT_6,2
MOV A,SEC3_TIMER
JBS STATUS,Z_FLAG
JMP MAIN
JMP TIMER_CLEAR
;;
SET_START MOV A,TIMER_HR_L
JBS STATUS,Z_FLAG
JMP SET_START1
MOV A,TIMER_MIN_H
JBS STATUS,Z_FLAG
JMP SET_START1
MOV A,TIMER_MIN_L
JBS STATUS,Z_FLAG
JMP SET_START1
MOV A,TIMER_SEC_H
JBS STATUS,Z_FLAG
JMP SET_START1
MOV A,TIMER_SEC_L
JBS STATUS,Z_FLAG
JMP SET_START1
;;
JMP STOP_WATCH
;;
SET_START1 BS TIMER_STATUS,START_STOP_BIT
BS PORT_6,2
CLR SEC30
MOV A,SEC3_TIMER
JBS STATUS,Z_FLAG
JMP MAIN
JMP TIMER_CLEAR
;;----------------------------------------------------------------------------
STOP_WATCH MOV A,TIMER_HR_L
JBS STATUS,Z_FLAG
JMP MAIN
MOV A,TIMER_MIN_H
JBS STATUS,Z_FLAG
JMP MAIN
MOV A,TIMER_MIN_L
JBS STATUS,Z_FLAG
JMP MAIN
MOV A,TIMER_SEC_H
JBS STATUS,Z_FLAG
JMP MAIN
MOV A,TIMER_SEC_L
JBS STATUS,Z_FLAG
JMP MAIN
;;
BS TIMER_STATUS,UP_TIMER_ON
BS TIMER_STATUS,UP_TIMER_STOP
JMP MAIN
;;----------------------------------------------------------------------------
STOP_UP_TIMER MOV A,@0X10
XOR A,KEY_PORT_BACKUP
JBS STATUS,Z_FLAG
JMP MAIN
;;
BC TIMER_STATUS,UP_TIMER_STOP
MOV A,SEC3_TIMER
JBS STATUS,Z_FLAG
JMP MAIN
;;
WATCH_CLEAR BC TIMER_STATUS,UP_TIMER_ON
BC TIMER_STATUS,UP_TIMER_STOP
CLR WATCH_HR_H
CLR WATCH_HR_L
CLR WATCH_MIN_H
CLR WATCH_MIN_L
CLR WATCH_SEC_H
CLR WATCH_SEC_L
JMP MAIN
;;----------------------------------------------------------------------------
SHOW_ALARM_TIME MOV A,@0X02
MOV MODE_SELECT,A
JMP MAIN
;;----------------------------------------------------------------------------
BC KEY_STATUS,KEY_RELEASE
MOV A,KEY_PORT
MOV KEY_PORT_BACKUP,A
MOV A,@0X19
MOV KEY_TIME,A
JMP MAIN
;;----------------------------------------------------------------------------
ORG 0X0FFF
JMP INITIAL
;;----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -