📄 main.lst
字号:
A51 MACRO ASSEMBLER MAIN 05/27/2009 03:08:13 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: E:\Keil\C51\BIN\A51.EXE main.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 00H
0000 8023 2 SJMP START
3
0003 4 ORG 003H;
0003 21BC 5 JMP INT0_INT;
6
7
000B 8 ORG 000BH
000B 21C5 9 JMP T0_INT;
0023 10 ORG 0023H
0023 21C4 11 JMP UART51_INT;
0025 12 START:
0025 758150 13 MOV SP,#50H;
0040 14 RECBUF EQU 40H;
0042 15 SENDBUF EQU 42H;
16
0046 17 STATUS EQU 46H;
0047 18 CYCLE EQU 047H;
0048 19 TOKEN EQU 048H;
0049 20 NUM EQU 49H;
004A 21 KEY EQU 4AH;
22
0092 23 POUT3 BIT P1.2;
24
25 ;KEY1 BIT P0.0;
26 ;KEY2 BIT P0.1;
27 ;KEY3 BIT P0.3;
28 ;KEY4 BIT P0.2;
29
00E0 30 KEY1 BIT ACC.0;
00E1 31 KEY2 BIT ACC.1;
00E3 32 KEY3 BIT ACC.3;
00E2 33 KEY4 BIT ACC.2;
34
35
36
0097 37 RS BIT P1.7
0096 38 RW BIT P1.6
0095 39 EP BIT P1.5;
40
41
42
43 ;;;;;; AUX REGISTER DEFINE ;;;;;;
0091 44 P1M0 EQU 91H;
0092 45 P1M1 EQU 92H;
0093 46 P0M0 EQU 93H;
0094 47 P0M1 EQU 94H;
0095 48 P2M0 EQU 95H;
0096 49 P2M1 EQU 96H;
00B1 50 P3M0 EQU 0B1H;
00B2 51 P3M1 EQU 0B2H;
52
00C7 53 CLK_DIV EQU 0C7H;
008E 54 AUXR EQU 8EH;
55
0028 12017D 56 LCALL DELAY3S;
002B 12017D 57 LCALL DELAY3S;
002E 12017D 58 LCALL DELAY3S;
A51 MACRO ASSEMBLER MAIN 05/27/2009 03:08:13 PAGE 2
0031 1200BB 59 LCALL IO_INITIAL
0034 7D30 60 MOV R5,#30H;
0036 120146 61 LCALL lcd_wcmd;
0039 120125 62 LCALL DELAY;
003C 7D0C 63 MOV R5,#0CH;#0CH;
003E 120146 64 LCALL lcd_wcmd; 显于方式开
0041 120125 65 LCALL DELAY;
0044 7D06 66 MOV R5,#06H;
0046 120146 67 LCALL lcd_wcmd;
0049 120125 68 LCALL DELAY;
004C 7D01 69 MOV R5,#01H;;
004E 120146 70 LCALL lcd_wcmd;
0051 120125 71 LCALL DELAY;
72 ;LCALL lcd_pos;
0054 7D8A 73 MOV R5,#8AH;
0056 120146 74 LCALL lcd_wcmd;
0059 120125 75 LCALL DELAY;
76
005C 1201AA 77 LCALL INT_INITIAL;
005F 12018B 78 LCALL UART51_INITIAL;
79
0062 C289 80 CLR IE0;
0064 C28B 81 CLR IE1;
0066 C2A8 82 CLR EX0;
0068 C2AC 83 CLR ES; 充许51串口中断
84
85
006A 1200FB 86 LCALL CLEAR_DISP;
87 ;MOV DPTR,#TABLE1;
88 ;LCALL DISP
006D 89 MAIN:
006D 11DA 90 CALL KEY_CHECK;
006F E54A 91 MOV A,KEY;
0071 60FA 92 JZ MAIN
0073 30E00E 93 JNB KEY1,UART51_INT_NEXT1; KEY1
0076 1200FB 94 LCALL CLEAR_DISP;
0079 9001C6 95 MOV DPTR,#TABLE1;
007C 120104 96 LCALL DISP
007F 754A00 97 MOV KEY,#00H;
0082 80E9 98 JMP MAIN;
99
0084 100 UART51_INT_NEXT1:
0084 30E10E 101 JNB KEY2,UART51_INT_NEXT2;
0087 1200FB 102 LCALL CLEAR_DISP;
008A 9001D4 103 MOV DPTR,#TABLE2;
008D 120104 104 LCALL DISP
0090 754A00 105 MOV KEY,#00H;
0093 80D8 106 JMP MAIN;
107
0095 108 UART51_INT_NEXT2:
0095 30E30E 109 JNB KEY3,UART51_INT_NEXT3;
0098 1200FB 110 LCALL CLEAR_DISP;
009B 9001E3 111 MOV DPTR,#TABLE3;
009E 120104 112 LCALL DISP
00A1 754A00 113 MOV KEY,#00H;
00A4 80C7 114 JMP MAIN;
115
00A6 116 UART51_INT_NEXT3:
00A6 30E20E 117 JNB KEY4,UART51_INT_NEXT4;
00A9 1200FB 118 LCALL CLEAR_DISP;
00AC 9001F3 119 MOV DPTR,#TABLE4;
00AF 120104 120 LCALL DISP
00B2 754A00 121 MOV KEY,#00H;
00B5 80B6 122 JMP MAIN;
123
00B7 124 UART51_INT_NEXT4:
A51 MACRO ASSEMBLER MAIN 05/27/2009 03:08:13 PAGE 3
125
00B7 80B4 126 JMP MAIN;
00B9 127 UART51_INT_NEXT50:
00B9 80B2 128 JMP MAIN;
129
00BB 130 IO_INITIAL:
131 ;;;;;;;;; P0 HIGH RESISER INPUT PORT ;;;;
00BB 7593FF 132 MOV P0M0,#0FFH;
133 ; MOV P0M0,#00H;
00BE 759400 134 MOV P0M1,#00H;
135 ;;;;;;;; P1.0 P1.1 HIGH RESISER INPUT,OTHERS PIN ARE STANDER IO PORT
00C1 759103 136 MOV P1M0,#00000011B;
137 ;MOV P1M0,#00000000B;
00C4 759200 138 MOV P1M1,#00000000B;
139
140 ;;;;;;;;; P2 STANDAR IO PORT ;;;;
00C7 759500 141 MOV P2M0,#00H;
00CA 759600 142 MOV P2M1,#00H;
143
144 ;;;;;;;;; P3 STANDAR IO PORT ;;;;
00CD 75B100 145 MOV P3M0,#00H;
00D0 75B200 146 MOV P3M1,#00H;
147 ; MOV P3M1,#11111000b;
148
00D3 75C700 149 MOV CLK_DIV,#00H
00D6 758E00 150 MOV AUXR,#00H; T0,T1 1/12 clock mode; uart is standar 12T mode; disable a/d and spi inte
rrupt
151
00D9 22 152 RET;
153
154
00DA 155 KEY_CHECK:
00DA 754A00 156 MOV KEY,#00H;
00DD 157 KEY_DOWN:
00DD E580 158 MOV A,P0;
00DF 60FC 159 JZ KEY_DOWN;
00E1 C292 160 CLR POUT3;
161
00E3 F5F0 162 MOV B,A;
00E5 3125 163 CALL DELAY;
00E7 E580 164 MOV A,P0;
00E9 B5F00B 165 CJNE A,B,KEY_ERROR;
00EC 85804A 166 MOV KEY,P0;
00EF 167 KEY_UP:
00EF E580 168 MOV A,P0;
00F1 70FC 169 JNZ KEY_UP;
00F3 D292 170 SETB POUT3;
00F5 8003 171 JMP KEY_END;
00F7 172 KEY_ERROR:
00F7 754A00 173 MOV KEY,#00H;
00FA 174 KEY_END:
00FA 22 175 RET
176
00FB 177 CLEAR_DISP:
00FB 7D01 178 MOV R5,#01H;;
00FD 120146 179 LCALL lcd_wcmd;
0100 120125 180 LCALL DELAY;
0103 22 181 RET;
0104 182 DISP:
0104 7D91 183 MOV R5,#91H
0106 120146 184 LCALL lcd_wcmd
0109 120125 185 LCALL DELAY
010C 3112 186 CALL WRITE
010E 120125 187 LCALL DELAY;
0111 22 188 RET
189
A51 MACRO ASSEMBLER MAIN 05/27/2009 03:08:13 PAGE 4
0112 190 WRITE:
0112 7400 191 MOV A,#00H;
0114 93 192 MOVC A,@A+DPTR;
0115 B40002 193 CJNE A,#00H,WRITE_NEXT1;
0118 800A 194 JMP WRITE_END;
011A 195 WRITE_NEXT1:
011A FC 196 MOV R4,A;
011B 12012E 197 LCALL lcd_wdat;
011E 120125 198 LCALL DELAY;
0121 A3 199 INC DPTR;
0122 80EE 200 JMP WRITE;
0124 201 WRITE_END:
0124 22 202 RET
203
0125 204 DELAY:
0125 7F06 205 MOV R7,#06H
0127 206 DELAY1:
0127 7EFF 207 MOV R6,#0FFH
0129 DEFE 208 DJNZ R6,$
012B DFFA 209 DJNZ R7,DELAY1
012D 22 210 RET
211 ;;;;;;;;;;;;;R4 ; data
012E 212 lcd_wdat:
012E 12015F 213 LCALL lcd_bz;
0131 D297 214 SETB RS;
0133 C296 215 CLR RW;
0135 C295 216 CLR EP;
0137 00 217 NOP;
0138 00 218 NOP;
0139 8CA0 219 MOV P2,R4;
013B 00 220 NOP;
013C 00 221 NOP;
013D 00 222 NOP;
013E D295 223 SETB EP;
0140 00 224 NOP;
0141 00 225 NOP;
0142 00 226 NOP;
0143 C295 227 CLR EP;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -