📄 shijian.lst
字号:
A51 MACRO ASSEMBLER SHIJIAN 10/05/2006 18:36:30 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN shijian.OBJ
ASSEMBLER INVOKED BY: d:\Keil\C51\BIN\A51.EXE shijian.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
0050 2 SEC EQU 50H
0051 3 MIN EQU 51H
0052 4 HOUR EQU 52H
0020 5 COM EQU 20H
0021 6 DAT EQU 21H
0090 7 LCD_PORT EQU P1
00B0 8 RS EQU P3.0
00B1 9 RW EQU P3.1
00B2 10 E EQU P3.2
0000 11 ORG 0000H
0000 020100 12 LJMP MAIN
000B 13 ORG 000BH
000B 020279 14 LJMP CLOCK
0100 15 ORG 0100H
16
0100 17 MAIN:
0100 758160 18 MOV SP,#60H
0103 7590FF 19 MOV P1,#0FFH
0106 75A0FF 20 MOV P2,#0FFH
0109 755000 21 MOV SEC,#00H
010C 755158 22 MOV MIN,#58H
010F 755221 23 MOV HOUR,#21H
0112 755300 24 MOV 53H,#00H
0115 758901 25 MOV TMOD,#01H
0118 758C3C 26 MOV TH0,#3CH
011B 758AB0 27 MOV TL0,#0B0H
011E 120130 28 LCALL INT ;初始化液晶
0121 D2A9 29 SETB ET0
0123 D2AF 30 SETB EA
0125 D28C 31 START: SETB TR0
0127 1201C0 32 LCALL KEY
012A 12020B 33 LCALL DISPLAY
012D 020125 34 LJMP START
0130 75203C 35 INT: MOV COM,#3CH
0133 12014F 36 LCALL LCD_W_CMD
0136 75200C 37 MOV COM,#0CH
0139 12014F 38 LCALL LCD_W_CMD
013C 752001 39 MOV COM,#01H
013F 12014F 40 LCALL LCD_W_CMD
0142 752006 41 MOV COM,#06H
0145 12014F 42 LCALL LCD_W_CMD
0148 752080 43 MOV COM,#80H
014B 12014F 44 LCALL LCD_W_CMD
014E 22 45 RET
014F C0E0 46 LCD_W_CMD:PUSH ACC
0151 1201A9 47 LCD_W_CMD_A:LCALL LCD_R_STAT
0154 30E705 48 JNB ACC.7,LCD_W_CMD_B
0157 1201FD 49 LCALL PUB_DELAY_100US
015A 80F5 50 SJMP LCD_W_CMD_A
015C C2B1 51 LCD_W_CMD_B:CLR RW
015E 120207 52 LCALL PP
0161 C2B0 53 CLR RS
0163 120207 54 LCALL PP
0166 D2B2 55 SETB E
0168 120207 56 LCALL PP
016B E520 57 MOV A,COM
016D F590 58 MOV LCD_PORT,A
A51 MACRO ASSEMBLER SHIJIAN 10/05/2006 18:36:30 PAGE 2
016F 120207 59 LCALL PP
0172 C2B2 60 CLR E
0174 120207 61 LCALL PP
0177 D2B1 62 SETB RW
0179 D0E0 63 POP ACC
017B 22 64 RET
017C C0E0 65 LCD_W_DAT: PUSH ACC
017E 1201A9 66 LCD_W_DAT_A:LCALL LCD_R_STAT
0181 30E705 67 JNB ACC.7,LCD_W_DAT_B
0184 1201FD 68 LCALL PUB_DELAY_100US
0187 80F5 69 SJMP LCD_W_DAT_A
0189 C2B1 70 LCD_W_DAT_B:CLR RW
018B 120207 71 LCALL PP
018E D2B0 72 SETB RS
0190 120207 73 LCALL PP
0193 D2B2 74 SETB E
0195 120207 75 LCALL PP
0198 E521 76 MOV A,DAT
019A F590 77 MOV LCD_PORT,A
019C 120207 78 LCALL PP
019F C2B2 79 CLR E
01A1 120207 80 LCALL PP
01A4 D2B1 81 SETB RW
01A6 D0E0 82 POP ACC
01A8 22 83 RET
01A9 D2B1 84 LCD_R_STAT:SETB RW
01AB 120207 85 LCALL PP
01AE C2B0 86 CLR RS
01B0 120207 87 LCALL PP
01B3 D2B2 88 SETB E
01B5 120207 89 LCALL PP
01B8 E590 90 MOV A,LCD_PORT
01BA 120207 91 LCALL PP
01BD C2B1 92 CLR RW
01BF 22 93 RET
01C0 C0E0 94 KEY: PUSH ACC
01C2 20A009 95 JB P2.0,KEY1
01C5 1202BB 96 LCALL DELAY
01C8 755000 97 MOV SEC,#00H
01CB 0201FA 98 LJMP OUT
01CE 20A113 99 KEY1:JB P2.1,KEY2
01D1 1202BB 100 LCALL DELAY
01D4 E551 101 MOV A,MIN
01D6 2401 102 ADD A,#01H
01D8 D4 103 DA A
01D9 F551 104 MOV MIN,A
01DB B4601C 105 CJNE A,#60H,OUT
01DE 755100 106 MOV MIN,#00H
01E1 0201FA 107 LJMP OUT
01E4 20A213 108 KEY2:JB P2.2,OUT
01E7 1202BB 109 LCALL DELAY
01EA E552 110 MOV A,HOUR
01EC 2401 111 ADD A,#01H
01EE D4 112 DA A
01EF F552 113 MOV HOUR,A
01F1 B42406 114 CJNE A,#24H,OUT
01F4 755200 115 MOV HOUR,#00H
01F7 0201FA 116 LJMP OUT
01FA 117 OUT:
01FA D0E0 118 POP ACC
01FC 22 119 RET
01FD C0E0 120 PUB_DELAY_100US:PUSH ACC
01FF E4 121 CLR A
0200 04 122 PD5_0: INC A
0201 B417FC 123 CJNE A,#23,PD5_0
0204 D0E0 124 POP ACC
A51 MACRO ASSEMBLER SHIJIAN 10/05/2006 18:36:30 PAGE 3
0206 22 125 RET
0207 00 126 PP: NOP
0208 00 127 NOP
0209 00 128 NOP
020A 22 129 RET
130
020B 131 DISPLAY:
020B 790C 132 MOV R1,#12 ;显示shenzhen
020D 752080 133 MOV COM,#80H ;液晶显示第一行
0210 12014F 134 LCALL LCD_W_CMD
0213 900269 135 MOV DPTR,#TAB1
0216 7B00 136 MOV R3,#00H
0218 EB 137 LCD1:MOV A,R3
0219 93 138 MOVC A,@A+DPTR
021A F521 139 MOV DAT,A
021C 12017C 140 LCALL LCD_W_DAT
141
021F 0B 142 INC R3
0220 D9F6 143 DJNZ R1,LCD1 ;显示shenzhen结束
0222 7520C4 144 MOV COM,#0C4H ;显示时钟,液晶显示第二行
0225 12014F 145 LCALL LCD_W_CMD
0228 7852 146 MOV R0,#HOUR
022A 7E02 147 MOV R6,#02H
022C E6 148 DIS1: MOV A,@R0
022D C4 149 SWAP A
022E 540F 150 ANL A,#0FH
0230 120252 151 LCALL LCD
0233 E6 152 MOV A,@R0
0234 540F 153 ANL A,#0FH
0236 120252 154 LCALL LCD
0239 75213A 155 MOV DAT,#3AH
023C 12017C 156 LCALL LCD_W_DAT
023F 18 157 DEC R0
0240 DEEA 158 DJNZ R6,DIS1
0242 7850 159 MOV R0,#SEC
0244 E6 160 MOV A,@R0
0245 C4 161 SWAP A
0246 540F 162 ANL A,#0FH
0248 120252 163 LCALL LCD
024B E6 164 MOV A,@R0
024C 540F 165 ANL A,#0FH
024E 120252 166 LCALL LCD
0251 22 167 RET
0252 168 LCD:
0252 90025F 169 MOV DPTR,#TAB
0255 93 170 MOVC A,@A+DPTR
0256 F521 171 MOV DAT,A
0258 12017C 172 LCALL LCD_W_DAT
025B 1202BB 173 LCALL DELAY
025E 22 174 RET
025F 30313233 175 TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
0263 34353637
0267 3839
0269 20202020 176 TAB1: DB " SHENZHEN "
026D 5348454E
0271 5A48454E
0275 20202020
0279 C2AF 177 CLOCK:CLR EA
027B C0D0 178 PUSH PSW
027D C0E0 179 PUSH ACC
027F D2D4 180 SETB RS1
0281 0553 181 INC 53H
0283 E553 182 MOV A,53H
0285 B4142A 183 CJNE A,#20,BACK1
0288 755300 184 MOV 53H,#00H
028B E550 185 BACK0:MOV A,SEC
A51 MACRO ASSEMBLER SHIJIAN 10/05/2006 18:36:30 PAGE 4
028D 2401 186 ADD A,#01H
028F D4 187 DA A
0290 F550 188 MOV SEC,A
0292 B4601D 189 CJNE A,#60H,BACK1
0295 755000 190 MOV SEC,#00H
0298 E551 191 MOV A,MIN
029A 2401 192 ADD A,#01H
029C D4 193 DA A
029D F551 194 MOV MIN ,A
029F B46010 195 CJNE A,#60H,BACK1
02A2 755100 196 MOV MIN,#00H
02A5 E552 197 MOV A,HOUR
02A7 2401 198 ADD A,#01H
02A9 D4 199 DA A
02AA F552 200 MOV HOUR,A
02AC B42403 201 CJNE A,#24H,BACK1
02AF 755200 202 MOV HOUR,#00H
02B2 D0E0 203 BACK1:POP ACC
02B4 D0D0 204 POP PSW
02B6 C2D4 205 CLR RS1
02B8 D2AF 206 SETB EA
02BA 32 207 RETI
02BB D2D3 208 DELAY: SETB RS0
02BD 7E00 209 MOV R6,#00H
02BF 7F00 210 MOV R7,#00H
02C1 00 211 DELAY1: NOP
02C2 DFFD 212 DJNZ R7,DELAY1
02C4 DEFB 213 DJNZ R6,DELAY1
02C6 C2D3 214 CLR RS0
02C8 22 215 RET
216
217 END
A51 MACRO ASSEMBLER SHIJIAN 10/05/2006 18:36:30 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
BACK0. . . . . . . C ADDR 028BH A
BACK1. . . . . . . C ADDR 02B2H A
CLOCK. . . . . . . C ADDR 0279H A
COM. . . . . . . . N NUMB 0020H A
DAT. . . . . . . . N NUMB 0021H A
DELAY. . . . . . . C ADDR 02BBH A
DELAY1 . . . . . . C ADDR 02C1H A
DIS1 . . . . . . . C ADDR 022CH A
DISPLAY. . . . . . C ADDR 020BH A
E. . . . . . . . . B ADDR 00B0H.2 A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
HOUR . . . . . . . N NUMB 0052H A
INT. . . . . . . . C ADDR 0130H A
KEY. . . . . . . . C ADDR 01C0H A
KEY1 . . . . . . . C ADDR 01CEH A
KEY2 . . . . . . . C ADDR 01E4H A
LCD. . . . . . . . C ADDR 0252H A
LCD1 . . . . . . . C ADDR 0218H A
LCD_PORT . . . . . D ADDR 0090H A
LCD_R_STAT . . . . C ADDR 01A9H A
LCD_W_CMD. . . . . C ADDR 014FH A
LCD_W_CMD_A. . . . C ADDR 0151H A
LCD_W_CMD_B. . . . C ADDR 015CH A
LCD_W_DAT. . . . . C ADDR 017CH A
LCD_W_DAT_A. . . . C ADDR 017EH A
LCD_W_DAT_B. . . . C ADDR 0189H A
MAIN . . . . . . . C ADDR 0100H A
MIN. . . . . . . . N NUMB 0051H A
OUT. . . . . . . . C ADDR 01FAH A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PD5_0. . . . . . . C ADDR 0200H A
PP . . . . . . . . C ADDR 0207H A
PSW. . . . . . . . D ADDR 00D0H A
PUB_DELAY_100US. . C ADDR 01FDH A
RS . . . . . . . . B ADDR 00B0H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RW . . . . . . . . B ADDR 00B0H.1 A
SEC. . . . . . . . N NUMB 0050H A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 0125H A
TAB. . . . . . . . C ADDR 025FH A
TAB1 . . . . . . . C ADDR 0269H A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -