📄 clk.lst
字号:
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 TITLE "Alarm Clock"
00002 LIST P = 16C57
00003 ERRORLEVEL -306
00004 ;
00005 ;Define Equates:
00006 ;
000007FF 00007 PIC57 EQU 7FFH
00008 ;******************************************************************************
00009 ;
00010 ;External Ossc. used = 4.096Mhz. Prescaler of 32 used, which gives a
00011 ;31.25 microSec increment of the RTCC. If RTCC is intially loaded with 96,
00012 ;it would overflow to 0 in 5.000 milliSecs. Giving a 0.00% error.
00013 ;
00000060 00014 MSEC5 EQU D'96'
00015 ;
00016 ;
00017 ; Program: CLK.ASM
00018 ; Revision Date:
00019 ; 1-13-97 Compatibility with MPASMWIN 1.40
00020 ;
00021 ;******************************************************************************
00022 ;
00000000 00023 C EQU 0
00000000 00024 BEP EQU 0
00000000 00025 RTATS EQU 0
00000001 00026 DC EQU 1
00000001 00027 HR10 EQU 1
00000002 00028 Z EQU 2
00000002 00029 HR EQU 2
00000003 00030 MIN10 EQU 3
00000004 00031 MIN EQU 4
00000004 00032 FLASH EQU 4
00000005 00033 PA0 EQU 5
00000005 00034 KEY_BEEP EQU 5
00000005 00035 AMPM EQU 5
00000006 00036 PA1 EQU 6
00000000 00037 F0 EQU 0
00000006 00038 KEY_HIT EQU 6
00000006 00039 ALED EQU 6
00000007 00040 AM_PM EQU 7
00000003 00041 COLON EQU 3
00000002 00042 ALRMLED EQU 2
00000007 00043 SERVICED EQU 7
00000000 00044 ALONOF EQU 0
00000001 00045 INAL EQU 1
00000002 00046 SILNC EQU 2
00000003 00047 INAA EQU 3
00000005 00048 INKEYBEP EQU 5
00049 ;
00050 ;DEFINE RAM LOCATIONS:
00000001 00051 RTCC EQU 1
00000002 00052 PC EQU 2
00000003 00053 STATUS EQU 3
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 2
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00000004 00054 FSR EQU 4
00000005 00055 PORT_A EQU 5
00000006 00056 PORT_B EQU 6
00000007 00057 PORT_C EQU 7
00058 ;
00000001 00059 F EQU 1
00060 ;
00061 ;DEFINE REAL TIME MODE REGS (RTM)
00000008 00062 MSTMR EQU 8 ;MILLI SEC. TIMER
00000009 00063 STMR EQU 9 ;SEC. TIMER
00064 ;
00065 ;*****************************************************
00066 ;DO NOT CHANGE RELATIVE POSITION OF NEXT 6 BYTES
0000000A 00067 MTMR EQU 0A ;MIN. TIMER
0000000B 00068 HTMR EQU 0B ;HOUR TIMER
00069 ;
00070 ;DEFINE ALARM TIME MODE REGS (ATM)
0000000C 00071 MALARM EQU 0C ;MIN. ALARM
0000000D 00072 HALARM EQU 0D ;HOUR ALARM
00073 ;
00074 ;DEFINE DATA ENTRY MODE REGS (DEM)
0000000E 00075 MENTRY EQU 0E ;MIN. ENTRY
0000000F 00076 HENTRY EQU 0F ;HOUR ENTRY
00077 ;*****************************************************
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 3
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00078 PAGE
00079 ;
00080 ;DEFINE FLAG REG AND FUNCTION:
00000010 00081 FLAG EQU 10
00082 ;
00083 ; BIT # 7|6|5|4|3|2|1|0|
00084 ;--------------|-|-|-|-|-|-|-|
00085 ; X|X|X|X|X|X|0|0| --> REAL TIME MODE (RTM)
00086 ; X|X|X|X|X|X|0|1| --> ALARM TIME MODE(ATM)
00087 ; X|X|X|X|X|X|1|0| --> DATA ENTRY M0DE(DEM)
00088 ; X|X|X|X|X|X|1|1| --> TEST MODE (TM)
00089 ; X|X|X|X|X|Y|X|X| --> ALRMLED ON/OFF
00090 ; X|X|X|X|Y|X|X|X| --> COLON LED ON/OFF
00091 ; X|X|X|Y|X|X|X|X| --> FLASH DISPLAY
00092 ; X|X|Y|X|X|X|X|X| --> KEY_BEEP
00093 ; X|Y|X|X|X|X|X|X| --> KEY_HIT (0/1)
00094 ; Y|X|X|X|X|X|X|X| --> SERVICED
00095 ; X = DEFINED ELSEWHERE IN TABLE
00096 ; Y = DEFINED AS SHOWN (0/1)
00097 ;
00000011 00098 TEMP EQU 11
00000012 00099 DIGIT EQU 12
00000013 00100 NEW_KEY EQU 13
00000014 00101 KEY_NIBL EQU 14
00000015 00102 DEBOUNCE EQU 15
00000016 00103 MIN_SEC EQU 16 ;MIN/SECONDS TIMER
00000017 00104 ENTFLG EQU 17
00105 ;
00106 ;flag dedicated to the key entry mode
00107 ; BIT # 7|6|5|4|3|2|1|0|
00108 ;--------------|-|-|-|-|-|-|-|
00109 ; X|X|X|X|X|X|X|Y| --> REAL/ALARM TIME STATUS
00110 ; X|X|X|X|X|X|Y|X| --> HR10 DONE
00111 ; X|X|X|X|X|Y|X|X| --> HR DONE
00112 ; X|X|X|X|Y|X|X|X| --> MIN10 DONE
00113 ; X|X|X|Y|X|X|X|X| --> MIN DONE
00114 ; X|X|Y|X|X|X|X|X| --> INKEYBEP
00115 ; X|Y|X|Y|X|X|X|X| --> NOT USED
00116 ; Y|X|X|X|X|X|X|X| --> NOT USED
00117 ;
00118 ;
00000018 00119 ALFLAG EQU 18
00120 ;
00121 ;flag dedicated to the alarm
00122 ; BIT # 7|6|5|4|3|2|1|0|
00123 ;--------------|-|-|-|-|-|-|-|
00124 ; X|X|X|X|X|X|X|Y| --> ALONOF
00125 ; X|X|X|X|X|X|Y|X| --> INAL
00126 ; X|X|X|X|X|Y|X|X| --> SILNC
00127 ; X|X|X|X|Y|X|X|X| --> INAA
00128 ; X|X|X|Y|X|X|X|X| --> NOT USED
00129 ; X|X|Y|X|X|X|X|X| --> NOT USED
00130 ; X|Y|X|Y|X|X|X|X| --> NOT USED
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 4
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00131 ; Y|X|X|X|X|X|X|X| --> NOT USED
00132 ;
00000019 00133 AAFLAG EQU 19
00134 ;
00135 ;flag dedicated to the AA alarm
0000001A 00136 AATMR EQU 1A
00137 ;
00138 ;Port pin definitions:
00139 ;
00140 ;PORT_A:
00141 ; BIT 0 --> BEEPER (ACTIVE LOW) OUTPUT
00142 ; BIT 1-3 --> unused I/O
00143 ;
00144 ;PORT_B: ALL OUTPUTS
00145 ; BIT 0&4 --> MSB DIGIT COMMON CATHODE & ALARM
00146 ; BIT 1&5 --> 2ND DIGIT COMMOM CATHODE & COLON
00147 ; BIT 2&6 --> 3RD DIGIT COMMON CATHODE & PM
00148 ; BIT 3&7 --> LSB DIGIT COMMON CATHODE & AM
00149 ;
00150 ;PORT_C:
00151 ;IN DISPLAY MODE ALL SEG/ANNN SET AS OUTPUTS
00152 ;IN KEY SCAN MODE COLS ARE OUTPUTS ROWS ARE INPUTS
00153 ; BIT 0 --> SEGMENT A & COL 4
00154 ; BIT 1 --> SEGMENT B & COL 3
00155 ; BIT 2 --> SEGMENT C & COL 2
00156 ; BIT 3 --> SEGMENT D & COL 1
00157 ; BIT 4 --> SEGMENT E & ROW 4
00158 ; BIT 5 --> SEGMENT F & ROW 3
00159 ; BIT 6 --> SEGMENT G & ROW 2
00160 ; BIT 7 --> CA OF ALL ANNUNCIATORS & ROW 1
00161 ;
00162 ;
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 5
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00163 PAGE
00164 ;
0000 00165 ORG 0
0000 00166 START
0000 0AFC 00167 GOTO INIT_CLK ;INITIALIZE CLOCK
00168 ;THIS ROUTINE RUNS A TEST ON THE LEDS.
00169 ;ALL THE RELEVENT LEDS ARE LIT UP FOR 2 SECS.
00170 ;
0001 00171 TEST_HARDWARE
0001 0C02 00172 MOVLW d'02' ;DISPLAY FOR 2 SECS
0002 0036 00173 MOVWF MIN_SEC ; /
00174 ;
00175 ;
0003 00176 TEST_LOOP
0003 0216 00177 MOVF MIN_SEC,W ;GET MIN/SEC
0004 0643 00178 BTFSC STATUS,Z ;NOT 0 THEN SKIP
0005 0A0B 00179 GOTO NORM_TIME ;ELSE NORMAL TIME
0006 0925 00180 CALL UPDATE_DISPLAY ;UPDATE DISPLAY
0007 05A3 00181 BSF STATUS,PA0 ;GOTO PAGE 1
0008 0900 00182 CALL UPDATE_TIMERS ;WAIT AND UPDATE
0009 04A3 00183 BCF STATUS,PA0 ;RESET PAGE MARKER
000A 0A03 00184 GOTO TEST_LOOP ;LOOP BACK
000B 00185 NORM_TIME
000B 0410 00186 BCF FLAG,0 ;PUT IN REAL TIME
000C 0430 00187 BCF FLAG,1
000D 00188 TIME_LOOP
000D 0925 00189 CALL UPDATE_DISPLAY
000E 05C3 00190 BSF STATUS,PA1 ;GOTO PAGE 2
000F 0900 00191 CALL SERVICE_KEYS
0010 05A3 00192 BSF STATUS,PA0 ;GOTO PAGE 3
0011 0900 00193 CALL SOUND_AA ;CHECK ALARM
0012 04C3 00194 BCF STATUS,PA1 ;GOTO PAGE 1
0013 0900 00195 CALL UPDATE_TIMERS ;WAIT AND UPDATE TIMERS
0014 04A3 00196 BCF STATUS,PA0 ;RESET PAGE MARKER
0015 04C3 00197 BCF STATUS,PA1 ; /
0016 0210 00198 MOVF FLAG,W ;SEE IF IN ATM
0017 0E03 00199 ANDLW B'00000011' ; /
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -