单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 207|回复: 5
打印 上一主题 下一主题
收起左侧

单片机驱动LCD240128大屏显示范例(仿真+程序)

  [复制链接]
跳转到指定楼层
楼主
LCD240128仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


LCD240128单片机源程序:
  1. #include <reg52.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #define width            
  6. #define addr_w      
  7. #define addr_t      
  8. #define data_ora      
  9. #define uchar      unsigned char
  10. #define uint       unsigned int

  11. sbit wr  =P3^0;  
  12. sbit rd  =P3^1;  
  13. sbit ce  =P3^2;  
  14. sbit cd  =P3^3;  
  15. sbit rst =P3^4;  
  16. sbit fs  =P3^5;  
  17. sbit bf0 =P1^0;
  18. sbit bf1 =P1^1;
  19. sbit bf3 =P1^3;


  20. void wr_comm (uchar comm);
  21. void wr_data (uchar dat);
  22. void chk_busy (uchar autowr);

  23. void wr_xd (uint dat,uchar comm)      
  24. {
  25.         uchar datl,dath;
  26.         datl=dat;
  27.         dath=dat>>8;
  28.         wr_data(datl);
  29.         wr_data(dath);
  30.         wr_comm(comm);
  31. }


  32. void wr_comm (uchar comm)      
  33. {
  34.         chk_busy (0);
  35.         cd=1;
  36.         rd=1;
  37.         data_ora=comm;
  38.         wr=0;
  39.         wr=1;
  40. }
  41. void wr_data (uchar dat)      
  42. {
  43.         chk_busy (0);
  44.         cd=0;
  45.         rd=1;
  46.         data_ora=dat;
  47.         wr=0;
  48.         wr=1;
  49. }
  50. void chk_busy (uchar autowr)   
  51. {
  52.         data_ora=0xff;
  53.         cd=1;
  54.         wr=1;
  55.         rd=0;
  56.         if(autowr)
  57.     {while(bf3==0)
  58.         ;}
  59.         else
  60.     {while((bf0==0)||(bf1==0))
  61.         ;}
  62.         rd=1;
  63. }
  64. /*------------------初始化-----------------*/
  65. void init_lcd (void)
  66. {
  67.         rst=0;
  68.         ;
  69.         rst=1;
  70.         fs=0;
  71.         ce=0;
  72.         wr=1;
  73.         rd=1;
  74.         wr_xd(addr_w,0x40);                  
  75.         wr_xd(addr_t,0x42);                  
  76.         wr_td(width,0x00,0x41);               
  77.         wr_td(width,0x00,0x43);               
  78.         wr_comm(0x81);                        
  79.         wr_td(0x02,0x00,0x22);               
  80.         wr_comm(0x9c);                        
  81. }
  82. /*--------------清RAM------------------*/
  83. void clrram (void)
  84. {
  85.         uchar i,j;
  86.         wr_xd(addr_w,0x24);
  87.         wr_comm(0xb0);
  88.         for(j=0;j<144;j++)
  89.         {
  90.                 for(i=0;i<width;i++)
  91.                         wr_auto(0x00);
  92.         }
  93.         wr_comm(0xb2);
  94. }
  95. /*--------------显示点阵------------------*/
  96. void disp_dz (uchar data1,uchar data2)
  97. {
  98.         uchar i,j;
  99.         wr_xd(addr_t,0x24);
  100.         wr_comm(0xb0);
  101.         for(j=0;j<32;j++)
  102.         {
  103.                 for(i=0;i<width*2;i++)
  104.                         wr_auto(data1);
  105.                 for(i=0;i<width*2;i++)
  106.                         wr_auto(data2);
  107.         }
  108.         wr_comm(0xb2);
  109. }

  110. /*------------------主程序--------------------*/
  111. void main ()
  112. {
  113.         SP=0x5f;
  114.         init_lcd ();
  115.         while (1)
  116.         {
  117.                 clrram();
  118.                 disp_eng(tab11);
  119.                 disp_chn(0x0c35,2,16,10,2,tab12);
  120.                 delay1(800);
  121.                 clrram();
  122.                 disp_dz(0xcc,0xcc);
  123.                 delay1(800);
  124.                 clrram();
  125.                 disp_chn(0x025b,3,24,8,5,tab3);
  126.                 delay1(800);
  127.                 clrram();
  128.                 disp_dz(0xcc,0x33);
  129.                 delay1(800);
  130.                 clrram();
  131.                 disp_img(0x01e7,16,128,tab5);
  132.                 delay1(800);
  133.         }
  134. }
复制代码



全部资料51hei下载地址:
LCD240128大屏显示范例.rar (21.36 KB, 下载次数: 8)

评分

参与人数 4黑币 +110 收起 理由
shuisheng60 + 35 很给力!
zhengchong60 + 10 绝世好帖!
jinsheng7533967 + 35 绝世好帖!
admin + 30 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
zhengchong60 发表于 2019-2-1 22:35 | 只看该作者
好!很好!真的很好!

评分

参与人数 3黑币 +57 收起 理由
shuisheng60 + 35
找人PK + 12
sheng7533967 + 10

查看全部评分

回复

使用道具 举报

板凳
shuisheng60 发表于 2019-2-4 19:05 | 只看该作者
不错!这才叫高大上

评分

参与人数 5黑币 +135 收起 理由
yoxi + 15
刀刀见红 + 35
jinsheng7533967 + 35
Sawardeakar + 35
#include51.h + 15

查看全部评分

回复

使用道具 举报

地板
yoxi 发表于 2019-2-6 21:55 | 只看该作者
谢谢!都是学习的好资料

评分

参与人数 1黑币 +16 收起 理由
Trump1438 + 16

查看全部评分

回复

使用道具 举报

5#
还有谁? 发表于 2019-2-10 21:00 | 只看该作者
来你空间了

评分

参与人数 1黑币 +10 收起 理由
就你?呸! + 10

查看全部评分

回复

使用道具 举报

6#
为父天星 发表于 2019-2-12 09:04 | 只看该作者
大虾们,有一个语言,当PA3= 0x01;的时候PA2的输出不能再次为0x01怎么写
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机.

Powered by 单片机教程网

快速回复 返回顶部 返回列表