找回密码
 立即注册

QQ登录

只需一步,快速开始

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

实现LCD1602与8051微控制器的接口

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


单片机源程序如下:
  1. #include<reg52.h>
  2. #include<string.h>
  3. #include<intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit RS = P1^0;
  7. sbit E = P1^1;

  8. uchar code table[] = {"hello world"};
  9. void delay(uint time);
  10. void lcdinit(void);
  11. void writecmd(int z);
  12. void writedata(char t);
  13. void display(uchar num);

  14. int main()
  15. {
  16.         delay(1000);
  17.         lcdinit();
  18.         delay(500);
  19.         writecmd(0x82);
  20.         delay(500);
  21.         display(strlen(table));
  22.         while(1);
  23.         return 0;
  24. }

  25. void lcdinit(void)
  26. {
  27.     delay(15000);
  28.    writecmd(0x30);
  29.      delay(4500);
  30.    writecmd(0x30);
  31.      delay(300);
  32.    writecmd(0x30);
  33.      delay(650);

  34.    writecmd(0x38);    //function set
  35.    writecmd(0x0c);    //display on,cursor off,blink off
  36.    writecmd(0x01);    //clear display
  37.    writecmd(0x06);    //entry mode, set increment
  38. }
  39. void writecmd(int z)
  40. {
  41.    RS = 0;             // => RS = 0

  42.    P2 = z;             //Data transfer
  43.    E  = 1;             // => E = 1
  44.    delay(150);
  45.    E  = 0;             // => E = 0
  46.    delay(150);
  47. }
  48. void writedata(char t)
  49. {
  50.    RS = 1;             // => RS = 1

  51.    P2 = t;             //Data transfer
  52.    E  = 1;             // => E = 1
  53.    delay(150);
  54.    E  = 0;             // => E = 0
  55.    delay(150);
  56. }
  57. void display(uchar num)
  58. {
  59.         uchar i;
  60.         for(i = 0; i < num; i++)
  61.         {
  62.                 writedata(table[i]);
  63.         }
  64.         delay(500);
  65. }

  66. void delay(uint time)           
  67. {
  68.     unsigned char a,b,i;
  69.         for(i = time; i != 0;i--)
  70.                 for(b=199;b>0;b--)
  71.                         for(a=1;a>0;a--);
  72. }
复制代码


a.rar

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

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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