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

📄 clock_v1.dt

📁 Em78p447四位数LED DISPLAY计时,累加/倒数/闹铃/时钟/
💻 DT
📖 第 1 页 / 共 4 页
字号:
;;
                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 + -