📄 voting.lst
字号:
F VOTING MODE
0223 452 COMMON:
453
454
0223 455 CHECKING:
0223 8645 456 MOV MEM,@R0
0225 7400 457 MOV A,#00h
0227 93 458 MOVC A,@A+DPTR
0228 B54506 459 CJNE A,MEM,INCORRECT
022B 08 460 INC R0
022C A3 461 INC DPTR
022D DBF4 462 DJNZ R3,CHECKING
022F 8008 463 JMP CORRECT
464
465
0231 466 INCORRECT:
0231 1203FD 467 LCALL EVM_LCD3 ;DISPLAYS "
WRONG PASSWORD"
0234 51AC 468 ACALL DELAY_5SEC
0236 0201E9 469 LJMP PASSWORDDETECT
470
471
472
0239 473 CORRECT:
0239 12042D 474 LCALL EVM_LCD4 ;DISPLAY "PASSWORD ACCE
A51 MACRO ASSEMBLER VOTING 04/12/2008 18:04:50 PAGE 9
PTED & PROCEED AHEAD"
475
476
023C 22 477 RET ;TO RETURN FROM PAS
SWORD DETECTION
478
023D 30313233 479 LIST1V: DB '0','1','2','3','4','5' ;PASSWORD OF VOTING MODE
0241 3435
0243 36373839 480 LIST1R: DB '6','7','8','9','A','B' ;PASSWORD OF RESULT MODE
0247 4142
481
482
483
484
485
486
487 ;*********PASSWORD DETECTION ENDS HERE****************
488
489
490
491
492
493
494
495
496
497
498
499
500 ;*************************HEX TO DECIMAL CONVERSION*******************************
0249 501 CONVERSION:
0249 7B00 502 MOV R3,#00D
024B 7C00 503 MOV R4,#00D
024D 7D00 504 MOV R5,#00D
024F 7E00 505 MOV R6,#00D
0251 7F00 506 MOV R7,#00D
507
0253 75F00A 508 MOV B,#10D
0256 EA 509 MOV A,R2
0257 84 510 DIV AB
0258 ABF0 511 MOV R3,B
025A 75F00A 512 MOV B,#10 ;R7,R6,R5,R4,R3
025D 84 513 DIV AB
025E ACF0 514 MOV R4,B
0260 FD 515 MOV R5,A
0261 B90002 516 CJNE R1,#0H,HIGH_BYTE ;CHECK FOR HIGH BYTE
0264 802C 517 SJMP ENDD
518
0266 519 HIGH_BYTE:
0266 7406 520 MOV A,#6
0268 2B 521 ADD A,R3
0269 75F00A 522 MOV B,#10
026C 84 523 DIV AB
026D ABF0 524 MOV R3,B
026F 2405 525 ADD A,#5
0271 2C 526 ADD A,R4
0272 75F00A 527 MOV B,#10
0275 84 528 DIV AB
0276 ACF0 529 MOV R4,B
0278 2402 530 ADD A,#2
027A 2D 531 ADD A,R5
027B 75F00A 532 MOV B,#10
027E 84 533 DIV AB
027F ADF0 534 MOV R5,B
0281 BE0002 535 CJNE R6,#00D,ADD_IT
A51 MACRO ASSEMBLER VOTING 04/12/2008 18:04:50 PAGE 10
0284 8001 536 SJMP CONTINUE
537
0286 538 ADD_IT:
0286 2E 539 ADD A,R6
540
0287 541 CONTINUE:
0287 FE 542 MOV R6,A
0288 D9DC 543 DJNZ R1,HIGH_BYTE
028A 75F00A 544 MOV B,#10D
028D EE 545 MOV A,R6
028E 84 546 DIV AB
028F AEF0 547 MOV R6,B
0291 FF 548 MOV R7,A
549
0292 550 ENDD:
0292 7430 551 MOV A,#30h
0294 2F 552 ADD A,R7
0295 F570 553 MOV DIG5,A
0297 7430 554 MOV A,#30h
0299 2E 555 ADD A,R6
029A F571 556 MOV DIG4,A
029C 7430 557 MOV A,#30h
029E 2D 558 ADD A,R5
029F F572 559 MOV DIG3,A
02A1 7430 560 MOV A,#30h
02A3 2C 561 ADD A,R4
02A4 F573 562 MOV DIG2,A
02A6 7430 563 MOV A,#30h
02A8 2B 564 ADD A,R3
02A9 F574 565 MOV DIG1,A
02AB 22 566 RET ;TO RETURN
FROM HEX TO BCD CONVERSION
567
568
569 ;***********HEX TO BCD CONVERSION ENDS HERE******************
570
571
572
573
574
575
576
577 ;****************************** 5 SEC DELAY ROUTINE*************************
578
02AC 579 DELAY_5SEC:
580
02AC 7905 581 MOV R1,#05h
02AE 7AFF 582 AGAIN2:MOV R2,#0FFh
02B0 7FFF 583 AGAIN1:MOV R7,#0FFh
02B2 DFFE 584 DJNZ R7,$
02B4 DAFA 585 DJNZ R2,AGAIN1
02B6 D9F6 586 DJNZ R1, AGAIN2
02B8 22 587 RET
588
589 ;*********DELAY_5SEC ENDS HERE*****************
590
591
592
593
594
595
596
597
598 ;*************************KEYDETECTION MODULE*************************
02B9 599 KEYDETECTION:
02B9 C2A4 600 CLR RW1 ;configuring rows
A51 MACRO ASSEMBLER VOTING 04/12/2008 18:04:50 PAGE 11
for o/p
02BB C2A5 601 CLR RW2
02BD C2A6 602 CLR RW3
02BF C2A7 603 CLR RW4
02C1 D2B4 604 SETB CL1 ;configuring colu
mns for i/p
02C3 D2B5 605 SETB CL2
02C5 D2B6 606 SETB CL3
02C7 D2B7 607 SETB CL4
02C9 608 RELEASE: ;TO CHECK WHETHER THE KEY IS STILL PRESSE
D OR RELEASED
02C9 C2A4 609 CLR RW1
02CB C2A5 610 CLR RW2
02CD C2A6 611 CLR RW3
02CF C2A7 612 CLR RW4
02D1 30B4F5 613 JNB CL1, RELEASE
02D4 30B5F2 614 JNB CL2, RELEASE
02D7 30B6EF 615 JNB CL3, RELEASE
02DA 30B7EC 616 JNB CL4, RELEASE
02DD 41DF 617 AJMP STARTING
618
02DF 619 STARTING: ;TO CHECK WHETHER A KEY IS PRESSED
02DF 7190 620 ACALL DELAY
02E1 30B40B 621 JNB CL1, DEBOUNCE
02E4 30B508 622 JNB CL2, DEBOUNCE
02E7 30B605 623 JNB CL3, DEBOUNCE
02EA 30B702 624 JNB CL4, DEBOUNCE
02ED 80F0 625 JMP STARTING
626
02EF 627 DEBOUNCE: ;TO CHECK WHETHER KEY IS ACTUALLY PRESSED
& IT IS NOT DEBOUNCE
02EF 7190 628 ACALL DELAY
02F1 30B40B 629 JNB CL1, OVER
02F4 30B508 630 JNB CL2, OVER
02F7 30B605 631 JNB CL3, OVER
02FA 30B702 632 JNB CL4, OVER
02FD 80E0 633 JMP STARTING
634
02FF 635 OVER:
02FF C2A4 636 CLR RW1
0301 D2A5 637 SETB RW2
0303 D2A6 638 SETB RW3
0305 D2A7 639 SETB RW4
0307 30B445 640 JNB CL1, ROW1
030A 30B542 641 JNB CL2, ROW1
030D 30B63F 642 JNB CL3, ROW1
0310 30B73C 643 JNB CL4, ROW1
0313 D2A4 644 SETB RW1
0315 C2A5 645 CLR RW2
0317 D2A6 646 SETB RW3
0319 D2A7 647 SETB RW4
031B 30B436 648 JNB CL1, ROW2
031E 30B533 649 JNB CL2, ROW2
0321 30B630 650 JNB CL3, ROW2
0324 30B72D 651 JNB CL4, ROW2
0327 D2A4 652 SETB RW1
0329 D2A5 653 SETB RW2
032B C2A6 654 CLR RW3
032D D2A7 655 SETB RW4
032F 30B427 656 JNB CL1, ROW3
0332 30B524 657 JNB CL2, ROW3
0335 30B621 658 JNB CL3, ROW3
0338 30B71E 659 JNB CL4, ROW3
033B D2A4 660 SETB RW1
033D D2A5 661 SETB RW2
033F D2A6 662 SETB RW3
A51 MACRO ASSEMBLER VOTING 04/12/2008 18:04:50 PAGE 12
0341 C2A7 663 CLR RW4
0343 30B418 664 JNB CL1, ROW4
0346 30B515 665 JNB CL2, ROW4
0349 30B612 666 JNB CL3, ROW4
034C 30B70F 667 JNB CL4, ROW4
668
034F 669 ROW1:
034F 900380 670 MOV DPTR, #KCODE1
0352 800F 671 SJMP FIND
672
0354 673 ROW2:
0354 900384 674 MOV DPTR, #KCODE2
0357 800A 675 SJMP FIND
0359 676 ROW3:
0359 900388 677 MOV DPTR, #KCODE3
035C 8005 678 SJMP FIND
035E 679 ROW4:
035E 90038C 680 MOV DPTR, #KCODE4
0361 8000 681 SJMP FIND
682
0363 683 FIND:
0363 20B402 684 JB CL1, N1
0366 8015 685 JMP MATCH
686
0368 687 N1:
0368 A3 688 INC DPTR
0369 20B502 689 JB CL2, N2
036C 800F 690 JMP MATCH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -