📄 text1.lst
字号:
A51 MACRO ASSEMBLER TEXT1 11/11/2006 20:02:32 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN Text1.OBJ
ASSEMBLER INVOKED BY: d:\Keil\C51\BIN\A51.EXE Text1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;----------------------------------------------------
2 ; PCL.ASM 8051 CLOCK WITH SEG X 4 CLOCK+ALARM+BZ
3 ; 8051 ASM USE: KEIL
4 ; COPYRIGHT CMY 2003
5 ;----------------------------------------------
6 ; K1 : ADJ TIME K2:HOUR K3:MIN K4: OK
7 ; K2 : SEE ALARM
8 ; K3 : SET ALARM
9 ; K4 : ALARM ON/OFF
10 ;----------------------------------------------
11 ; 5 mS isr
12 ; MOV TL0,#(8192-5000).MOD.32
13 ; MOV TH0,#(8192-5000)/32
0021 14 LO EQU 33;24
0063 15 HI EQU 99;99
16
17 ;*******************************************************
00C8 18 CO EQU 200 ; ADJ. TO MATCH TIME 200 x 5 mS=1000 mS
19
0000 20 ALB EQU 20H.0 ; ALARM BIT
21
0030 22 BUF EQU 30H ; 7SEG BUFFER RAM 30H 31H 32H 33H 4 BYTES
0034 23 HOUR EQU 34H
0035 24 MIN EQU 35H
0036 25 SEC EQU 36H
0037 26 DEDA EQU 37H ; DEDA COUNT 5 mS COUNT
0038 27 SEC0 EQU 38H ; OLD SEC
28
0039 29 HH EQU 39H ; ALARM HOUR
003A 30 MM EQU 3AH ; ALARM MIN
31 ;----------------------------
32 ; KEYS.....
0094 33 K1 EQU P1.4
0095 34 K2 EQU P1.5
0096 35 K3 EQU P1.6
0097 36 K4 EQU P1.7
37
0081 38 RY1 EQU P0.1
0082 39 RY2 EQU P0.2
0083 40 SPK EQU P0.3
0080 41 WLED EQU P0.0
42 ;-----------------------------
0000 43 ORG 0H
0000 800B 44 JMP BEGIN
000B 45 ORG 0BH ; TIMER 0
000B 01FB 46 JMP T0_INT
47 ;-----------------------------
000D 48 BEGIN:
000D C281 49 CLR RY1
000F C282 50 CLR RY2
0011 C200 51 CLR ALB ; NO ALARM
0013 753901 52 MOV HH,#1 ; DEFAULT ALARM TIME--1:1
0016 753A01 53 MOV MM,#1
54
0019 31BB 55 CALL BZ
001B 31BB 56 CALL BZ
001D 1199 57 CALL LED_BL
58
A51 MACRO ASSEMBLER TEXT1 11/11/2006 20:02:32 PAGE 2
001F 11DC 59 CALL INIT
0021 11EC 60 CALL INIT_TIMER
61
62 ; DISPLAY OFF
0023 74FF 63 MOV A,#0FFH
0025 F5A0 64 MOV P2,A;段选端
0027 11CF 65 CALL LOAD_DATA
66 ;....................................................
0029 67 LOOP:
0029 5146 68 CALL TIME_PRO ; UPDATE TIME DATA
002B 11B4 69 CALL SCAN1 ; SCAN 7 SEG
70 ;........................................
71 ; K1 : ADJ TIME K2:HOUR K3:MIN K4: OK
72
002D 209406 73 JB K1,M1
74 ; K1 KEYED .................
0030 1199 75 CALL LED_BL
0032 317C 76 CALL SET_TIME
0034 80F3 77 JMP LOOP
78
79 ;....................
0036 209506 80 M1: JB K2,M2
81 ; K2 KEYED................LOOK ALARM TIME
0039 31BB 82 CALL BZ
003B 31E1 83 CALL LOOK_ATIME ; LOOK ALARM TIME
003D 80EA 84 JMP LOOP
85
86 ;.....................
003F 209608 87 M2: JB K3,M3
88 ; K3 KEYED ..........SET ALARM TIME
0042 31BB 89 CALL BZ
0044 5111 90 CALL SET_ATIME ; SET ALARM TIME
0046 1199 91 CALL LED_BL
0048 80DF 92 JMP LOOP
93
94 ;.....................
004A 209711 95 M3: JB K4,M4
96 ; K4 KEYED.............ALARM ALB ON/OFF
004D B200 97 CPL ALB
004F 300008 98 JNB ALB,M31
99 ; ALARM ON.................
0052 31BB 100 CALL BZ
0054 31BB 101 CALL BZ
0056 31BB 102 CALL BZ
0058 80CF 103 JMP LOOP
005A 104 M31:
105 ; ALARM OFF.....................
005A 31BB 106 CALL BZ
005C 80CB 107 JMP LOOP
108 ;.........................................
005E 109 M4:
005E 80C9 110 JMP LOOP
111 ;------------------------------------------------
0060 50434C2E 112 TITLE: DB "PCL.ASM IO51 8051 CLOCK SEG X 4 BZ"
0064 41534D20
0068 20494F35
006C 31203830
0070 35312043
0074 4C4F434B
0078 20534547
007C 20582034
0080 20425A
113 ;------------------------------------------------
114 ; DELAY Xms R5*10 ms
0083 115 DELAY:
0083 7E32 116 MOV R6,#50
A51 MACRO ASSEMBLER TEXT1 11/11/2006 20:02:32 PAGE 3
0085 7F64 117 D1: MOV R7,#100
0087 DFFE 118 DJNZ R7,$
0089 DEFA 119 DJNZ R6,D1
008B DDF6 120 DJNZ R5,DELAY
008D 22 121 RET
122 ;---------------------
123 ; DELAY A WHILE
008E 124 DELAY1:
008E 7E01 125 MOV R6,#1
0090 7F64 126 D2: MOV R7,#100
0092 DFFE 127 DJNZ R7,$
0094 DEFA 128 DJNZ R6,D2
0096 DDF6 129 DJNZ R5,DELAY1
0098 22 130 RET
131 ;--------------------
0099 132 LED_BL:
0099 7C06 133 MOV R4,#6
009B B280 134 LE1: CPL WLED
009D 7D05 135 MOV R5,#5
009F 1183 136 CALL DELAY
00A1 DCF8 137 DJNZ R4, LE1
00A3 22 138 RET
139 ;----------------------------------
140 ; 7-SEGMENT COMMON CATHODE
00A4 141 TABLE:
00A4 C0F9A4B0 142 DB 0c0h, 0f9H, 0a4H, 0b0H, 099H
00A8 99
00A9 9282F880 143 DB 092H, 082H, 0f8H, 080H, 098H
00AD 98
00AE 8883C691 144 DB 088H, 083H, 0c6H, 091H, 086H
00B2 86
00B3 8E 145 DB 08eH
146 ;-----------------------------------
147 ; SCAN 4 TIMES
00B4 148 SCAN1:
00B4 7830 149 MOV R0, #BUF
00B6 7A04 150 MOV R2, #4
00B8 75E0FE 151 MOV ACC, #0FEH
00BB 152 S1:
00BB C0E0 153 PUSH ACC
154 ; SEND OUT 1 7 SEGMENT DATA IN @R0
00BD E6 155 MOV A, @R0
00BE 85E0A0 156 MOV P2,ACC ;段选
157
158 ; SEND SCAN CODE
00C1 D0E0 159 POP ACC
160
00C3 85E0B0 161 MOV P3,ACC ;位选端
162
00C6 7D05 163 MOV R5,#5
00C8 118E 164 CALL DELAY1
165
166 ; CHANGE SCAN CODE
00CA 23 167 RL A
00CB 08 168 INC R0
00CC DAED 169 DJNZ R2, S1
00CE 22 170 RET
171 ;---------------------------------------------------------------
00CF 172 LOAD_DATA:
00CF 75303F 173 MOV BUF, #3FH ; '0'
00D2 75313F 174 MOV BUF+1,#3FH
00D5 75323F 175 MOV BUF+2,#3FH
00D8 75333F 176 MOV BUF+3,#3FH
00DB 22 177 RET
178 ;------------------------------------------------------------------
00DC 179 INIT:
A51 MACRO ASSEMBLER TEXT1 11/11/2006 20:02:32 PAGE 4
00DC 753700 180 MOV DEDA,#0
00DF 753800 181 MOV SEC0,#0
00E2 753600 182 MOV SEC,#0
00E5 753500 183 MOV MIN,#0
00E8 753400 184 MOV HOUR,#0
00EB 22 185 RET
186 ;-------------------------
00EC 187 INIT_TIMER:
00EC 758900 188 MOV TMOD,#00000000B
00EF 75A882 189 MOV IE, #10000010B
00F2 758A21 190 MOV TL0,#LO
00F5 758C63 191 MOV TH0,#HI
00F8 D28C 192 SETB TR0
00FA 22 193 RET
194 ;----------------------
195 ; USE TIMER MODE 0
196 ; COUNT=5ms/1us=5000
197 ;----------------------
00FB 198 T0_INT:
00FB C0E0 199 PUSH ACC
00FD 758A21 200 MOV TL0,#LO
0100 758C63 201 MOV TH0,#HI
0103 0537 202 INC DEDA
203
204 ; 1 SEC TIME OUT CHECK
0105 E537 205 MOV A,DEDA
0107 B4C829 206 CJNE A,#CO,TT1
010A 753700 207 MOV DEDA, #0
208
010D B280 209 CPL WLED
010F 0536 210 INC SEC
0111 E536 211 MOV A,SEC
0113 B43C1D 212 CJNE A,#60,TT1
213 ; 1 MIN TIME OUT
0116 0535 214 INC MIN
0118 753600 215 MOV SEC,#0
011B E535 216 MOV A, MIN
011D B43C13 217 CJNE A,#60,TT1
218 ; 1 HOUR TIME OUT
0120 0534 219 INC HOUR
0122 753500 220 MOV MIN,#0
0125 E534 221 MOV A, HOUR
0127 B41809 222 CJNE A,#24,TT1
012A 753600 223 MOV SEC,#0 ; RESET TIME TO 0
012D 753500 224 MOV MIN,#0
0130 753400 225 MOV HOUR,#0
0133 226 TT1:
0133 D0E0 227 POP ACC
0135 32 228 RETI
229 ;---------------------------------------------------------------
230 ; 7 SEG MM:SS
231 ; CONVERT DATA AND SHOW
232 ; BUF0 | BUF1 | BUF2 | BUF3
0136 233 CONV1:
234 ; SHOW MIN...............
0136 E535 235 MOV A,MIN
0138 75F00A 236 MOV B,#10
013B 84 237 DIV AB
238
013C 9000A4 239 MOV DPTR, #TABLE
013F 93 240 MOVC A,@A+DPTR
0140 F530 241 MOV BUF,A
242
0142 E5F0 243 MOV A,B
0144 93 244 MOVC A,@A+DPTR
0145 F531 245 MOV BUF+1,A
A51 MACRO ASSEMBLER TEXT1 11/11/2006 20:02:32 PAGE 5
246 ; SHOW SEC...............
0147 E536 247 MOV A,SEC
0149 75F00A 248 MOV B,#10
014C 84 249 DIV AB
250
014D 9000A4 251 MOV DPTR, #TABLE
0150 93 252 MOVC A,@A+DPTR
0151 F532 253 MOV BUF+2,A
254
0153 E5F0 255 MOV A,B
0155 93 256 MOVC A,@A+DPTR
0156 F533 257 MOV BUF+3,A
0158 22 258 RET
259 ;-------------------------------------
260 ; 7 SEG HH:MM
261 ; CONVERT DATA AND SHOW
262 ; BUF0 | BUF1 | BUF2 | BUF3
0159 263 CONV:
264 ; SHOW HOUR..............
0159 E534 265 MOV A,HOUR
015B 75F00A 266 MOV B,#10
015E 84 267 DIV AB
268
015F 9000A4 269 MOV DPTR, #TABLE
0162 93 270 MOVC A,@A+DPTR
0163 F530 271 MOV BUF,A
272
0165 E5F0 273 MOV A,B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -