📄 lcd.lst
字号:
208
209 void Disp8X8(unsigned char pag,unsigned char col, unsigned char code *DispData)
210 {
211 1 unsigned char j=0,i=0;
212 1 //for(j=0;j<2;j++)
213 1 if( Flag )
214 1 {
215 2 //LCDWriteCommand(PageAdd+pag+j);
216 2 LCDWriteCommand(PageAdd+pag);
217 2 LCDWriteCommand(ColAdd+col);
218 2 for(i=0;i<8;i++) LCDWriteData(DispData[i]);
219 2 }
220 1 }
221
222
223 void Clr()
224 {
225 1 unsigned char j,k;
226 1 Mcs=1;Scs=1;
227 1 LCDWriteCommand(PageAdd+0);
228 1 LCDWriteCommand(ColAdd+0);
229 1
230 1 for(k=0;k<8;k++){
231 2 LCDWriteCommand(PageAdd+k);
232 2 for(j=0;j<128;j++)LCDWriteData(0x00);
233 2 }
234 1 }
235
236 void DispLogo(void)
237 {
238 1 Mcs=1;
239 1 Scs=0;
240 1 Disp16X16(2,32,hzdot[0]);
241 1 Disp16X16(2,48,hzdot[1]);
C51 COMPILER V8.02 LCD 11/01/2008 07:36:25 PAGE 5
242 1 Mcs=0;
243 1 Scs=1;
244 1 Disp16X16(2,0,hzdot[2]);
245 1 Disp16X16(2,16,hzdot[3]);
246 1
247 1 Mcs=1;
248 1 Scs=0;
249 1 Disp8X16(4,0,chardot[0]);//a
250 1 Disp8X16(4,8,chardot[1]);//t
251 1 Disp8X16(4,16,chardot[2]);//8
252 1 Disp8X16(4,24,chardot[3]);//9
253 1 Disp8X16(4,32,chardot[4]);//c
254 1 Disp8X16(4,40,chardot[5]);//5
255 1 Disp8X16(4,48,chardot[2]);//8
256 1 Disp8X16(4,56,chardot[6]);//@
257 1 Mcs=0;
258 1 Scs=1;
259 1 Disp8X16(4,0,chardot[7]);//1
260 1 Disp8X16(4,8,chardot[8]);//6
261 1 Disp8X16(4,16,chardot[9]);//3
262 1 Disp8X16(4,24,chardot[10]);//.
263 1 Disp8X16(4,32,chardot[4]);//c
264 1 Disp8X16(4,40,chardot[11]);//o
265 1 Disp8X16(4,48,chardot[12]);//m
266 1 //Disp8X16(4,56,chardot[13]);
267 1 //Disp8X16(4,56,chardot[14]);
268 1 Delay(40000);
269 1 Clr();
270 1 }
271
272 void LCDInit()
273 {
274 1 TMOD=0x21;
275 1 TL1=0xfd;
276 1 TH1=0xfd;
277 1 TH0=0xfc;
278 1 TL0=0x6c;
279 1 SCON=0xd8;
280 1 PCON=0x00;
281 1 //TR1=1;
282 1 TR0=1;
283 1 EA=1;
284 1 //ES=1;
285 1 ET0=1; //开中断,允许串行口中断
286 1 //REN=1;
287 1 Flag=1;
288 1 LcdRst=0;
289 1 Delay(10);
290 1 LcdRst=1;
291 1 Delay(10);
292 1 Mcs=0;
293 1 Scs=1;
294 1 Delay(10);
295 1 LCDWriteCommand(DispOff);
296 1 LCDWriteCommand(PageAdd+0);
297 1 LCDWriteCommand(StartLine+0x0);
298 1 LCDWriteCommand(ColAdd+0);
299 1 LCDWriteCommand(DispOn);
300 1 DispLogo();
301 1 }
302
303 void DispTitle(void)
C51 COMPILER V8.02 LCD 11/01/2008 07:36:25 PAGE 6
304 {
305 1 Mcs=1;
306 1 Scs=0;
307 1 Disp16X16(1,8,ciu);
308 1 Disp16X16(1,24,xiang);
309 1 Disp16X16(1,40,zi);
310 1 }
311
312 void DispPass(void)
313 {
314 1 Mcs=1;
315 1 Scs=0;
316 1 Disp8X16(4,24,Asc[10]);
317 1 Disp8X16(4,24,Asc[10]);
318 1
319 1 Disp16X16(4,8,di);
320 1 Disp16X16(4,40,guan);
321 1 if( Pass < 9 )
322 1 {
323 2 Disp8X16(4,24,Asc[10]);
324 2 Disp8X16(4,32,Asc[Pass+1]);
325 2 }
326 1 else if((Pass > 8)&&( Pass < 19 ))
327 1 {
328 2 Disp8X16(4,24,Asc[1]);
329 2 Disp8X16(4,32,Asc[Pass-9]);
330 2 }
331 1 else if((Pass > 18)&&( Pass < 20 ))
332 1 {
333 2 Disp8X16(4,24,Asc[2]);
334 2 Disp8X16(4,32,Asc[0]);
335 2 }
336 1 }
337
338 void dir() interrupt 1 //定时器1
339 {
340 1 TH0=0xfc;
341 1 TL0=0x6c;
342 1 count++;
343 1 if( count>1000 )
344 1 {
345 2 Second++;
346 2 if(Second>59)
347 2 {
348 3 Minute++;
349 3 if(Minute>59)
350 3 {
351 4 Hour++;
352 4 if(Hour>23)
353 4 {
354 5 Hour=0;
355 5 }
356 4 Minute=0;
357 4 }
358 3 Second=0;
359 3 }
360 2 count=0;
361 2 }
362 1 if( Pass>0 )
363 1 {
364 2 TimeFlag=0;
365 2 }
C51 COMPILER V8.02 LCD 11/01/2008 07:36:25 PAGE 7
366 1 if(( TimeFlag==0 )&&( Pass==0 ))
367 1 {
368 2 TimeFlag=1;
369 2 Second=0;Minute=0;Hour=0;
370 2 }
371 1
372 1 }
373
374 void DispTime(void)
375 {
376 1 Mcs=1;
377 1 Scs=0;
378 1
379 1 Disp8X16(6,0,Asc[Hour/10]);
380 1 Disp8X16(6,8,Asc[Hour%10]);
381 1 Disp8X16(6,16,chardot[13]);
382 1 Disp8X16(6,24,Asc[Minute/10]);
383 1 Disp8X16(6,32,Asc[Minute%10]);
384 1 Disp8X16(6,40,chardot[13]);
385 1
386 1 Disp8X16(6,48,Asc[Second/10]);
387 1 Disp8X16(6,56,Asc[Second%10]);
388 1
389 1 //if( Pass==20 )
390 1 {
391 2 //Second=0;Minute=0;Hour=0;
392 2 /*
393 2 Disp8X16(6,0,Asc[10]);
394 2 Disp8X16(6,8,Asc[10]);
395 2 Disp8X16(6,16,chardot[13]);
396 2
397 2
398 2 Disp8X16(6,24,Asc[10]);
399 2 Disp8X16(6,32,Asc[10]);
400 2 Disp8X16(6,40,chardot[13]);
401 2
402 2
403 2 Disp8X16(6,48,Asc[10]);
404 2 Disp8X16(6,56,Asc[10]);
405 2 */
406 2 }
407 1
408 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1054 ----
CONSTANT SIZE = 688 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 15
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -