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