找回密码
 立即注册

QQ登录

只需一步,快速开始

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

lcd1602自定义字符显示lcd1602自定义字符显示

[复制链接]
跳转到指定楼层
楼主
ID:421049 发表于 2019-10-21 18:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define DISOPEN 0x0c     //光标开
  5. #define GLINT 0x0b
  6. #define DISMODE 0x06     //读字符后地址加一
  7. #define CLEAR 0x01       //清屏
  8. #define PORT P0          //数据口
  9. uchar code table[]="I LOVE MCU!";
  10. uchar code table1[]="WWWTXMCUCOM";
  11. sbit lcdrs=P1^0;      //数据/写命令选择端
  12. sbit lcdrw=P1^1;     //读写输入端,因为我们不从液晶读取任何数据,因此始终为低电平就行(RW=0为写)
  13. sbit lcden=P1^2;
  14. uchar num;
  15. /**********************  定义一个字符需要8个字节,每个字节前三位不用**********/
  16. uchar  code hot[8]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00}; //℃
  17. uchar  code nian[8]={0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x00};//字符年
  18. uchar  code yue[8]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00}; //字符月
  19. uchar  code ri[8]={0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00};  //字符日


  20. void delay(uint z)
  21. {
  22.   uint x,y;
  23.         for(x=z;x>0;x--)
  24.           for(y=110;y>0;y--);
  25. }
  26. void write_com(uchar com)
  27. {
  28.         lcdrs=0;
  29.         lcdrw=0;
  30.         PORT=com;
  31.         delay(1);
  32.         lcden=1;
  33.         delay(1);
  34.         lcden=0;
  35. }
  36. void write_0ne_data(uchar date)
  37. {
  38.         lcdrs=1;
  39.         lcdrw=0;
  40.         PORT=date;
  41.         delay(1);    //tsp2>20ns
  42.         lcden=1;
  43.         delay(1);    //tpw>150
  44.         lcden=0;    //给E一个高脉冲将数据送进液晶控制器,完成写操作
  45. }
  46. void write_str_data(uint addr,uint length,uchar *pbuf)
  47. {
  48.         uint i;
  49.         write_com(addr);
  50.         for(i=0;i<length;i++)
  51.         {
  52.                 write_0ne_data(pbuf[i]);
  53.         }
  54. }


  55. void init()
  56. {
  57.     lcden=0;
  58.         write_com(0x38);  
  59.         write_com(DISOPEN);
  60.         write_com(DISMODE);
  61.         write_com(CLEAR);
  62. }

  63. void main()
  64. {
  65.     init();
  66.         write_str_data(0x40,8,hot);
  67.         write_str_data(0x48,8,nian);
  68.         write_str_data(0x50,8,yue);
  69. //        write_str_data(0x58,8,ri);
  70.         write_com(0x80);
  71.         write_0ne_data(0);
  72.         delay(5);
  73.         write_0ne_data(1);
  74.         delay(5);
  75.         write_0ne_data(2);
  76.         delay(5);
  77.         write_0ne_data(3);
  78.         delay(5);
  79.         while(1);
  80. }
复制代码

LCD1602-zcc.zip

22.68 KB, 下载次数: 18, 下载积分: 黑币 -5

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

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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