📄 1.lst
字号:
286 2 P3=0x13;
287 2 while(!busy);
288 2 }
289 1 if (right==0)
290 1 {
291 2 P3=0x0b;
292 2 while(!busy);
293 2 }
294 1 }
295
296 void cmd_w(char cmd,char right)
297 {
298 1 busy_check(right);
299 1 if (right==1)
300 1 {
301 2 P3=0x10;
302 2 }
303 1 if (right==0)
C51 COMPILER V8.04 1 06/07/2006 12:29:10 PAGE 6
304 1 {
305 2 P3=0x08;
306 2 P3=0x08;
307 2 }
308 1 P2=cmd;
309 1 pulse();
310 1 }
311
312 void data_w(char dat,char right)
313 {
314 1 busy_check(right);
315 1 if (right==1)
316 1 {
317 2 P3=0x14;
318 2 }
319 1 if (right==0)
320 1 {
321 2 P3=0x0c;
322 2 }
323 1 P2=dat;
324 1 pulse();
325 1 }
326
327 void lcd_init()
328 {
329 1 unsigned int i;
330 1 cmd_w(0x3e+1,0);//显示开关
331 1 cmd_w(0xc0+0,0);//修改显示起始行
332 1 cmd_w(0xb8+0,0);//修改页地址
333 1 cmd_w(0x40+0,0);//修改列地址
334 1 cmd_w(0x3e+1,1);
335 1 cmd_w(0xc0+0,1);
336 1 cmd_w(0xb8+0,1);
337 1 cmd_w(0x40+0,1);
338 1 for(i=0;i<256;i++)
339 1 {
340 2 data_w(0x00,0);
341 2 }
342 1
343 1 cmd_w(0xb8+4,0);
344 1 cmd_w(0x40+8,0);
345 1 for(i=0;i<256;i++)
346 1 {
347 2 data_w(0x00,0);
348 2 }
349 1
350 1 for(i=0;i<256;i++)
351 1 {
352 2 data_w(0x00,1);
353 2 }
354 1
355 1 cmd_w(0xb8+4,1);
356 1 cmd_w(0x40+8,1);
357 1 for(i=0;i<256;i++)
358 1 {
359 2 data_w(0x00,1);
360 2 }
361 1 }
362
363 char chang(char a)
364 {
365 1 char temp,i;
C51 COMPILER V8.04 1 06/07/2006 12:29:10 PAGE 7
366 1 for(i=0;i<8;i++)
367 1 {
368 2 temp<<=1;
369 2 temp|=(a&0x01);
370 2 a>>=1;
371 2 }
372 1 return(temp);
373 1 }
374
375 void hanzi_w(char hang,char lie,char zhi[32])
376 {
377 1 unsigned char i;
378 1 if(lie<4)
379 1 {
380 2 cmd_w(0xb8+2*hang,0);
381 2 cmd_w(0x40+16*lie,0);
382 2 for(i=0;i<32;i+=2)
383 2 data_w(chang(zhi[i]),0);
384 2 }
385 1 else
386 1 {
387 2 cmd_w(0xb8+2*hang,1);
388 2 cmd_w(0x40+16*(lie-4),1);
389 2 for(i=0;i<32;i+=2)
390 2 data_w(chang(zhi[i]),1);
391 2 }
392 1 if(lie<4)
393 1 {
394 2 cmd_w(0xb8+2*hang+1,0);
395 2 cmd_w(0x40+16*lie,0);
396 2 for(i=1;i<32;i+=2)
397 2 data_w(chang(zhi[i]),0);
398 2 }
399 1 else
400 1 {
401 2 cmd_w(0xb8+2*hang+1,1);
402 2 cmd_w(0x40+16*(lie-4),1);
403 2 for(i=1;i<32;i+=2)
404 2 data_w(chang(zhi[i]),1);
405 2 }
406 1 }
407
408 void zifu_w(char hang,char lie,char zhi[8])
409 {
410 1 unsigned char i;
411 1 if(lie<8)
412 1 {
413 2 cmd_w(0xb8+hang,0);
414 2 cmd_w(0x40+8*lie,0);
415 2 for(i=0;i<5;i++)
416 2 data_w(chang(zhi[i]),0);
417 2 }
418 1 else
419 1 {
420 2 cmd_w(0xb8+hang,1);
421 2 cmd_w(0x40+8*(lie-8),1);
422 2 for(i=0;i<5;i++)
423 2 data_w(chang(zhi[i]),1);
424 2 }
425 1 }
426
427 void bmp_w(char a[])
C51 COMPILER V8.04 1 06/07/2006 12:29:10 PAGE 8
428 {
429 1 unsigned int i;
430 1 cmd_w(0xb8+0,0);//修改页地址
431 1 cmd_w(0x40+0,0);//修改列地址
432 1 for(i=0;i<64;i++)
433 1 {
434 2 data_w(chang(a[i]),0);
435 2 }
436 1 cmd_w(0xb8+0,1);
437 1 cmd_w(0x40+0,1);
438 1 for(i=64;i<128;i++)
439 1 {
440 2 data_w(chang(a[i]),1);
441 2 }
442 1 cmd_w(0xb8+1,0);
443 1 cmd_w(0x40+0,0);
444 1 for(i=128;i<192;i++)
445 1 {
446 2 data_w(chang(a[i]),0);
447 2 }
448 1 cmd_w(0xb8+1,1);
449 1 cmd_w(0x40+0,1);
450 1 for(i=192;i<256;i++)
451 1 {
452 2 data_w(chang(a[i]),1);
453 2 }
454 1 cmd_w(0xb8+2,0);
455 1 cmd_w(0x40+0,0);
456 1 for(i=256;i<320;i++)
457 1 {
458 2 data_w(chang(a[i]),0);
459 2 }
460 1 cmd_w(0xb8+2,1);
461 1 cmd_w(0x40+0,1);
462 1 for(i=320;i<384;i++)
463 1 {
464 2 data_w(chang(a[i]),1);
465 2 }
466 1 cmd_w(0xb8+3,0);//修改页地址
467 1 cmd_w(0x40+0,0);//修改列地址
468 1 for(i=384;i<448;i++)
469 1 {
470 2 data_w(chang(a[i]),0);
471 2 }
472 1 cmd_w(0xb8+3,1);
473 1 cmd_w(0x40+0,1);
474 1 for(i=448;i<512;i++)
475 1 {
476 2 data_w(chang(a[i]),1);
477 2 }
478 1 cmd_w(0xb8+4,0);
479 1 cmd_w(0x40+0,0);
480 1 for(i=512;i<576;i++)
481 1 {
482 2 data_w(chang(a[i]),0);
483 2 }
484 1 cmd_w(0xb8+4,1);
485 1 cmd_w(0x40+0,1);
486 1 for(i=576;i<640;i++)
487 1 {
488 2 data_w(chang(a[i]),1);
489 2 }
C51 COMPILER V8.04 1 06/07/2006 12:29:10 PAGE 9
490 1 cmd_w(0xb8+5,0);
491 1 cmd_w(0x40+0,0);
492 1 for(i=640;i<704;i++)
493 1 {
494 2 data_w(chang(a[i]),0);
495 2 }
496 1 cmd_w(0xb8+5,1);
497 1 cmd_w(0x40+0,1);
498 1 for(i=704;i<768;i++)
499 1 {
500 2 data_w(chang(a[i]),1);
501 2 }
502 1 cmd_w(0xb8+6,0);
503 1 cmd_w(0x40+0,0);
504 1 for(i=768;i<832;i++)
505 1 {
506 2 data_w(chang(a[i]),0);
507 2 }
508 1 cmd_w(0xb8+6,1);
509 1 cmd_w(0x40+0,1);
510 1 for(i=832;i<896;i++)
511 1 {
512 2 data_w(chang(a[i]),1);
513 2 }
514 1 cmd_w(0xb8+7,0);
515 1 cmd_w(0x40+0,0);
516 1 for(i=896;i<960;i++)
517 1 {
518 2 data_w(chang(a[i]),0);
519 2 }
520 1 cmd_w(0xb8+7,1);
521 1 cmd_w(0x40+0,1);
522 1 for(i=960;i<1024;i++)
523 1 {
524 2 data_w(chang(a[i]),1);
525 2 }
526 1 }
527
528 void delay(unsigned char a)
529 {
530 1 unsigned char i,j;
531 1 for(i=0;i<a;i++)
532 1 for(j=0;j<200;j++)
533 1 ;
534 1 }
535
536 void main()
537 {
538 1 lcd_init();
539 1 bmp_w(nBitmapDot);
540 1 while(1)
541 1 {
542 2 delay(200);
543 2 delay(200);
544 2 delay(200);
545 2 delay(200);
546 2 delay(200);
547 2 delay(200);
548 2 delay(200);
549 2 delay(200);
550 2 bmp_w(nBitmapDot1);
551 2 delay(200);
C51 COMPILER V8.04 1 06/07/2006 12:29:10 PAGE 10
552 2 delay(200);
553 2 delay(200);
554 2 delay(200);
555 2 delay(200);
556 2 delay(200);
557 2 delay(200);
558 2 delay(200);
559 2 bmp_w(nBitmapDot);
560 2 }
561 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1384 ----
CONSTANT SIZE = 2048 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 15
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 + -