You are on page 1of 4

1 RS EQU P3.

7
2 RW EQU P3.6
3 E EQU P3.5
4 SEL EQU 41H
5
6 ORG 000H
7 CLR P0.0
8 MOV TMOD,#00100001B
9 MOV TH1,#253D
10 MOV SCON,#50H
11 SETB TR1
12 ACALL LCD_INIT
13 MOV DPTR,#TEXT1
14 ACALL LCD_OUT
15 ACALL LINE2
16 MOV DPTR,#TEXT2
17 ACALL LCD_OUT
18
19 MAIN:ACALL LCD_INIT
20 MOV DPTR,#TEXT1
21 ACALL LCD_OUT
22 ACALL LINE2
23 MOV DPTR,#TEXT2
24 CLR P0.0
25 ACALL LCD_OUT
26 ACALL DELAY1
27 ACALL DELAY1
28 ACALL READ_KEYPRESS
29 ACALL LINE1
30 MOV DPTR,#CHKMSG
31 ACALL LCD_OUT
32 ACALL DELAY1
33 ACALL CHECK_PASSWORD
34 SJMP MAIN
35
36 LCD_INIT: MOV DPTR,#INIT_COMMANDS
37 SETB SEL
38 ACALL LCD_OUT
39 CLR SEL
40 RET
41
42 LCD_OUT: CLR A
43 MOVC A,@A+DPTR
44 JZ EXIT
45 INC DPTR
46 JB SEL,CMD
47 ACALL DATA_WRITE
48 SJMP LCD_OUT
49 CMD: ACALL CMD_WRITE
50 SJMP LCD_OUT
51 EXIT: RET
52
53 LINE2: MOV A,#0C0H
54 ACALL CMD_WRITE
55 RET
56
57 LINE1: MOV A,#80H
58 ACALL CMD_WRITE
59 RET
60
61 CLRSCR: MOV A,#01H
62 ACALL CMD_WRITE
63 RET
64
65 CMD_WRITE: MOV P2,A
66 CLR RS
67 CLR RW
68 SETB E
69 CLR E
70 ACALL DELAY
71 RET
72

Page 1
73 DATA_WRITE: MOV P2,A
74 SETB RS
75 CLR RW
76 SETB E
77 CLR E
78 ACALL DELAY
79 RET
80
81 DELAY:CLR E
82 CLR RS
83 SETB RW
84 MOV P2,#0FFh
85 SETB E
86 MOV A,P2
87 JB P2.7,DELAY
88 CLR E
89 CLR RW
90 RET
91
92 DELAY1:MOV R3,#46D
93 BACK: MOV TH0,#00000000B
94 MOV TL0,#00000000B
95 SETB TR0
96 HERE1: JNB TF0,HERE1
97 CLR TR0
98 CLR TF0
99 DJNZ R3,BACK
100 RET
101
102 DELAY2: MOV R3,#250D
103 BACK2: MOV TH0,#0FCH
104 MOV TL0,#018H
105 SETB TR0
106 HERE2: JNB TF0,HERE2
107 CLR TR0
108 CLR TF0
109 DJNZ R3,BACK2
110 RET
111
112 READ_KEYPRESS: ACALL CLRSCR
113 ACALL LINE1
114 MOV DPTR,#IPMSG
115 ACALL LCD_OUT
116 ACALL LINE2
117 MOV R0,#5D
118 MOV R1,#160D
119
120 READ_STORE: CLR A
121 ACALL KEY_SCAN
122 MOV @R1,A
123 ACALL DATA_WRITE
124 ACALL DELAY2
125 INC R1
126 DJNZ R0,READ_STORE
127 RET
128
129 CHECK_PASSWORD: MOV R0,#5D
130 MOV R1,#160D
131 MOV DPTR,#PASSW
132 RPT:CLR A
133 MOVC A,@A+DPTR
134 XRL A,@R1
135 JNZ FAIL
136 INC R1
137 INC DPTR
138 DJNZ R0,RPT
139 ACALL CLRSCR
140 ACALL LINE1
141 MOV DPTR,#TEXT_S1
142 ACALL LCD_OUT
143 ACALL LINE2
144 ACALL DELAY1

Page 2
145 SETB P0.0
146 MOV DPTR,#TEXT_S2
147 ACALL LCD_OUT
148 ACALL DELAY1
149 SJMP GOBACK
150 FAIL: ACALL CLRSCR
151 ACALL LINE1
152 MOV DPTR,#TEXT_F1
153 ACALL LCD_OUT
154 ACALL DELAY1
155 ACALL LINE2
156 MOV DPTR,#TEXT_F2
157 ACALL LCD_OUT
158 ACALL DELAY1
159 GOBACK:RET
160
161 KEY_SCAN: MOV P1,#11111111B
162 CLR P1.0
163 JB P1.4, NEXT1
164 WAIT1: JNB P1.4,WAIT1
165 MOV A,#49D
166 RET
167
168 NEXT1:JB P1.5,NEXT2
169 WAIT2: JNB P1.5,WAIT2
170 MOV A,#50D
171 RET
172
173 NEXT2: JB P1.6,NEXT3
174 WAIT3: JNB P1.6,WAIT3
175 MOV A,#51D
176 RET
177
178 NEXT3: JB P1.7,NEXT4
179 WAIT4: JNB P1.7,WAIT4
180 MOV A,#65D
181 RET
182
183 NEXT4:SETB P1.0
184 CLR P1.1
185 JB P1.4, NEXT5
186 WAIT5: JNB P1.4,WAIT5
187 MOV A,#52D
188 RET
189
190 NEXT5:JB P1.5,NEXT6
191 WAIT6: JNB P1.5, WAIT6
192 MOV A,#53D
193 RET
194
195 NEXT6: JB P1.6,NEXT7
196 WAIT7: JNB P1.6, WAIT7
197 MOV A,#54D
198 RET
199
200 NEXT7: JB P1.7,NEXT8
201 WAIT8: JNB P1.7, WAIT8
202 MOV A,#66D
203 RET
204
205 NEXT8:SETB P1.1
206 CLR P1.2
207 JB P1.4, NEXT9
208 WAIT9: JNB P1.4, WAIT9
209 MOV A,#55D
210 RET
211
212 NEXT9:JB P1.5,NEXT10
213 WAIT10: JNB P1.5, WAIT10
214 MOV A,#56D
215 RET
216

Page 3
217 NEXT10: JB P1.6,NEXT11
218 WAIT11: JNB P1.6, WAIT11
219 MOV A,#57D
220 RET
221
222 NEXT11: JB P1.7,NEXT12
223 WAIT12: JNB P1.7, WAIT12
224 MOV A,#67D
225 RET
226
227 NEXT12:SETB P1.2
228 CLR P1.3
229 JB P1.4, NEXT13
230 WAIT13: JNB P1.4, WAIT13
231 MOV A,#42D
232 RET
233
234 NEXT13:JB P1.5,NEXT14
235 WAIT14: JNB P1.5, WAIT14
236 MOV A,#48D
237 RET
238
239 NEXT14: JB P1.6,NEXT15
240 WAIT15: JNB P1.6, WAIT15
241 MOV A,#35D
242 RET
243
244 NEXT15: JB P1.7,NEXT16
245 WAIT16: JNB P1.7, WAIT16
246 MOV A,#68D
247 RET
248
249 NEXT16:LJMP KEY_SCAN
250
251 INIT_COMMANDS: DB 0CH,01H,06H,80H,3CH,0
252
253 TEXT1: DB "PASSWORD BASED",0
254 TEXT2: DB "SECURITY SYSTEM",0
255 IPMSG: DB "INPUT 5 DIGITS",0
256 CHKMSG: DB "CHECKING PIN ",0
257 TEXT_S1: DB "ACCESS - GRANTED",0
258 TEXT_S2: DB "DOOR OPENED",0
259 TEXT_F1: DB "WRONG PASSWORD",0
260 TEXT_F2: DB "ACCESS DENIED",0
261 PASSW: DB '1','2','3','4','5',0
262 END
263

Page 4

You might also like