📄 finalbu.lst
字号:
A51 MACRO ASSEMBLER FINALBU 04/12/2008 18:00:02 PAGE 1
MACRO ASSEMBLER A51 V8.01
OBJECT MODULE PLACED IN FINALBU.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE FINALBU.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00A0 1 CANPAN EQU P2 ; (I/P CONFIG) INTERFACED WITH CANDIDATE PANEL
0090 2 VOTCAST EQU P1 ;(O/P CONFIG) INTERFACED WITH VOTE CAST LED PANEL
0080 3 OPT2CU EQU P0 ; FOR TRANSFERRING CODE TO CU
00B4 4 SIGNAL1 EQU P3.4 ;(I/P CONFIG)IF THIS PIN BEKMS LOW DAT MEANS, CU HAS SIGNALLED TO GLOW MAC
HINE RDY LED
00B5 5 SIGNAL2 EQU P3.5 ;(I/P CONFIG)IF THIS PIN BEKMS LOW DAT MEANS, CU HAS COUNTED D VOTEN BU SH
UD GLOW "VOTE CASTED" LED
00B6 6 BUZZER EQU P3.6 ;(O/P CONFIG)INTERFACING BUZZER
00B7 7 RDYLED EQU P3.7 ;(O/P CONFIG)INTERFACING MACHINE READY LED
0032 8 CCODE EQU 32h ; MEMORY LOCATION TO STORE THE APP. CODE VALUE OF CANDIDATE WHO IS VOTED F
OR
9
0000 10 ORG 0000h
0000 020030 11 LJMP MAIN
12
0030 13 ORG 0030h
0030 14 MAIN:
15
0030 16 BUINIT:
0030 D2B6 17 SETB BUZZER
0032 D2B4 18 SETB SIGNAL1 ;CONFIGURNG SIGNAL1 TO BE I/P
0034 20B4FD 19 JB SIGNAL1,$ ;WAIT TILL CU SENDS A SIGNAL TO GLOW MACHI
NE READY LED
0037 C2B7 20 CLR RDYLED ;GLOW MACHINE READY LED
0039 1168 21 ACALL PANELSCAN
003B D2B7 22 SETB RDYLED ;TURN OFF MACHINE READY LED
23
24
003D 25 WAITING:
003D D2B5 26 SETB SIGNAL2 ;CONFIGURNG SIGNAL2 TO BE I/P
003F 7590FF 27 MOV VOTCAST,#0FFh ;CONFIGURING THE VOTCAST PORT TO B O/P PORT
0042 20B5FD 28 JB SIGNAL2,$ ;WAIT TILL CU SEND A SIGNAL TO GLOW VOTE CAST LED
0045 E532 29 MOV A, CCODE
0047 B4FF03 30 CJNE A,#0FFh,VOTECASTED ;IF CONTENT OF A IS NOT 0FFh, IT MEANS CORRECT CODE WA
S DETECTED, HENCE VOTECAST LED SHUD GLOW
31 ;AND BUZZER SHUD RING SO JUMP TO 'VOTECASTED'MODULE
004A 020030 32 LJMP BUINIT ;OTHERWISE JUMP TO BUINIT
33
004D 34 VOTECASTED:
004D F590 35 MOV VOTCAST,A ;VOTE CAST LED IS CONNECTED TO VOTCAST PORT
004F C2B6 36 CLR BUZZER
0051 115B 37 ACALL DELAY_5SEC
0053 D2B6 38 SETB BUZZER
0055 7590FF 39 MOV VOTCAST,#0FFh
0058 020030 40 LJMP BUINIT
41
42
43
44
45
46 ;******5 SECOND DELAY ROUTINE********
005B 47 DELAY_5SEC:
005B 7905 48 MOV R1,#05h
005D 7AFF 49 AGAIN2:MOV R2,#0FFh
005F 7FFF 50 AGAIN1:MOV R7,#0FFh
0061 DFFE 51 DJNZ R7,$
0063 DAFA 52 DJNZ R2,AGAIN1
A51 MACRO ASSEMBLER FINALBU 04/12/2008 18:00:02 PAGE 2
0065 D9F6 53 DJNZ R1,AGAIN2
0067 22 54 RET ;*******TO RETURN FROM DELAY_5SEC R
OUTINE*******
55
56
57
58
59
60
61 ;*****SCANNER ROUTINE TO DETECT THE SWITCH PRESSED FROM THE CANDIDATE PANEL******
0068 62 PANELSCAN:
63
0068 64 LABEL1:
0068 75A0FF 65 MOV CANPAN,#0FFh ;CONFIGURING THE CANPAN PORT TO B I/P PORT
006B 7580FF 66 MOV OPT2CU,#0FFh ;CONFIGURING THE OPT2CU PORT TO B O/P PORT
67
006E 68 LABEL2:
006E E5A0 69 MOV A,CANPAN ;READING THE VALUE FROM THE CANDIDATE PANEL
0070 F532 70 MOV CCODE, A
0072 7C00 71 MOV R4,#0h ;VALUE IN R4 REFLECTS NO. OF ZEROS IN A's C
ONTENTS
72 ;THAT IS HOW MANY SWITCHES ARE PRESSED SIMU
LTANEOUSLY
0074 7D08 73 MOV R5,#8h ;VALUE '8' MEANS THAT ALL 8 BITS OF 'A' ARE
UNCHECKED RITENOW, AS THEY ARE CHECKED ONE BY ONE, R5 IS DECREMENTED
0076 D3 74 SETB C
0077 B4FF02 75 CJNE A,#0FFh,LABEL3 ;IF A IS STILL EQUAL TO #0FFh, DAT MEANS NO BUTTON
007A 80F2 76 JMP LABEL2 ;HAS BEEN PRESSED, SO READ D VALUE OF CANPAN AGAIN
77
007C 78 LABEL3:
007C FB 79 MOV R3,A ;SAVE CURRENT VALUE OF A IN R3
007D ED 80 MOV A,R5 ;IF R5==0, JUMP TO FIN LABEL BCOS WHEN R5 B
KUMS '0', IT MEANS ALL BITS OF 'A' HAV BEEN CHECKED
007E 600B 81 JZ FIN
0080 EB 82 MOV A,R3
0081 13 83 RRC A ;TO CHECK ACCUMULATOR CONTENTS BITW
ISE
0082 5003 84 JNC INCRM ;IF BIT IS LOW THEN INCRM R4
0084 1D 85 DEC R5 ;R5 IS DECREMENED AFTER A BIT OF 'A
' HAS BEEN CHECKED FOR IF ITS '0' OR '1'
0085 80F5 86 JMP LABEL3
87
0087 88 INCRM:
0087 0C 89 INC R4 ;R4 IS INCREMENTED WENEVER A ZERO I
S ENCOUNTERED IN A's CONTENTS
0088 1D 90 DEC R5 ;R5 IS DECREMENED AFTER A BIT OF 'A
' HAS BEEN CHECKED FOR IF ITS '0' OR '1'
0089 80F1 91 JMP LABEL3
92
008B 93 FIN:
008B BC010F 94 CJNE R4,#01h,LABEL7 ;IF R4==1, IT MEANS ONLY ONE '0' IS ENCOUNTERED
95 ;ie ONLY ONE BUTTON IS PRESSED
008E E532 96 MOV A,CCODE ;HENCE MOVE ORIGINAL VALUE OF 'A' WHICH WAS STORED
IN 'CCODE', AGAIN INTO 'A'
0090 7E00 97 MOV R6, #00h
98
0092 99 LABEL5:
0092 13 100 RRC A ;TO GENRATE CODE(4-BIT)FOR THE CANDIDATE WHO IS VOT
ED FOR
0093 0E 101 INC R6 ;CODE INITIALLY IS STORED IN R6
0094 5002 102 JNC LABEL6
0096 40FA 103 JC LABEL5
104
0098 105 LABEL6:
0098 EE 106 MOV A,R6 ;HIGHER NIBBLE PINS OF PORT# ARE ASSUMED TO BE ACTI
VE HIGH
A51 MACRO ASSEMBLER FINALBU 04/12/2008 18:00:02 PAGE 3
0099 F580 107 MOV OPT2CU, A ;4- BIT CODE IS SEND TO CU THROUGH PORT #(OPT2CU)
009B 8009 108 JMP ENDING
109
110 ;IF R4 IS NOT EQUAL TO 1, IT MEANS THERE ARE MORE THAN ONE '0'IN A's CONTENTS,
111 ;ie MORE THAN ONE SWITCH IS PRESSED ON THE CANDIDATE PANEL
112
113
009D 114 LABEL7:
009D 7532FF 115 MOV CCODE,#0FFh ;FFh IS SAVED AT CCODE BCOS FOR GLOWING VOT
CAST LED, CONTENTS OF CCODE IS COPIED IN'A',
116 ;AND SENT TO LED PANEL, BUT NO LED SHUD GLOW IN CAS
E VAGUE CODE IS DETECTED
117 ;HENCE FFh WEN SENT TO LED PANEL WONT GLOW ANY LED.
118
00A0 7409 119 MOV A,#09h
00A2 F580 120 MOV OPT2CU, A
00A4 8000 121 JMP ENDING
122
00A6 123 ENDING:
00A6 00 124 NOP
00A7 00 125 NOP
00A8 00 126 NOP
00A9 00 127 NOP
00AA 75A0FF 128 MOV CANPAN,#0FFh
00AD 7580FF 129 MOV OPT2CU,#0FFh
130
00B0 22 131 RET ;*****TO RETURN FRM PANELSC
AN ROUTINE******
132
133
134
135 END
A51 MACRO ASSEMBLER FINALBU 04/12/2008 18:00:02 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
AGAIN1 . . . . . . C ADDR 005FH A
AGAIN2 . . . . . . C ADDR 005DH A
BUINIT . . . . . . C ADDR 0030H A
BUZZER . . . . . . B ADDR 00B0H.6 A
CANPAN . . . . . . D ADDR 00A0H A
CCODE. . . . . . . N NUMB 0032H A
DELAY_5SEC . . . . C ADDR 005BH A
ENDING . . . . . . C ADDR 00A6H A
FIN. . . . . . . . C ADDR 008BH A
INCRM. . . . . . . C ADDR 0087H A
LABEL1 . . . . . . C ADDR 0068H A
LABEL2 . . . . . . C ADDR 006EH A
LABEL3 . . . . . . C ADDR 007CH A
LABEL5 . . . . . . C ADDR 0092H A
LABEL6 . . . . . . C ADDR 0098H A
LABEL7 . . . . . . C ADDR 009DH A
MAIN . . . . . . . C ADDR 0030H A
OPT2CU . . . . . . D ADDR 0080H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PANELSCAN. . . . . C ADDR 0068H A
RDYLED . . . . . . B ADDR 00B0H.7 A
SIGNAL1. . . . . . B ADDR 00B0H.4 A
SIGNAL2. . . . . . B ADDR 00B0H.5 A
VOTCAST. . . . . . D ADDR 0090H A
VOTECASTED . . . . C ADDR 004DH A
WAITING. . . . . . C ADDR 003DH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -