📄 final.lst
字号:
192
0148 D2B4 193 SETB RS ;RS = 1
014A 759054 194 MOV P1,#'T'
014D 11FE 195 CALL ESC
196
014F D2B4 197 SETB RS ;RS = 1
0151 75904F 198 MOV P1,#'O'
0154 11FE 199 CALL ESC
200
0156 D2B4 201 SETB RS ;RS = 1
0158 75904D 202 MOV P1,#'M'
015B 11FE 203 CALL ESC
204
015D D2B4 205 SETB RS ;RS = 1
015F 759041 206 MOV P1,#'A'
0162 11FE 207 CALL ESC
208
0164 D2B4 209 SETB RS ;RS = 1
0166 759054 210 MOV P1,#'T'
0169 11FE 211 CALL ESC
212
016B D2B4 213 SETB RS ;RS = 1
016D 759049 214 MOV P1,#'I'
0170 11FE 215 CALL ESC
216
0172 D2B4 217 SETB RS ;RS = 1
0174 759043 218 MOV P1,#'C'
0177 11FE 219 CALL ESC
220
221
0179 120275 222 OTRA: CALL TECLADO
017C BF0C03 223 CJNE R7, #12, ACA1
017F 0201BD 224 JMP MANUAL
0182 D201 225 ACA1: SETB 20H.1
0184 C206 226 CLR 20H.6
0186 E580 227 MOV A, DATOS
0188 540F 228 ANL A, #0FH
018A F522 229 MOV 22H, A
018C B40F02 230 CJNE A, #15, VAS
018F 80E8 231 JMP OTRA
0191 5403 232 VAS: ANL A, #03H
FINAL PAGE 5
0193 B4030B 233 CJNE A, #3, MOVH
0196 E522 234 REV: MOV A, 22H
0198 540C 235 ANL A, #0CH
019A F525 236 MOV 25H, A
019C B40C0B 237 CJNE A, #12, MOVV
019F 80D8 238 JMP OTRA
01A1 D289 239 MOVH: SETB IE0
01A3 C201 240 CLR 20H.1
01A5 3001FD 241 JNB 20H.1 , $
01A8 80EC 242 JMP REV
01AA D28B 243 MOVV: SETB IE1
01AC D206 244 SETB 20H.6
01AE 2006FD 245 JB 20H.6 , $
01B1 80C6 246 JMP OTRA
247
01B3 C284 248 AUTO: CLR P0.4
01B5 120275 249 CALL TECLADO
01B8 BF0B02 250 CJNE R7, #11, MANUAL
01BB 212F 251 JMP OTRA432
252
01BD BF0CF3 253 MANUAL: CJNE R7, #12, AUTO
01C0 1203AE 254 VERTI23: CALL MANUAL23
01C3 120275 255 VERTI: CALL TECLADO
01C6 BF0B02 256 CJNE R7, #11, VASACA
01C9 212F 257 YEAH: JMP OTRA432
01CB BF0D3F 258 VASACA: CJNE R7, #13, HORIZON; PREGUNTAMO SI NOS MOVEMOS VERTICALMENTE PRIMERO
259
01CE 1203AE 260 DIGV1: CALL MANUAL23
01D1 120365 261 CALL VERTIN
01D4 120275 262 DIGV: CALL TECLADO
01D7 BF0B02 263 CJNE R7, #11, VASACA1
01DA 212F 264 JMP OTRA432
01DC BF0E03 265 VASACA1: CJNE R7, #14, VASACA2
01DF 020215 266 JMP DIGH1
01E2 EF 267 VASACA2: MOV A, R7
01E3 C3 268 CLR C
01E4 940A 269 SUBB A, #0AH
01E6 50EC 270 JNC DIGV
01E8 8F16 271 MOV 16H, R7
01EA 1203E4 272 CALL NU
01ED 120275 273 DAS: CALL TECLADO
01F0 BF0B02 274 CJNE R7, #11, VASACA3
01F3 212F 275 JMP OTRA432
01F5 BF0E03 276 VASACA3: CJNE R7, #14, VASACA4
01F8 020215 277 JMP DIGH1
01FB BF0D02 278 VASACA4: CJNE R7, #13, VASACA23
01FE 80CE 279 JMP DIGV1
0200 BF0F06 280 VASACA23: CJNE R7, #15, SADA
0203 12046D 281 CALL ENTER
0206 020250 282 JMP CORRECTOV
0209 80E2 283 SADA: JMP DAS
020B 80B3 284 ALLA: JMP VERTI23
285
286
020D BF0B02 287 HORIZON: CJNE R7, #11, VASACA5
0210 80B7 288 JMP YEAH
0212 BF0EAE 289 VASACA5: CJNE R7, #14, VERTI; PREGUNTAMOS SI NOS MOVEMOS HORIZONTALMETE PRIMERO
FINAL PAGE 6
0215 1203AE 290 DIGH1: CALL MANUAL23
0218 1204CB 291 CALL HORIN
021B 120275 292 DIGH: CALL TECLADO
021E BF0B02 293 CJNE R7, #11, VASACA6
0221 80A6 294 JMP YEAH
0223 BF0D02 295 VASACA6: CJNE R7, #13, VASACA7
0226 80A6 296 JMP DIGV1
0228 EF 297 VASACA7: MOV A, R7
0229 C3 298 CLR C
022A 940A 299 SUBB A, #0AH
022C 50ED 300 JNC DIGH
022E 1203E4 301 CALL NU
0231 8F17 302 MOV 17H, R7
0233 120275 303 VAS34: CALL TECLADO
0236 BF0B02 304 CJNE R7, #11, VASACA8
0239 808E 305 JMP YEAH
023B BF0D02 306 VASACA8: CJNE R7, #13, VASACA9
023E 808E 307 JMP DIGV1
0240 BF0E02 308 VASACA9: CJNE R7, #14, VASACA11
0243 80D0 309 JMP DIGH1
0245 BF0F06 310 VASACA11: CJNE R7, #15, VASACA10
0248 12046D 311 CALL ENTER
024B 020261 312 JMP CORRECTOH
024E 80E3 313 VASACA10: JMP VAS34
314
0250 C3 315 CORRECTOV: CLR C
0251 7417 316 MOV A, #23
0253 9516 317 SUBB A, 16H
0255 FE 318 MOV R6, A
0256 8E25 319 MOV 25H, R6
0258 D28C 320 SETB TR0
025A D206 321 SETB 20H.6
025C 2006FD 322 JB 20H.6 , $
025F 80AA 323 JMP ALLA
324
325
0261 75F002 326 CORRECTOH: MOV B, #2
0264 E517 327 MOV A, 17H
0266 A4 328 MUL AB
0267 2403 329 ADD A, #3
0269 FE 330 MOV R6, A
026A 8E25 331 MOV 25H, R6
026C D28C 332 SETB TR0
026E C201 333 CLR 20H.1
0270 3001FD 334 JNB 20H.1 , $
0273 8096 335 JMP ALLA
336
337
0275 7D04 338 Teclado: Mov R5,#4 ;contador de filas
0277 7AFE 339 Mov R2,#0fEh ;Codigo de barrido de filas
0279 7F03 340 Mov R7,#03 ;Valor mayor de la 1ra fila
341
027B 8AA0 342 otra1: Mov P2,R2 ; sacar codigo
027D E5A0 343 Mov A,P2 ; Leer columnas
027F 440F 344 ORL A,#0fh
0281 B4FF0C 345 CJNE A, #0ffh,ver_tecla ;Si hubo tecla oprimida
0284 EA 346 Mov A, R2 ;No hubo tecla oprimida
0285 23 347 RL A ;rotar codigo para siguiente fila
FINAL PAGE 7
0286 FA 348 Mov R2,A
0287 EF 349 Mov A, R7
0288 2404 350 ADD A,#4 ; valor mayor de la fila siguiente
028A FF 351 Mov R7,A
028B DDEE 352 DJNZ R5, otra1 ; repetir para fila siguiente
353
028D 7FFF 354 Mov R7, #0ffh ; Devuelve FFh si no hay tecla oprimida
028F 22 355 RET
356
0290 1202AE 357 ver_tecla:Call RETARDO10 ;eliminar rebote
0293 E5A0 358 Mov A, P2
0295 440F 359 ORL A,#0Fh
0297 B4FF03 360 CJNE A, #0ffh, sigue ;la tecla sigue oprimida
029A 7FFF 361 Mov R7,#0ffh ; no hay tecla oprimida
029C 22 362 RET
363
029D 33 364 sigue: RLC A ;Encontrar valor de la tecla oprimida
029E 5003 365 JNC soltar
02A0 1F 366 DEC R7
02A1 80FA 367 JMP sigue
368
02A3 E5A0 369 soltar: Mov A, P2 ; Esperar que se suelte la tecla
02A5 440F 370 ORL A,#0fh
02A7 B4FFF9 371 CJNE A,#0ffh, soltar
02AA 1202AE 372 Call RETARDO10
02AD 22 373 RET
374
02AE 751819 375 RETARDO10: MOV CONT1, #25;retardo 10ms
02B1 7519C8 376 CIC1: MOV CONT2, #200
02B4 D519FD 377 CIC2: DJNZ CONT2, CIC2
02B7 D518F7 378 DJNZ CONT1, CIC1
02BA 22 379 RET
380
02BB 758CFF 381 PWM: MOV TH0, #0FFH
02BE 758A9C 382 MOV TL0, #9CH
02C1 BE0003 383 CJNE R6, #0, BAJO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -