📄 mms.lst
字号:
019C C2A7 218 ENABLE: CLR RS
019E C2A6 219 CLR RW ;RS,RW同为低电平时写入指令
01A0 F580 220 MOV P0,A
01A2 C2A5 221 CLR E ;E由高变低时执行指令
01A4 31A9 222 ACALL WAIT
01A6 D2A5 223 SETB E
01A8 22 224 RET
225
226 ;========== WAIT ============
227 ;判断液晶是否忙的子程序
01A9 7580FF 228 WAIT: MOV P0,#0FFH
01AC C2A7 229 CLR RS
01AE D2A6 230 SETB RW ;RW为高,RS为低时可读忙信号
01B0 C2A5 231 CLR E
01B2 00 232 NOP
01B3 D2A5 233 SETB E
01B5 2087F1 234 JB P0.7,WAIT
01B8 22 235 RET
236
237
238
239 ;========== 显示的起始地址 ============
240 ;在第一行
01B9 7480 241 LINE1: MOV A,#80H
01BB 319C 242 ACALL ENABLE
01BD 22 243 RET
244 ;在第二行
01BE 74C0 245 LINE2: MOV A,#0C0H
01C0 319C 246 ACALL ENABLE
01C2 22 247 RET
248
249
250 ;=========== 显示程序 ============
01C3 7F00 251 DISPLAY:MOV R7,#00H
01C5 EF 252 NEXT: MOV A,R7
01C6 93 253 MOVC A,@A+DPTR
01C7 B41001 254 CJNE A,#10H,DSP
01CA 22 255 RET
A51 MACRO ASSEMBLER MMS 06/23/2007 22:08:45 PAGE 5
01CB 31D0 256 DSP: ACALL WRDATA
01CD 0F 257 INC R7
01CE 21C5 258 AJMP NEXT
259
260 ;========== 将A里面的数据写入液晶 ============
01D0 D2A7 261 WRDATA: SETB RS
01D2 C2A6 262 CLR RW
01D4 F580 263 MOV P0,A
01D6 C2A5 264 CLR E
01D8 31A9 265 ACALL WAIT
01DA D2A5 266 SETB E
01DC 22 267 RET
268
269 ;=========== 报警程序 ============
01DD D28C 270 WRANING: SETB TR0
01DF 31E9 271 ACALL BACK
01E1 7C00 272 MOV R4,#00H
01E3 5134 273 ACALL D2
01E5 3020F5 274 JNB 20H, WRANING
01E8 22 275 RET
276 ;=========== 发声程序 ============
01E9 7864 277 BACK: MOV R0,#100
01EB B2B7 278 KK1: CPL SPEAK
01ED 120232 279 LCALL DELAY2MS
01F0 D8F9 280 DJNZ R0,KK1 ;不断取反P2.0使其产生一定频率的方波推动扬声器
01F2 22 281 RET ;延时的长短可以改变输出的频率
282
283 ;=========== INTT0 ============
284 ;报警时间设定
01F3 C0E0 285 INTT0: PUSH ACC
01F5 C0D0 286 PUSH PSW
01F7 758C3C 287 MOV TH0,#3CH
01FA 758A0B 288 MOV TL0,#0BH
01FD 0545 289 INC 45H
01FF E545 290 MOV A,45H
0201 B54207 291 CJNE A,42H,INTT0OUT
0204 754500 292 MOV 45H,#00H
0207 D220 293 SETB 20H ;置标志位
0209 C28C 294 CLR TR0 ;关闭定时器
020B D0D0 295 INTT0OUT:POP PSW
020D D0E0 296 POP ACC
020F 32 297 RETI
298 ;=========== INTT1 ============
299 ;输入超时
0210 C0E0 300 INTT1: PUSH ACC
0212 C0D0 301 PUSH PSW
0214 0546 302 INC 46H
0216 E546 303 MOV A,46H
0218 B54707 304 CJNE A,47H,INTT1OUT
021B C28E 305 CLR TR1 ;关闭定时器
021D D221 306 SETB 21H ;时间到置标志位
021F 754700 307 MOV 47H,#00H ;中断次数清零
0222 D0D0 308 INTT1OUT:POP PSW
0224 D0E0 309 POP ACC
0226 32 310 RETI
311 ;=========== 延时程序 ============
0227 7C38 312 DELAY: MOV R4,#38H
0229 7DF9 313 D1: MOV R5,#0F9H
022B DDFE 314 DJNZ R5,$
022D DCFA 315 DJNZ R4,D1
022F DEF6 316 DJNZ R6,DELAY ;14R6毫秒
0231 22 317 RET
0232 7C02 318 DELAY2MS: MOV R4,#02H
0234 7DF0 319 D2: MOV R5,#0F0H
0236 DDFE 320 DJNZ R5,$
0238 DCFA 321 DJNZ R4,D2
A51 MACRO ASSEMBLER MMS 06/23/2007 22:08:45 PAGE 6
023A 22 322 RET
023B 7C14 323 DELAY10ms: MOV R4,#20
023D 7DF8 324 D3: MOV R5,#248
023F DDFE 325 DJNZ R5,$
0241 DCFA 326 DJNZ R4,D3
0243 22 327 RET
328
0244 31333134 329 PASS: DB "1314520"
0248 353230
024B 50617373 330 MES_P: DB "Password?",10H
024F 776F7264
0253 3F10
0255 20202077 331 MES_C: DB " welcome!",10H
0259 656C636F
025D 6D652110
0261 4572726F 332 MES_E: DB "Error!",10H
0265 722110
0268 7869616F 333 TAB_1: DB "xiao_fa office",10h
026C 5F666120
0270 6F666669
0274 636510
334
335 END
A51 MACRO ASSEMBLER MMS 06/23/2007 22:08:45 PAGE 7
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
BACK . . . . . . . C ADDR 01E9H A
COMP . . . . . . . C ADDR 0087H A
D1 . . . . . . . . C ADDR 0229H A
D2 . . . . . . . . C ADDR 0234H A
D3 . . . . . . . . C ADDR 023DH A
DELAY. . . . . . . C ADDR 0227H A
DELAY10MS. . . . . C ADDR 023BH A
DELAY2MS . . . . . C ADDR 0232H A
DISPLAY. . . . . . C ADDR 01C3H A
DSP. . . . . . . . C ADDR 01CBH A
E. . . . . . . . . B ADDR 00A0H.5 A
EA . . . . . . . . B ADDR 00A8H.7 A
EE0. . . . . . . . C ADDR 00DAH A
ENABLE . . . . . . C ADDR 019CH A
ENTER. . . . . . . B ADDR 0022H.0 A
ERR. . . . . . . . C ADDR 00BCH A
ERROUT . . . . . . C ADDR 00E1H A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
EX0. . . . . . . . B ADDR 00A8H.0 A
INIT . . . . . . . C ADDR 0072H A
INTT0. . . . . . . C ADDR 01F3H A
INTT0OUT . . . . . C ADDR 020BH A
INTT1. . . . . . . C ADDR 0210H A
INTT1OUT . . . . . C ADDR 0222H A
K1 . . . . . . . . C ADDR 0100H A
KEYIN. . . . . . . C ADDR 007DH A
KEYNUMBER. . . . . N NUMB 0041H A
KEY_INT. . . . . . C ADDR 00E3H A
KEY_RTN. . . . . . C ADDR 0106H A
KK1. . . . . . . . C ADDR 01EBH A
LINE1. . . . . . . C ADDR 01B9H A
LINE2. . . . . . . C ADDR 01BEH A
LOOP . . . . . . . C ADDR 0090H A
MAIN . . . . . . . C ADDR 0030H A
MATCH. . . . . . . C ADDR 009DH A
MES_C. . . . . . . C ADDR 0255H A
MES_E. . . . . . . C ADDR 0261H A
MES_P. . . . . . . C ADDR 024BH A
NEXT . . . . . . . C ADDR 01C5H A
OPEN . . . . . . . B ADDR 00B0H.6 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PASS . . . . . . . C ADDR 0244H A
PASSBUF. . . . . . N NUMB 0040H A
PSW. . . . . . . . D ADDR 00D0H A
RETURN . . . . . . C ADDR 017EH A
RS . . . . . . . . B ADDR 00A0H.7 A
RW . . . . . . . . B ADDR 00A0H.6 A
SELLCD . . . . . . C ADDR 018BH A
SMKEY. . . . . . . C ADDR 010DH A
SP . . . . . . . . D ADDR 0081H A
SPEAK. . . . . . . B ADDR 00B0H.7 A
SS1. . . . . . . . C ADDR 0061H A
START. . . . . . . C ADDR 005DH A
TAB_1. . . . . . . C ADDR 0268H A
A51 MACRO ASSEMBLER MMS 06/23/2007 22:08:45 PAGE 8
TCON . . . . . . . D ADDR 0088H A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
WAIT . . . . . . . C ADDR 01A9H A
WKEY . . . . . . . C ADDR 0111H A
WKEY1. . . . . . . C ADDR 0128H A
WKEY10 . . . . . . C ADDR 0170H A
WKEY11 . . . . . . C ADDR 0178H A
WKEY2. . . . . . . C ADDR 0130H A
WKEY3. . . . . . . C ADDR 0138H A
WKEY4. . . . . . . C ADDR 0140H A
WKEY5. . . . . . . C ADDR 0148H A
WKEY6. . . . . . . C ADDR 0150H A
WKEY7. . . . . . . C ADDR 0158H A
WKEY8. . . . . . . C ADDR 0160H A
WKEY9. . . . . . . C ADDR 0168H A
WRANING. . . . . . C ADDR 01DDH A
WRDATA . . . . . . C ADDR 01D0H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -