📄 password clock9.lst
字号:
309 00A9
310 00A9 VALID_KEYC_PRO:
311 00A9
312 00A9 0700 R mov A,KEY_CODE
313 00AA 0400 R xor A,KEY_CODE0 ;; Check Repeat key
314 00AB 390A SNZ z
315 00AC 28B4 JMP VALID_SEND_KEY
316 00AD ;;----------------------------
317 00AD VALID_RPSEND_KEY:
318 00AD
319 00AD 3800 R snz fg_Multi_key ;Check Multi-Key Clear KEY_CODE
320 00AE 28B1 JMP REPEAT_KEY
321 00AF
322 00AF 1F00 R clr KEY_CODE
323 00B0 0003 ret
324 00B1
325 00B1 REPEAT_KEY:
326 00B1 3000 R SET fg_REPEAT ;;SET Repeat Flag
327 00B2 28B3 jmp $+1
328 00B3 28BB JMP SET_VALIDFG
329 00B4
330 00B4 VALID_SEND_KEY:
331 00B4 0700 R mov a,KEY_CODE0 ;;Check Change Key
332 00B5 0CFF XOR A,0FFH ;;Check Debounce END
333 00B6 390A SNZ z
334 00B7 28BD JMP CHANG_KEY
335 00B8
336 00B8 ;;--- NEW KEY Initiate
337 00B8 3400 R CLR fg_REPEAT
338 00B9
339 00B9 0700 R mov a,KEY_CODE
340 00BA 0080 R mov KEY_CODE0,a
341 00BB
342 00BB ;;--- SET VALIDITY KEY
343 00BB SET_VALIDFG:
344 00BB 3000 R SET fg_SendActive
345 00BC
346 00BC 0003 ret
347 00BD
348 00BD CHANG_KEY:
349 00BD 1F00 R CLR KD_TEMP
350 00BE 28C0 JMP RKEY_PRO
351 00BF
352 00BF ;@----------------------------
353 00BF INVALID_KEY_CHK:
354 00BF 1F00 R CLR KD_TEMP
355 00C0
文件:PASSWORD CLOCK9.ASM 盛群编译器版本 2.86 页次7
356 00C0 RKEY_PRO: ;Release Key Confirm
357 00C0 1480 R INC NKD_TEMP
358 00C1 0700 R MOV A,NKD_TEMP
359 00C2 0C0D XOR A,13
360 00C3 390A SNZ z
361 00C4 2863 JMP SCAN_KEY_PROC
362 00C5
363 00C5 1580 R DEC NKD_TEMP ;
364 00C6
365 00C6 NO_KEY_PROC:
366 00C6 3400 R clr fg_SendActive
367 00C7 28C8 jmp $+1
368 00C8 28C9 jmp $+1
369 00C9 0000 NOP
370 00CA EXIT_INVALID_KEY:
371 00CA
372 00CA 0700 R mov a,KEY_CODE ;Clear KEY_CODE0
373 00CB 0080 R mov KEY_CODE0,a
374 00CC 28CD jmp $+1
375 00CD 0003 ret
376 00CE
377 00CE KEY_DEB: ;T1=455KHz/4=116480Hz = 8.79us
378 00CE ;Check Key Debounce
379 00CE 1480 R INC KD_TEMP
380 00CF 0700 R MOV A,KD_TEMP
381 00D0 0C10 XOR A,debounce_num
382 00D1 390A SNZ z
383 00D2 2863 JMP SCAN_KEY_PROC
384 00D3
385 00D3 0FFF MOV A,0FFH ;SAVE KEY Debounce Check END
386 00D4 0080 R MOV KEY_CODE0,A ;0FFH to a_PREV_KEY
387 00D5 2863 JMP SCAN_KEY_PROC
388 00D6
389 00D6 ;****************read personal clock******************
390 00D6 personal_code:
391 00D6 0700 R mov a,key_code
392 00D7 0080 mov r0, a
393 00D8 1481 inc mp0
394 00D9 1880 R rl release_num
395 00DA 0701 mov a,mp0
396 00DB 0E7F and a,7fh
397 00DC 0C00 R xor a,offset array_data+8
398 00DD 1085 sz acc
399 00DE 282A jmp main_proc
400 00DF read_code1:
401 00DF 0F7F mov a,07fh
402 00E0 0080 R mov release_num,a
403 00E1 0F08 mov a, 8
404 00E2 0080 R mov temp_num, a
405 00E3 0F00 mov a,0
406 00E4 00BE mov word_address, a
407 00E5 0F00 R mov a, offset array_data
408 00E6 0081 mov mp0, a
409 00E7 read_n1:
410 00E7 2203 call ht24_read
411 00E8 0700 mov a, r0
412 00E9 043C xor a, read_out
413 00EA 1085 sz acc
414 00EB 2AF7 jmp fail_out
415 00EC 1481 inc mp0
文件:PASSWORD CLOCK9.ASM 盛群编译器版本 2.86 页次8
416 00ED 14BE inc word_address
417 00EE 1780 R sdz temp_num
418 00EF 28E7 jmp read_n1
419 00F0 2B11 jmp ok_end
420 00F1 ;--------------------
421 00F1 chang_personal_proc:
422 00F1 0700 R mov a,key_code
423 00F2 0080 mov r0, a
424 00F3 1481 inc mp0
425 00F4 1880 R rl release_num
426 00F5 0701 mov a,mp0
427 00F6 0E7F and a,7fh
428 00F7 0C00 R xor a,offset array_data+8
429 00F8 1085 sz acc
430 00F9 282A jmp main_proc
431 00FA
432 00FA 0F7F mov a,07fh
433 00FB 0080 R mov release_num,a
434 00FC 0F08 mov a, 8
435 00FD 0080 R mov temp_num, a
436 00FE 0F00 mov a,0
437 00FF 00BE mov word_address, a
438 0100 0F00 R mov a, offset array_data
439 0101 0081 mov mp0, a
440 0102 personal_1:
441 0102 0700 mov a,r0
442 0103 00BD mov write_in,a
443 0104 2168 call ht24_write
444 0105 1481 inc mp0
445 0106 14BE inc word_address
446 0107 1780 R sdz temp_num
447 0108 2902 jmp personal_1
448 0109 3400 R clr flg_chang_key
449 010A 3400 R clr flg_chang_personal
450 010B 0F00 R mov a, offset array_data
451 010C 0081 mov mp0, a
452 010D 282A jmp main_proc
453 010E ;---------read manage clock----------------
454 010E manage_code:
455 010E 0700 R mov a,key_code
456 010F 0080 mov r0, a
457 0110 1481 inc mp0
458 0111 1880 R rl release_num
459 0112 0701 mov a,mp0
460 0113 0E7F and a,7fh
461 0114 0C00 R xor a,offset array_data+8
462 0115 1085 sz acc
463 0116 282A jmp main_proc
464 0117 read_code2:
465 0117 0F7F mov a,07fh
466 0118 0080 R mov release_num,a
467 0119 0F08 mov a, 8
468 011A 0080 R mov temp_num, a
469 011B 0F10 mov a,010h
470 011C 00BE mov word_address, a
471 011D 0F00 R mov a, offset array_data
472 011E 0081 mov mp0, a
473 011F read_n2:
474 011F 2203 call ht24_read
475 0120 0700 mov a, r0
文件:PASSWORD CLOCK9.ASM 盛群编译器版本 2.86 页次9
476 0121 043C xor a, read_out
477 0122 1085 sz acc
478 0123 2AF7 jmp fail_out
479 0124 1481 inc mp0
480 0125 14BE inc word_address
481 0126 ;call delay_5ms
482 0126 1780 R sdz temp_num
483 0127 291F jmp read_n2
484 0128 3400 R clr flg_chang_key
485 0129 0F00 R mov a, offset array_data
486 012A 0081 mov mp0, a
487 012B 282A jmp main_proc
488 012C
489 012C ;---------------------------------------------
490 012C chang_manage_proc:
491 012C 0700 R mov a,key_code
492 012D 0080 mov r0, a
493 012E 1481 inc mp0
494 012F 1880 R rl release_num
495 0130 0701 mov a,mp0
496 0131 0E7F and a,7fh
497 0132 0C00 R xor a,offset array_data+8
498 0133 1085 sz acc
499 0134 282A jmp main_proc
500 0135
501 0135 0F7F mov a,07fh
502 0136 0080 R mov release_num,a
503 0137 0F08 mov a, 8
504 0138 0080 R mov temp_num, a
505 0139 0F10 mov a,010h
506 013A 00BE mov word_address, a
507 013B 0F00 R mov a, offset array_data
508 013C 0081 mov mp0, a
509 013D manage_0:
510 013D 0700 mov a,r0
511 013E 00BD mov write_in,a
512 013F 2168 call ht24_write
513 0140 1481 inc mp0
514 0141 14BE inc word_address
515 0142 1780 R sdz temp_num
516 0143 293D jmp manage_0
517 0144 3400 R clr flg_chang_key
518 0145 3400 R clr flg_chang
519 0146 ;set flg_chang_key
520 0146 3400 R clr flg_chang_manage
521 0147 0F00 R mov a, offset array_data
522 0148 0081 mov mp0, a
523 0149 282A jmp main_proc
524 014A ;---------------------------------------------
525 014A release_proc:
526 014A 3800 R snz fg_repeat
527 014B 2953 jmp release_1
528 014C 2329 CALL delay30ms
529 014D 1480 R inc delay0
530 014E 0F0D mov a,13
531 014F 0400 R xor a,delay0
532 0150 1085 sz acc
533 0151 282A jmp main_proc
534 0152 2B09 jmp release_end
535 0153
文件:PASSWORD CLOCK9.ASM 盛群编译器版本 2.86 页次10
536 0153 release_1:
537 0153 3800 R snz release_num.0
538 0154 0F00 R mov a, offset array_data
539 0155 3800 R snz release_num.1
540 0156 0F00 R mov a, offset array_data+1
541 0157 3800 R snz release_num.2
542 0158 0F00 R mov a, offset array_data+2
543 0159 3800 R snz release_num.3
544 015A 0F00 R mov a, offset array_data+3
545 015B 3800 R snz release_num.4
546 015C 0F00 R mov a, offset array_data+4
547 015D 3800 R snz release_num.5
548 015E 0F00 R mov a, offset array_data+5
549 015F 3800 R snz release_num.6
550 0160 0F00 R mov a, offset array_data+6
551 0161 3800 R snz release_num.7
552 0162 0F00 R mov a, offset array_data+7
553 0163
554 0163 0081 mov mp0, a
555 0164 1F00 clr r0
556 0165 3400 R clr release_flg
557 0166 1980 R rr release_num
558 0167 282A jmp main_proc
559 0168 ;************************************************
560 0168 ht24_write:
561 0168 3014 set sda
562 0169 d_1
563 016D 3094 set scl
564 016E d_1
565 0172 3414 clr sda ;起始信号
566 0173
567 0173 3494 clr scl
568 0174 3014 set sda ;1
569 0175 d_1
570 0179 3094 set scl
571 017A d_1
572 017E
573 017E 3494 clr scl
574 017F 3414 clr sda ;0
575 0180 3094 set scl
576 0181 d_1
577 0185
578 0185 3494 clr scl
579 0186 3014 set sda ;1
580 0187 d_1
581 018B 3094 set scl
582 018C d_1
583 0190
584 0190 3494 clr scl
585 0191 3414 clr sda ;0
586 0192 3094 set scl
587 0193 d_1
588 0197
589 0197 3494 clr scl
590 0198 3414 clr sda ;a2,a1,a0=0
591 0199 3094 set scl
592 019A d_1
593 019E
594 019E 3494 clr scl
595 019F 3094 set scl
文件:PASSWORD CLOCK9.ASM 盛群编译器版本 2.86 页次11
596 01A0 d_1
597 01A4
598 01A4 3494 clr scl
599 01A5 3094 set scl
600 01A6 d_1
601 01AA
602 01AA 3494 clr scl
603 01AB 3414 clr sda ;0 write mode
604 01AC 3094 set scl
605 01AD d_1
606 01B1
607 01B1 3494 clr scl
608 01B2 3014 set sda ;1 for ack, 设为输入口,接收应答信号
609 01B3 d_1
610 01B7 3094 set scl ;read_modify_write
611 01B8 d_1
612 01BC
613 01BC skch:
614 01BC 3C14 sz sda ;应答信号
615 01BD 29BC jmp skch
616 01BE 3494 clr scl
617 01BF 0F08 mov a,08h
618 01C0 00BF mov data_8,a ;一个字节八位
619 01C1 write_address_in:
620 01C1 3414 clr sda
621 01C2 3FBE sz word_address.7
622 01C3 3014 set sda
623 01C4 d_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -