找回密码
 立即注册

QQ登录

只需一步,快速开始

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

分享lcd12864例程

[复制链接]
跳转到指定楼层
楼主
ID:120821 发表于 2016-5-14 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一些关于lcd12684的例程文件
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit en=P3^4;
  6. sbit rs=P3^5;
  7. sbit rw=P3^6;
  8. sbit lcd_psb=P3^1;
  9. sbit wela=P2^6;
  10. sbit dula=P2^7;
  11. uchar code dis1[]={"清翔电子"};
  12. uchar code dis2[]={"QX-X3 开发板"};
  13. uchar code dis3[]={"祝大家生活愉快!"};
  14. uchar code dis4[]={"TEST!12864"};
  15. void delaynop()
  16. {
  17.         _nop_();
  18.         _nop_();
  19.         _nop_();
  20.         _nop_();
  21. }
  22. bit lcd_status()
  23. {
  24.         bit status;
  25.         rs=0;
  26.         rw=1;
  27.         _nop_();
  28.         _nop_();
  29.         en=1;
  30.         status=P0&0x80;
  31.         delaynop();
  32.         delaynop();
  33.         en=0;
  34.         return status;               
  35. }
  36. void lcd_wcmd(uchar cmd)
  37. {
  38.         while(lcd_status());
  39.         rs=0;
  40.         rw=0;
  41.         _nop_();
  42.         _nop_();
  43.         en=1;
  44.         P0=cmd;
  45.         delaynop();
  46.         delaynop();
  47.         en=0;
  48. }
  49. void lcd_wdat(uchar dat)
  50. {
  51.         while(lcd_status());
  52.         rs=1;
  53.         rw=0;
  54.         _nop_();
  55.         _nop_();
  56.         en=1;
  57.         P0=dat;
  58.         delaynop();
  59.         delaynop();
  60.         en=0;
  61. }
  62. void lcd_pos(uchar x,y)
  63. {
  64.         uchar pos;
  65.         switch(x)
  66.         {
  67.                 case 0: x=0x80; break;
  68.                 case 1: x=0x90; break;
  69.                 case 2: x=0x88; break;
  70.                 case 3: x=0x98; break;
  71.         }
  72.         pos=x+y;
  73.         lcd_wcmd(pos);
  74. }
  75. void lcd_init()
  76. {
  77.         lcd_psb=1;
  78.         lcd_wcmd(0x30);
  79.         delaynop();
  80.         lcd_wcmd(0x0c);
  81.         delaynop();
  82.         lcd_wcmd(0x01);
  83.         delaynop();
  84. }
  85. void main()
  86. {
  87.         uchar i;
  88.         lcd_init();

  89.         lcd_pos(0,0);
  90.         i=0;
  91.         while(dis1[i]!='\0')
  92.         {
  93.                 lcd_wdat(dis1[i]);
  94.                 i++;       
  95.         }
  96.         lcd_wcmd(0x34);
  97.         lcd_wcmd(0x04);
  98.         lcd_wcmd(0x30);
  99.         lcd_pos(1,0);
  100.         i=0;
  101.         while(dis2[i]!='\0')
  102.         {
  103.                 lcd_wdat(dis2[i]);
  104.                 i++;       
  105.         }

  106.         lcd_pos(2,0);
  107.         i=0;
  108.         while(dis3[i]!='\0')
  109.         {
  110.                 lcd_wdat(dis3[i]);
  111.                 i++;       
  112.         }

  113.         lcd_pos(3,0);
  114.         i=0;
  115.         while(dis4[i]!='\0')
  116.         {
  117.                 lcd_wdat(dis4[i]);
  118.                 i++;       
  119.         }

  120.         P0=0xff;
  121.         dula=0;
  122.         wela=0;
  123.         while(1);
  124. }
复制代码


例程.zip

12.76 KB, 下载次数: 26, 下载积分: 黑币 -5

一些关于lcd12684的例程

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:223702 发表于 2017-8-1 01:44 | 只看该作者
多谢分享 ,楼主好人
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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