论坛账号至少一个月登录一次,否则会被自动冻结!论坛全站广告位出租300元一年,有需要联系QQ:154000559。下载资料E币不足?可以每日签到可获取E币,土豪则可以充值即可。
搜索
广告位出租:ML01 有需要联系QQ:2322712906。
广告位出租:ML02 有需要联系QQ:2322712906。
欢迎大家来EDA1024硬件设计开发论坛学习交流!【eda1024.com】
广告位出租:ML04 有需要联系QQ:2322712906。
广告位出租:ML05 有需要联系QQ:2322712906。

LCD1602的简单显示

[复制链接]
查看: 769|回复: 0

6

主题

9

帖子

16

E币

技术员

Rank: 2

积分
6
发表于 2017-1-10 21:30:17 | 显示全部楼层 |阅读模式
闲来无事,做几块板,就想做一下LCD1602的显示板
自己从写程序到仿真,从原理图设计,画PCB图,腐蚀钻孔,再到焊接,终于完成。

032041qle5yvzfv0verr0z.png
032101ep4m2p7tm9m1pppt.png
032229si8goavdsrvtszos.png
032304n3b4shb936rbvarv.png



  1.   /********************LCD1602 双行显示*****************************/


  2. #include <reg51.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. /***************************第一行显示********************************/
  6. uchar code table0[]="Xiao Qi ^_^ ";
  7. /***************第二行显示****************************************/
  8. uchar code table1[]="I LOVE YOU 1314";
  9. uchar num;
  10. /**************1602的各端口与单片机衔接*/
  11. #define DB P0                //P0口为LCD数据线
  12. sbit RS=P2^7;                //P3.4为LCD的RS端口
  13. sbit RW=P2^6;                //P3.5为LCD的RW端口
  14. sbit E=P2^5 ;                 //P3.6为LCD的E端口

  15. /***************毫秒级************延时函数**************************************/
  16. void delay(uint z)
  17. {
  18.         uint x,y;
  19.         for(x=z;x>0;x--);
  20.         for(y=1100;y>0;y--);
  21. }

  22. /***********************向LCD写命令函数**************************************/

  23. void write_com(uchar dat)
  24. {
  25.         delay(5);
  26.         RS=0;
  27.         RW=0;
  28.         DB=dat;
  29.         delay(5);
  30.         E=1;
  31.         delay(5);
  32.         E=0;
  33. }

  34. /***************向LCD写数据函数*/

  35. void write_data(uchar dat)
  36. {
  37.         delay(5);
  38.         RS=1;
  39.         RW=0;
  40.         DB=dat;
  41.         delay(5);
  42.         E=1;
  43.         delay(5);
  44.         E=0;
  45. }

  46. /*LCD初始化函数*/
  47. void init()
  48. {
  49.         delay(1);
  50.         E=1;
  51.         write_com(0x38);                //功能设置***********设置8位格式,2行,5x10
  52.         delay(1);
  53.         write_com(0x0c);                 //显示开关控制*******设置整体显示  开光标 光标反白显示
  54.         delay(1);                                
  55.         write_com(0x06);                //进入模式设置指令***向右移 AC(地址计数器)增加1  整个显示移动
  56.         delay(1);
  57.         write_com(0x01);                //清显示*************清除屏幕显示
  58.         delay(10);
  59.         write_com(0x10);                //归位***************将游标归位 移到开始位置
  60. }

  61. /*LCD显示位置设置*/
  62. void set_xy(uchar x,uchar y)
  63. {}



  64. /*主函数*/                           

  65. void main()
  66. {
  67.                   init();                                                        //初始化



  68.         /********第一行显示******************************************************/
  69.         write_com(0x80);                                //开始指定第一行第一个字符位置0x80
  70.         for(num=0;num<12;num++)                        //向1602写入第一行内容
  71.         {                                                                //
  72.         delay(500);                                                //
  73.                 write_data(table0[num]);        //
  74.                                                                         //
  75.         }
  76.         

  77. /*************888****第二行显示***********************/
  78.         delay(10000);
  79.         write_com(0x80+0x40);                        //开始指定第二行第一个字符位置0x80+0x40(第一行+0x40)
  80.         for(num=0;num<15 ;num++)                        //向1602写入第二行内容
  81.         {                                                                //
  82.                 delay(500);                                        //
  83.                 write_data(table1[num]);    //
  84.                                                                           //
  85.         }
  86.         delay(50000);
  87.         delay(65535);
  88.         delay(65535);
  89.         delay(65535);

  90.         delay(65535);
  91.     delay(65535);
  92.         delay(65535);
  93.         delay(50000);
  94.         delay(65535);
  95.         delay(65535);
  96.                                 
  97. }         
复制代码

lcd 1602程序 注释.zip

1.05 KB, 下载次数: 0, 下载积分: E币 -2 元

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住EDA1024

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|EDA1024硬件论坛 ( 苏ICP备15024581号 )

GMT+8, 2021-7-29 07:53 , Processed in 0.070582 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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