⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 voting.lst

📁 8051单片机 a51 投票器 带控制端 含原理图
💻 LST
📖 第 1 页 / 共 5 页
字号:
                             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 + -