📄 password clock3.lst
字号:
288 0080 0680 R andm a,a_SR10
289 0081 0600 R AND a,COL_VALUE
290 0082
291 0082 0400 R xor A,a_SR10 ;;Check ROW Multi-Key
292 0083 3D0A SZ z
293 0084 288A JMP COL_WITH_KEY
294 0085 COL_ERROR_KEY:
295 0085 3000 R set fg_Multi_Key
文件:PASSWORD CLOCK3.ASM 盛群编译器版本 2.86 页次6
296 0086
297 0086 COL_WITHOUT_KEY:
298 0086 2887 jmp $+1
299 0087 2888 jmp $+1
300 0088 2889 jmp $+1
301 0089 2895 JMP READY_2_NEXT_COLUMN
302 008A COL_WITH_KEY: ;;KEY NUMBER PROCESS
303 008A 0F02 mov a,2 ;;\
304 008B 0080 R mov temp_num,a ;; \
305 008C 0700 R mov a,COLUMMN ;; \
306 008D 0300 R add a,COLUMMN ;; /COLUMMN * 3 --> ACC
307 008E ;MOV COLUMMN,a ;; /
308 008E 1780 R sdz temp_num ;; /
309 008F 288D jmp $-2 ;;/
310 0090 0300 R add A,a_SR11 ;;
311 0091 0080 R mov KEY_CODE,A ;;
312 0092 3C00 R SZ fg_PressRec ;;Check Column Multi-Key
313 0093 3000 R set fg_Multi_Key ;;
314 0094 3000 R set fg_PressRec ;;
315 0095 READY_2_NEXT_COLUMN:
316 0095 1480 R inc COLUMMN
317 0096 0700 R mov A,COLUMMN
318 0097 0C04 xor A,4
319 0098 390A SNZ z
320 0099 2866 JMP NEXT_COLUMN
321 009A 0000 nop
322 009B READ_KEY_COMPLETE:
323 009B
324 009B ;@************* SUBROUTINE[xx]: Check Key Active ************
325 009B ;@--- Scan Key Complete, Check key valid ? ---
326 009B CHECK_KEY_ACTIVE:
327 009B
328 009B 1080 R SZ KEY_CODE ;;If a_KEY_NUM = ffh, invalid key
329 009C 289E JMP VALID_KEY_CHK
330 009D 28B7 JMP INVALID_KEY_CHK
331 009E ;@--------------------------
332 009E VALID_KEY_CHK:
333 009E 1080 R SZ KEY_CODE0 ;;Check New Key
334 009F 28A1 JMP VALID_KEYC_PRO
335 00A0 28C6 JMP KEY_DEB
336 00A1
337 00A1 VALID_KEYC_PRO:
338 00A1
339 00A1 0700 R mov A,KEY_CODE
340 00A2 0400 R xor A,KEY_CODE0 ;; Check Repeat key
341 00A3 390A SNZ z
342 00A4 28AC JMP VALID_SEND_KEY
343 00A5 ;;----------------------------
344 00A5 VALID_RPSEND_KEY:
345 00A5
346 00A5 3800 R snz fg_Multi_key ;Check Multi-Key Clear KEY_CODE
347 00A6 28A9 JMP REPEAT_KEY
348 00A7
349 00A7 1F00 R clr KEY_CODE
350 00A8 0003 ret
351 00A9
352 00A9 REPEAT_KEY:
353 00A9 3000 R SET fg_REPEAT ;;SET Repeat Flag
354 00AA 28AB jmp $+1
355 00AB 28B3 JMP SET_VALIDFG
文件:PASSWORD CLOCK3.ASM 盛群编译器版本 2.86 页次7
356 00AC
357 00AC VALID_SEND_KEY:
358 00AC 0700 R mov a,KEY_CODE0 ;;Check Change Key
359 00AD 0CFF XOR A,0FFH ;;Check Debounce END
360 00AE 390A SNZ z
361 00AF 28B5 JMP CHANG_KEY
362 00B0
363 00B0 ;;--- NEW KEY Initiate
364 00B0 3400 R CLR fg_REPEAT
365 00B1
366 00B1 0700 R mov a,KEY_CODE
367 00B2 0080 R mov KEY_CODE0,a
368 00B3
369 00B3 ;;--- SET VALIDITY KEY
370 00B3 SET_VALIDFG:
371 00B3 3000 R SET fg_SendActive
372 00B4
373 00B4 0003 ret
374 00B5
375 00B5 CHANG_KEY:
376 00B5 1F00 R CLR KD_TEMP
377 00B6 28B8 JMP RKEY_PRO
378 00B7
379 00B7 ;@----------------------------
380 00B7 INVALID_KEY_CHK:
381 00B7 1F00 R CLR KD_TEMP
382 00B8
383 00B8 RKEY_PRO: ;Release Key Confirm
384 00B8 1480 R INC NKD_TEMP
385 00B9 0700 R MOV A,NKD_TEMP
386 00BA 0C05 XOR A,5
387 00BB 390A SNZ z
388 00BC 285F JMP SCAN_KEY_PROC
389 00BD
390 00BD 1580 R DEC NKD_TEMP ;
391 00BE
392 00BE NO_KEY_PROC:
393 00BE 3400 R clr fg_SendActive
394 00BF 28C0 jmp $+1
395 00C0 28C1 jmp $+1
396 00C1 0000 NOP
397 00C2 EXIT_INVALID_KEY:
398 00C2
399 00C2 0700 R mov a,KEY_CODE ;Clear KEY_CODE0
400 00C3 0080 R mov KEY_CODE0,a
401 00C4 28C5 jmp $+1
402 00C5 0003 ret
403 00C6
404 00C6 KEY_DEB: ;T1=455KHz/4=116480Hz = 8.79us
405 00C6 ;Check Key Debounce
406 00C6 1480 R INC KD_TEMP
407 00C7 0700 R MOV A,KD_TEMP
408 00C8 0C06 XOR A,6
409 00C9 390A SNZ z
410 00CA 285F JMP SCAN_KEY_PROC
411 00CB
412 00CB 0FFF MOV A,0FFH ;SAVE KEY Debounce Check END
413 00CC 0080 R MOV KEY_CODE0,A ;0FFH to a_PREV_KEY
414 00CD 285F JMP SCAN_KEY_PROC
415 00CE
文件:PASSWORD CLOCK3.ASM 盛群编译器版本 2.86 页次8
416 00CE ;****************read personal clock******************
417 00CE personal_code:
418 00CE 0700 R mov a,key_code
419 00CF 0080 mov r0, a
420 00D0 1481 inc mp0
421 00D1 0701 mov a,mp0
422 00D2 0E7F and a,7fh
423 00D3 0C00 R xor a,offset array_data+8
424 00D4 1085 sz acc
425 00D5 2829 jmp main_proc
426 00D6 read_code1:
427 00D6 0F08 mov a, 8
428 00D7 0080 R mov temp_num, a
429 00D8 0F00 mov a,0
430 00D9 00B2 mov word_address, a
431 00DA 0F00 R mov a, offset array_data
432 00DB 0081 mov mp0, a
433 00DC read_n1:
434 00DC 21CC call ht24_read
435 00DD 0700 mov a, r0
436 00DE 0430 xor a, read_out
437 00DF 1085 sz acc
438 00E0 2AC5 jmp fail_out
439 00E1 1481 inc mp0
440 00E2 14B2 inc word_address
441 00E3 ;call delay_5ms
442 00E3 1780 R sdz temp_num
443 00E4 28DC jmp read_n1
444 00E5 0F00 R mov a, offset array_data
445 00E6 0081 mov mp0, a
446 00E7 2AC9 jmp ok_end
447 00E8 ;--------------------
448 00E8 chang_personal_proc:
449 00E8 0700 R mov a,key_code
450 00E9 0080 mov r0, a
451 00EA 1481 inc mp0
452 00EB 0701 mov a,mp0
453 00EC 0E7F and a,7fh
454 00ED 0C00 R xor a,offset array_data+8
455 00EE 1085 sz acc
456 00EF 2829 jmp main_proc
457 00F0
458 00F0 0F08 mov a, 8
459 00F1 0080 R mov temp_num, a
460 00F2 0F00 mov a,0
461 00F3 00B2 mov word_address, a
462 00F4 0F00 R mov a, offset array_data
463 00F5 0081 mov mp0, a
464 00F6 personal_1:
465 00F6 2131 call ht24_write
466 00F7 1481 inc mp0
467 00F8 14B2 inc word_address
468 00F9 1780 R sdz temp_num
469 00FA 2928 jmp manage_0
470 00FB 3400 R clr flg_chang_key
471 00FC 3400 R clr manage_code_end
472 00FD 2829 jmp main_proc
473 00FE ;---------read manage clock----------------
474 00FE manage_code:
475 00FE 0700 R mov a,key_code
文件:PASSWORD CLOCK3.ASM 盛群编译器版本 2.86 页次9
476 00FF 0080 mov r0, a
477 0100 1481 inc mp0
478 0101 0701 mov a,mp0
479 0102 0E7F and a,7fh
480 0103 0C00 R xor a,offset array_data+8
481 0104 1085 sz acc
482 0105 2829 jmp main_proc
483 0106 read_code2:
484 0106 0F08 mov a, 8
485 0107 0080 R mov temp_num, a
486 0108 0F10 mov a,010h
487 0109 00B2 mov word_address, a
488 010A 0F00 R mov a, offset array_data
489 010B 0081 mov mp0, a
490 010C read_n2:
491 010C 21CC call ht24_read
492 010D 0700 mov a, r0
493 010E 0430 xor a, read_out
494 010F 1085 sz acc
495 0110 2AC5 jmp fail_out
496 0111 1481 inc mp0
497 0112 14B2 inc word_address
498 0113 ;call delay_5ms
499 0113 1780 R sdz temp_num
500 0114 290C jmp read_n2
501 0115 3400 R clr flg_chang_key
502 0116 3000 R set manage_code_end
503 0117
504 0117 0F00 R mov a, offset array_data
505 0118 0081 mov mp0, a
506 0119 2829 jmp main_proc
507 011A
508 011A ;---------------------------------------------
509 011A chang_manage_proc:
510 011A 0700 R mov a,key_code
511 011B 0080 mov r0, a
512 011C 1481 inc mp0
513 011D 0701 mov a,mp0
514 011E 0E7F and a,7fh
515 011F 0C00 R xor a,offset array_data+8
516 0120 1085 sz acc
517 0121 2829 jmp main_proc
518 0122
519 0122 0F08 mov a, 8
520 0123 0080 R mov temp_num, a
521 0124 0F10 mov a,010h
522 0125 00B2 mov word_address, a
523 0126 0F00 R mov a, offset array_data
524 0127 0081 mov mp0, a
525 0128 manage_0:
526 0128 2131 call ht24_write
527 0129 1481 inc mp0
528 012A 14B2 inc word_address
529 012B 1780 R sdz temp_num
530 012C 2928 jmp manage_0
531 012D 3400 R clr flg_chang_key
532 012E 3400 R clr manage_code_end
533 012F 2829 jmp main_proc
534 0130 ;---------------------------------------------
535 0130 release_proc:
文件:PASSWORD CLOCK3.ASM 盛群编译器版本 2.86 页次10
536 0130
537 0130 3400 R clr release_flg
538 0131
539 0131
540 0131
541 0131 ;************************************************
542 0131 ht24_write:
543 0131 3014 set sda
544 0132 d_1
545 0136 3094 set scl
546 0137 d_1
547 013B 3414 clr sda ;起始信号
548 013C
549 013C 3494 clr scl
550 013D 3014 set sda ;1
551 013E d_1
552 0142 3094 set scl
553 0143 d_1
554 0147
555 0147 3494 clr scl
556 0148 3414 clr sda ;0
557 0149 3094 set scl
558 014A d_1
559 014E
560 014E 3494 clr scl
561 014F 3014 set sda ;1
562 0150 d_1
563 0154 3094 set scl
564 0155 d_1
565 0159
566 0159 3494 clr scl
567 015A 3414 clr sda ;0
568 015B 3094 set scl
569 015C d_1
570 0160
571 0160 3494 clr scl
572 0161 3414 clr sda ;a2,a1,a0=0
573 0162 3094 set scl
574 0163 d_1
575 0167
576 0167 3494 clr scl
577 0168 3094 set scl
578 0169 d_1
579 016D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -