📄 lcd.lst
字号:
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NOARE
-GS DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "reg58.h"
2 #include "intrins.h"
3
4 #define _LCD_C_
5 #include "lcd.h"
6 #include "define.h"
7 #include "timer.h"
8 #include "bus.h"
9 #include "sram.h"
10 #include "system.h"
11 #include "clock.h"
12 #include "setup.h"
13 #include "keypad.h"
14
15
16 unsigned char idata dispbuff[2][16];
17
18 unsigned char code dispmessage[][16]=
19 {
20 {"Finger_000 [F1]"},
21 {" Input Password "},
22 {"Put your finger "},
23 {"Master Password:"},
24 {" Mode selection "},
25 {"ID ONLY "},
26 {"ID+FINGER(P/W) "},
27 {"ID+P/W+FINGER "},
28 {" TIME SETTING "},
29 {"YYYYMMDDhhmmssW "},
30 {"TYPE SELECTION "},
31 {" APB SETUP "},
32 {"COMM ID SETTING "},
33 {"DURESS MODE SET "},
34 {"SET DURESS P/W "},
35 {"BAUD RATE SETUP "},
36 {"4800 "},
37 {"9600 "},
38 {"19200 "},
39 {"38400 "},
40 {" EVENT CLEAR "},
41 {"1 - YES, 0 - NO "},
42 {"MASTER ID CHANGE"},
43 {" SYS INITIALIZE "},
44 {" ID CLEAR "},
45 {"TIME SCHE CLEAR "},
46 {" TIME SCHEDULE "},
47 {"T/S : 01 HOL 1"},
48 {" HOLIDAY DEFINE "},
49 {"HOL TS:01 #01 "},
50 {" IN/OUT DEFINE "},
51 {"1. Exit Button "},
52 {"2. Door Contact "},
53 {"3. AUX1 "},
54 {"4. AUX2 "},
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 2
55 {"5. Tamper S/W "},
56 {"6. R1 ID OK "},
57 {"7. R1 ID Error "},
58 {"8. R1 T/S Error "},
59 {"9. R1 APB Error "},
60 {"10. R2 ID OK "},
61 {"11. R2 ID Error "},
62 {"12. R2 T/S Error"},
63 {"13. R2 APB Error"},
64 {"14. DURESS MODE "},
65 {"15. Output T/S "},
66 {"16. IN/OUT T/S "},
67 {" HOLIDAY INDEX "},
68 {"T/S Index : "},
69 {"H/D Index : "},
70 {" MODE INDEX "},
71 {" LCD DISPLAY "},
72 {"STATUS "},
73 {"CARD NO "},
74 {" OUTPUT TIME "},
75 {"0.1 SEC "},
76 {"1 SEC "},
77 {"ID REGISTRATION "},
78 {" Key Input ID "},
79 {" -> ________ "},
80 {"PW____TS__RD_FP_"},
81 {"TO REGISTER FP "},
82 {"PUT YOUR FP ON: "},
83 {"LIFT AND PUT FP "},
84 {"WAITTING... "},
85 {"ID REGISTERED! "},
86 {" ID DELETE "},
87 {" Enter Card No. "},
88 {" ID DELETEED "},
89 {" ID LIST "},
90 {" ID LIST TOP "},
91 {" ID LIST BOTTOM "},
92 {" ID COUNT "},
93 {" EVENT COUNT "},
94 {" F/W version "},
95 {" V00.00 "},
96 {" OUTPUT TEST "},
97 {" LCD TEST "},
98 {" READER TEST "},
99 {" INPUT TEST "},
100 {" COMM TEST "},
101 {" "},
102 {"USE "},
103 {"NOT USE "},
104 {" RAM TEST "},
105 {" KEYPAD TEST "},
106 {" [____] "},
107 {" INPUT ID "},
108 {"ENABLE "},
109 {"DISABLE "},
110 {" SET PIN KEY IN "},
111 {"TS : HOL "},
112 {" : - : "},
113 {"HOL : # "},
114 {" / : : "},
115 {"BANK = "},
116 {" RAM TESTING... "},
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 3
117 {"RAM test PASS!!!"},
118 {"RAM test FAIL!!!"},
119 {"Press any key..."},
120 {" OUTPUT "},
121 {" ON "},
122 {" OFF "},
123 {" Registed ID! "},
124 {" Unregisted ID! "},
125 {"USER SPACE EMPTY"},
126 {"SYS INITIALED! "},
127 {"Input New Master"},
128 {" [________] "},
129 {" Master ID! "},
130 {" FIM SELECT "},
131 {"LIFT & PUT AGAIN"},
132 {"USER SPACE FULL!"},
133 {"ID REGISTER FAIL"},
134 {" ACCESS GRANTED "},
135 {" ACCESS DENIED "},
136 {" ANTI PASS BACK "},
137 {"TIME SCHE ERROR "},
138 {" PASSWORD ERROR "},
139 {" FP ERROR "},
140 {"PUT OLDMaster FP"},
141 {"MASTER CHANGE OK"},
142 {" CHANGE FAILED "},
143 {" MASTER ID == 0 "},
144 {"0123456789ABCDEF"},
145 {"INITIALIZING...."},
146 {" READER 1 "},
147 {" READER 2 "},
148 {" SCANNING...... "},
149 {"ACCESS DOOR ERR "},
150 {" CLEANING ... "},
151 {" COMM TEST PASS "},
152 {" COMM TEST FAIL "},
153 {" COMM TESTING.. "},
154 {" REMOVE WIRES "},
155 {"FP ONLY "}
156
157
158
159
160
161
162 };
163 void lcdsetrs()
164 {
165 1 DATAPORT=2;
166 1 SEL573L=1;
167 1 _nop_();
168 1 SEL573L=0;
169 1 }
170
171 void lcdclrrs()
172 {
173 1 DATAPORT=0;
174 1 SEL573L=1;
175 1 _nop_();
176 1 SEL573L=0;
177 1 }
178
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 4
179 void write_command(unsigned char cmd)
180 {
181 1 lcdclrrs();
182 1
183 1 //LCDRS=0;
184 1 //LCDRW=0;
185 1
186 1
187 1 LCDDATA=cmd;
188 1 LCDEN=1;
189 1 _nop_();
190 1 LCDEN=0;
191 1 }
192
193 void write_data(unsigned char lcddata)
194 {
195 1 //LCDRS=1;
196 1 //LCDRW=0;
197 1 lcdsetrs();
198 1
199 1 LCDDATA=lcddata;
200 1 LCDEN=1;
201 1 _nop_();
202 1 LCDEN=0;
203 1 }
204 /////////////////////////////////////////////////////////////////////
205
206 ////////////////////////////////////////////////////////////////////////
207 void displaybyte(unsigned char dispdata,unsigned char dispposi)
208 {
209 1 write_command(dispposi);
210 1 delay50us();
211 1 //delay50us();
212 1 write_data(dispdata);
213 1 delay50us();
214 1 }
215 ////////////////////////////////////////////////////////////////////////
216 void display(unsigned char line)
217 {
218 1 unsigned char i;
219 1 if(line==LINE1)
220 1 {
221 2 write_command(SET_DDRAM_ADD);
222 2 delay50us();
223 2 for(i=0;i<16;i++)
224 2 {
225 3 write_data(dispbuff[0][i]);
226 3 delay50us();
227 3 }
228 2 }
229 1 else
230 1 {
231 2 write_command(SET_DDRAM_ADD+0X40);
232 2 delay50us();
233 2 for(i=0;i<16;i++)
234 2 {
235 3 write_data(dispbuff[1][i]);
236 3 delay50us();
237 3 }
238 2 }
239 1 }
240 void displaymessage(unsigned char lmess,unsigned char line)
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 5
241 {
242 1 //buffcopy(dispmessage[lmess],dispbuff[line],16);
243 1 unsigned char i;
244 1 for(i=0;i<16;i++)
245 1 {
246 2 dispbuff[line][i]=dispmessage[lmess][i];
247 2 }
248 1 //code2disp(dispmessage[lmess],line);
249 1 //code2idata(dispmessage[lmess],dispbuff[line],16);
250 1 display(line);
251 1
252 1 }
253 void displayMain()
254 {
255 1 unsigned char i;
256 1 for(i=0;i<16;i++)
257 1 {
258 2 dispbuff[LINE1][i]=dispmessage[LMMAIN][i];
259 2 }
260 1
261 1 dispbuff[LINE1][14]=readFunctions()+'1';
262 1 display(LINE1);
263 1 }
264 //////////////////////////////////////////////////////////////////////////////////
265
266 void displaytimeee()
267 {
268 1 dispbuff[1][0]=' ';
269 1
270 1 dispbuff[1][1]=datetime[DTMON]/10+0X30;
271 1 dispbuff[1][2]=datetime[DTMON]%10+0X30;
272 1
273 1 dispbuff[1][3]='/';
274 1
275 1 dispbuff[1][4]=datetime[DTDAY]/10+0X30;
276 1 dispbuff[1][5]=datetime[DTDAY]%10+0X30;
277 1
278 1 dispbuff[1][6]=' ';
279 1
280 1 dispbuff[1][7]=datetime[DTHUR]/10+0X30;
281 1 dispbuff[1][8]=datetime[DTHUR]%10+0X30;
282 1
283 1 dispbuff[1][9]=':';
284 1
285 1 dispbuff[1][10]=datetime[DTMIN]/10+0X30;
286 1 dispbuff[1][11]=datetime[DTMIN]%10+0X30;
287 1
288 1 dispbuff[1][12]=':';
289 1
290 1 dispbuff[1][13]=datetime[DTSEC]/10+0X30;
291 1 dispbuff[1][14]=datetime[DTSEC]%10+0X30;
292 1
293 1 dispbuff[1][15]=' ';
294 1
295 1 display(LINE2);
296 1 }
297 void displaytime()
298 {
299 1 //getdatetime(tempbuff);
300 1 if(setflag)return;
301 1 if(passinflag)return;
302 1 displaytimeee();
C51 COMPILER V7.01 LCD 03/08/2007 12:09:35 PAGE 6
303 1
304 1 }
305 void init_lcd()
306 {
307 1 LCDEN=0;
308 1 write_command(CLR_DISP);
309 1 delayTimerl(T5MS);
310 1 write_command(DISP_B8_L2_H7);
311 1 delayTimerl(T5MS);
312 1 write_command(CUR_INC);
313 1 delayTimerl(T5MS);
314 1 write_command(DISP_ON_CUR_B);
315 1 delayTimerl(T5MS);
316 1 write_command(CLR_DISP);
317 1 delayTimerl(T5MS);
318 1
319 1 write_command(DISP_B8_L2_H7);
320 1 delayTimerl(T5MS);
321 1
322 1 //write_command(CUR_BACK);
323 1 //delay(T5MS);
324 1 //delay(T5MS);
325 1 //write_command(DISP_B8_L2_H7);
326 1 //delay(T5MS);
327 1 //displaymessage(0,0);
328 1 displayMain();
329 1
330 1
331 1 }
332 //////////////////////////////////////////////////////////////////
333 void lcdcuron(unsigned char position,unsigned char line)
334 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -