找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD1602基本显示注意事项与单片机程序

  [复制链接]
跳转到指定楼层
楼主
LCD1602液晶显示:
Welcome!
LCD1602 display
使用方法(注意事项):
1、先插接好LCD1602液晶,插接到LCD1602排针上(位于数码管上方16个孔的排母)
插接方向:插接完成后液晶屏幕处于开发板内(盖住数码管)
一定要把排针全部插入16P排母,插接是注意不能错位。
如果排针有歪斜,用户可以用手慢慢的掰正即可,不会断掉或影响使用,因为排针受外力很容易歪斜,但韧性好。
2、打开开发板电源,烧入配套LCD1602显示的程序。
3、如果没有显示字符,或者出现全黑的方格和字迹不清晰,可以找一个合适的工具,有螺丝刀最好,调节16P排母左边的“液晶对比度电位器”顺时针慢慢调节,直到显示清楚,顺时针调节增加对比度,逆时针减小对比度。接插示意图如下:


单片机源程序如下:
  1. /*********************************************************************************
  2. * 【作    者】: 清翔电子:03
  3. * 【外部晶振】: 11.0592mhz       
  4. * 【主控芯片】: STC89C52
  5. * 【编译环境】: Keil μVisio3       
  6. * 【程序功能】: LCD1602显示                                                                                   
  7. * 【使用说明】: 正确接上LCD1602液晶并调节好对比度
  8. *  说明:免费开源,不提供源代码分析.
  9. **********************************************************************************/
  10. #include <reg52.h>

  11. /*=================================================
  12. *自定义数据类型
  13. =================================================*/
  14. typedef unsigned char uchar;
  15. typedef unsigned int uint;

  16. #define LCD1602_DB P0        //LCD1602数据总线

  17. sbit LCD1602_RS = P3^5;         //RS端
  18. sbit LCD1602_RW = P3^6;         //RW端
  19. sbit LCD1602_EN = P3^4;         //EN端
  20. sbit DU = P2^6;//
  21. sbit WE = P2^7;//数码管位选段选用于关闭数码管显示

  22. /*=================================================
  23. *函数名称:Read_Busy
  24. *函数功能:判断1602液晶忙,并等待
  25. =================================================*/
  26. void Read_Busy()
  27. {
  28.         uchar busy;
  29.         LCD1602_DB = 0xff;//复位数据总线
  30.         LCD1602_RS = 0;          //拉低RS
  31.         LCD1602_RW = 1;          //拉高RW读
  32.         do
  33.         {
  34.                 LCD1602_EN = 1;//使能EN
  35.                 busy = LCD1602_DB;//读回数据
  36.                 LCD1602_EN = 0;         //拉低使能以便于下一次产生上升沿
  37.         }while(busy & 0x80); //判断状态字BIT7位是否为1,为1则表示忙,程序等待
  38. }
  39. /*=================================================
  40. *函数名称:LCD1602_Write_Cmd
  41. *函数功能:写LCD1602命令
  42. *调用:Read_Busy();
  43. *输入:cmd:要写的命令
  44. =================================================*/
  45. void LCD1602_Write_Cmd(uchar cmd)
  46. {
  47.         Read_Busy();         //判断忙,忙则等待
  48.         LCD1602_RS = 0;
  49.         LCD1602_RW = 0;        //拉低RS、RW操作时序情况1602课件下中文使用说明基本操作时序章节
  50.         LCD1602_DB = cmd;//写入命令
  51.         LCD1602_EN = 1;         //拉高使能端 数据被传输到LCD1602内
  52.         LCD1602_EN = 0;         //拉低使能以便于下一次产生上升沿
  53. }
  54. /*=================================================
  55. *函数名称:LCD1602_Write_Dat
  56. *函数功能:写LCD1602数据
  57. *调用:Read_Busy();
  58. *输入:dat:需要写入的数据
  59. =================================================*/
  60. void LCD1602_Write_Dat(uchar dat)
  61. {
  62.         Read_Busy();
  63.         LCD1602_RS = 1;
  64.         LCD1602_RW = 0;
  65.         LCD1602_DB = dat;
  66.         LCD1602_EN = 1;
  67.         LCD1602_EN = 0;
  68. }
  69. /*=================================================
  70. *函数名称:LCD1602_Dis_OneChar
  71. *函数功能:在指定位置显示一个字符
  72. *调用:LCD1602_Write_Cmd(); LCD1602_Write_Dat();       
  73. *输入:x:要显示的横坐标取值0-40,y:要显示的行坐标取值0-1(0为第一行,1为第二行)
  74.                 dat:需要显示的数据以ASCLL形式显示
  75. =================================================*/
  76. void LCD1602_Dis_OneChar(uchar x, uchar y,uchar dat)
  77. {
  78.         if(y)        x |= 0x40;
  79.         x |= 0x80;
  80.         LCD1602_Write_Cmd(x);
  81.         LCD1602_Write_Dat(dat);               
  82. }
  83. /*=================================================
  84. *函数名称:LCD1602_Dis_Str
  85. *函数功能:在指定位置显示字符串
  86. *调用:LCD1602_Write_Cmd(); LCD1602_Write_Dat();
  87. *输入:x:要显示的横坐标取值0-40,y:要显示的行坐标取值0-1(0为第一行,1为第二行)
  88.                 *str:需要显示的字符串
  89. =================================================*/
  90. void LCD1602_Dis_Str(uchar x, uchar y, uchar *str)
  91. {
  92.         if(y) x |= 0x40;
  93.         x |= 0x80;
  94.         LCD1602_Write_Cmd(x);
  95.         while(*str != '\0')
  96.         {
  97.                 LCD1602_Write_Dat(*str++);
  98.         }
  99. }
  100. /*=================================================
  101. *函数名称:Init_LCD1602
  102. *函数功能:1602初始化
  103. *调用:        LCD1602_Write_Cmd();
  104. =================================================*/
  105. void Init_LCD1602()
  106. {
  107.         LCD1602_Write_Cmd(0x38); //        设置16*2显示,5*7点阵,8位数据接口
  108.         LCD1602_Write_Cmd(0x0c); //开显示
  109. ……………………

  110. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
17_LCD1602基本显示程序.rar (1.26 MB, 下载次数: 320)




评分

参与人数 10黑币 +44 收起 理由
512123781 + 5 赞一个!
51lcx + 1 很给力!
brb_baymax + 4 赞一个!
huanchen + 5 很给力!
l1050742394 + 5 共享资料的黑币奖励!
太阳的暗面 + 5 绝世好帖!
yangg12 + 5 共享资料的黑币奖励!
泥盆葱 + 5 共享资料的黑币奖励!
lazy47 + 4 赞一个!
qjzyx + 5 赞一个!

查看全部评分

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

使用道具 举报

沙发
ID:319067 发表于 2018-4-29 18:55 | 只看该作者
我觉得挺有帮助的,真的
回复

使用道具 举报

板凳
ID:319067 发表于 2018-4-29 18:56 | 只看该作者
对于新手的帮助很大
回复

使用道具 举报

地板
ID:322723 发表于 2018-5-5 13:15 | 只看该作者
我要我要
回复

使用道具 举报

5#
ID:318310 发表于 2018-5-9 11:06 | 只看该作者
为什么没有主函数?
回复

使用道具 举报

6#
ID:326015 发表于 2018-5-9 16:18 来自手机 | 只看该作者
新手正在学习,感谢分享
回复

使用道具 举报

7#
ID:340522 发表于 2018-5-29 13:15 | 只看该作者
手动点赞,感谢分享。
回复

使用道具 举报

8#
ID:340651 发表于 2018-5-29 15:45 | 只看该作者
黑币不足,怎么办?下不了。
回复

使用道具 举报

9#
ID:73182 发表于 2018-6-19 09:15 | 只看该作者
感谢分享。
回复

使用道具 举报

10#
ID:352673 发表于 2018-6-19 10:15 来自手机 | 只看该作者
sch3462 发表于 2018-5-29 15:45
黑币不足,怎么办?下不了。

多评论或者发贴
回复

使用道具 举报

11#
ID:313328 发表于 2018-6-19 17:41 | 只看该作者
感谢分享,你这PCB板子怎么做的,有资料吗
回复

使用道具 举报

12#
ID:138001 发表于 2018-6-28 11:29 | 只看该作者
感谢分享
回复

使用道具 举报

13#
ID:365360 发表于 2018-7-5 09:36 | 只看该作者
很给力
回复

使用道具 举报

14#
ID:371425 发表于 2018-7-14 13:28 | 只看该作者
谢谢了
回复

使用道具 举报

15#
ID:354475 发表于 2018-7-14 15:11 | 只看该作者
谢谢分享~~~~~~~~~~~~~
回复

使用道具 举报

16#
ID:392781 发表于 2018-9-3 09:06 | 只看该作者
赞一个!
回复

使用道具 举报

17#
ID:395482 发表于 2018-9-8 21:48 | 只看该作者
我觉的挺有帮助的,对于一个小白来说,这就是个指导程序呀
回复

使用道具 举报

18#
ID:72065 发表于 2018-10-1 10:35 | 只看该作者
感谢分享,嘿嘿,程序代码清晰
回复

使用道具 举报

19#
ID:436574 发表于 2018-11-30 15:10 | 只看该作者
下载看看
回复

使用道具 举报

20#
ID:419999 发表于 2018-12-29 11:20 | 只看该作者
万分感谢
回复

使用道具 举报

21#
ID:486476 发表于 2019-3-14 21:21 | 只看该作者
为什么我下了程序后还是不会显示
回复

使用道具 举报

22#
ID:294209 发表于 2019-6-12 14:15 | 只看该作者
很不错
谢谢!
回复

使用道具 举报

23#
ID:561745 发表于 2019-6-13 14:05 | 只看该作者
感谢分享~~~
回复

使用道具 举报

24#
ID:569767 发表于 2019-6-22 22:57 来自手机 | 只看该作者
我觉得非常有帮助
回复

使用道具 举报

25#
ID:539741 发表于 2019-9-23 21:22 | 只看该作者
弄好后屏幕第一行全黑,是不是说我的屏幕坏了?
回复

使用道具 举报

26#
ID:96941 发表于 2019-10-2 21:04 | 只看该作者
试了几个1602程序,这个是最好用的,注释非常详细,赞
回复

使用道具 举报

27#
ID:710722 发表于 2020-3-25 18:42 | 只看该作者
感谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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