📄 12864.lst
字号:
250 };
251
252 /*------------------延时子程序-----------------------------*/
253 void delay(unsigned int t)
254 {
255 1 unsigned int i,j;
256 1 for(i=0;i<t;i++)
257 1 for(j=0;j<10;j++)
258 1 ;
259 1 }
260
261 /*------------------写命令到LCD------------------------------*/
262 void write_com(unsigned char cmdcode)
263 {
264 1 Di=0;RW=0;
265 1
266 1 Lcd_Bus=cmdcode;delay(0);
267 1 Enable=1;delay(0);
268 1 Enable=0;
269 1 }
270
271 /*-------------------写数据到LCD----------------------------*/
272 void write_data(unsigned char Dispdata)
273 {
274 1 Di=1;RW=0;
275 1
276 1 Lcd_Bus=Dispdata;delay(0);
277 1 Enable=1;delay(0);
278 1 Enable=0;
279 1 }
280
281 /*------------------------读LCD数据----------------------------
282 unsigned char read_data(void)
283 {
284 unsigned char tmpin;
285
286 Di=1;RW=1;delay(0);
287
288 Enable=1;delay(0);
289 Enable=0;
290
291 tmpin=Lcd_Bus;
292
293 return tmpin;
294 }
295
296 /*------------------------显示边框-------------------------------*/
297 void frame(void)
298 {
299 1 unsigned char i;
300 1
301 1 Mcs=1;Scs=1;
302 1 write_com(Page_Add+0);
303 1 write_com(Col_Add+0);
C51 COMPILER V7.50 12864 04/19/2006 15:39:36 PAGE 6
304 1 for(i=0;i<64;i++)
305 1 write_data(0x01);
306 1
307 1 write_com(Page_Add+7);
308 1 write_com(Col_Add+0);
309 1
310 1 for(i=0;i<64;i++)
311 1 write_data(0x80);
312 1
313 1 for(i=0;i<8;i++)
314 1 {
315 2 Mcs=0;Scs=1;
316 2 write_com(Page_Add+i);
317 2 write_com(Col_Add+63);
318 2 write_data(0xff);
319 2
320 2 Mcs=1;Scs=0;
321 2 write_com(Page_Add+i);
322 2 write_com(Col_Add+0);
323 2 write_data(0xff);
324 2 }
325 1 }
326
327 /*--------------------------清除内存------------------------------*/
328 void Clr_Scr(void)
329 {
330 1 unsigned char j,k;
331 1
332 1 Mcs=1;Scs=1;
333 1 write_com(Page_Add+0);
334 1 write_com(Col_Add+0);
335 1
336 1 for(k=0;k<8;k++)
337 1 {
338 2 write_com(Page_Add+k);
339 2 for(j=0;j<64;j++)
340 2 write_data(0x00);
341 2 }
342 1 }
343
344 /*--------------------------指定位置显示汉字16*16-----------------------*/
345 void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
346 {
347 1 unsigned char j=0,i=0;
348 1 for(j=0;j<2;j++)
349 1 {
350 2 write_com(Page_Add+pag+j);
351 2 write_com(Col_Add+col);
352 2 for(i=0;i<16;i++)
353 2 write_data(hzk[16*j+i]);
354 2 }
355 1
356 1 delay(2000);//延时,显示时有跳动感
357 1 }
358
359 /*----------------------指定位置显示字母或数字8*16-----------------------*/
360 void e_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
361 {
362 1 unsigned char j=0,i=0;
363 1 for(j=0;j<2;j++)
364 1 {
365 2 write_com(Page_Add+pag+j);
C51 COMPILER V7.50 12864 04/19/2006 15:39:36 PAGE 7
366 2 write_com(Col_Add+col);
367 2 for(i=0;i<8;i++)
368 2 write_data(hzk[8*j+i]);
369 2 }
370 1
371 1 delay(2000);//延时,显示时有跳动感
372 1 }
373
374 /*------------------显示128*64图片-------------------------------------*/
375 void Disp_Img(unsigned char code *img)
376 {
377 1 unsigned char j,k;
378 1
379 1 for(k=0;k<8;k++)
380 1 {
381 2 Mcs=1;Scs=0;delay(10);
382 2 write_com(Page_Add+k);
383 2 write_com(Col_Add+0);
384 2 for(j=0;j<64;j++) write_data(img[k*128+j]);
385 2
386 2 Mcs=0;Scs=1; delay(10);
387 2 write_com(Page_Add+k);
388 2 write_com(Col_Add+0);
389 2 for(j=64;j<128;j++) write_data(img[k*128+j]);
390 2 }
391 1 }
392
393 /*------------------显示64*64图片---------------------------------------
394 void Disp_Img2(unsigned char code *img)
395 {
396 unsigned char j,k;
397 for(k=0;k<8;k++)
398 {
399 Mcs=1;Scs=0;delay(10);
400 write_com(Page_Add+k);
401 write_com(Col_Add+0);
402 for(j=0;j<64;j++) write_data(img[k*64+j]);
403 }
404 }
405
406 /*-------------------------------初始化LCD屏---------------------------*/
407 void init_lcd(void)
408 {
409 1 Lcd_Rst=0;delay(100);
410 1 Lcd_Rst=1;delay(100);
411 1
412 1 Mcs=1;Scs=1;delay(100);
413 1
414 1 write_com(Disp_Off);
415 1 write_com(Page_Add+0);
416 1 write_com(Start_Line+0);
417 1 write_com(Col_Add+0);
418 1 write_com(Disp_On);
419 1 }
420
421 /*------------------------------信息显示-------------------------------*/
422 void Msg(void)
423 {
424 1 Clr_Scr(); //清除内存
425 1 frame(); //边框
426 1
427 1 Mcs=1;Scs=0;//显示欢迎光临
C51 COMPILER V7.50 12864 04/19/2006 15:39:36 PAGE 8
428 1 hz_disp16(1,32,huan);
429 1 hz_disp16(1,48,ying);
430 1
431 1 Mcs=0;Scs=1;
432 1 hz_disp16(1,0,guang);
433 1 hz_disp16(1,16,lin);
434 1
435 1 Mcs=1;Scs=0;//湘灵电子工作室
436 1 hz_disp16(3,0,xiang);
437 1 hz_disp16(3,16,ling);
438 1 hz_disp16(3,32,dian);
439 1 hz_disp16(3,48,zi);
440 1
441 1 Mcs=0;Scs=1;
442 1 hz_disp16(3,0,gong);
443 1 hz_disp16(3,16,zuo);
444 1 hz_disp16(3,32,shi);
445 1
446 1 Mcs=1;Scs=0;//显示www.mculover.net
447 1 e_disp16(5,0,w);
448 1 e_disp16(5,8,w);
449 1 e_disp16(5,16,w);
450 1 e_disp16(5,24,di);
451 1 e_disp16(5,32,m);
452 1 e_disp16(5,40,c);
453 1 e_disp16(5,48,u);
454 1 e_disp16(5,56,l);
455 1
456 1 Mcs=0;Scs=1;
457 1 e_disp16(5,0,o);
458 1 e_disp16(5,8,v);
459 1 e_disp16(5,16,e);
460 1 e_disp16(5,24,r);
461 1 e_disp16(5,32,di);
462 1 e_disp16(5,40,n);
463 1 e_disp16(5,48,e);
464 1 e_disp16(5,56,t);
465 1 }
466
467 /*------------------------------------------------------------------*/
468 void LED_on(void)
469 {
470 1 led = on;
471 1 }
472
473 /*------------------------------------------------------------------*/
474 void LED_off(void)
475 {
476 1 led = off;
477 1 }
478
479 /*---------------------------主程序---------------------------------*/
480 void main(void)
481 {
482 1 LED_on();//D点亮背光灯!
483 1 while(1)
484 1 {
485 2 init_lcd();
486 2 Disp_Img(logo);
487 2 delay(10000);
488 2 Clr_Scr(); //清除内存
489 2 Msg();
C51 COMPILER V7.50 12864 04/19/2006 15:39:36 PAGE 9
490 2 delay(10000);
491 2 }
492 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 827 ----
CONSTANT SIZE = 1600 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 14
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -