当前位置:   article > 正文

LCD1602教程(一)_lcd1602初始化

lcd1602初始化

目录

LCD1602主要技术参数:

引脚说明:

接线说明:

基本操作时序:

RAM地址映射图:

指令说明:

初始化设置

显示模式设置

显示开/关及光标设置

数据控制

数据指针设置

其他设置

初始化过程(复位过程)

参考程序:

效果图:

附录:

读操作时序

写操作时序

时序参数


LCD1602主要技术参数:

显示容量16 X 2 个字符
芯片工作电压4.5 ~ 5.5V
工作电流2.0 mA(5.0V)
模块最佳工作电压5.0V
字符尺寸2.95 X 4.35(WXH)mm

 

引脚说明:

编号符号引脚说明编号符号引脚说明
1VSS电源地9D2Data I/O
2VDD电源正极10D3Data I/O
3VL液晶显示偏压信号11D4Data I/O
4RS数据/命令选择端(H/L)12D5Data I/O
5R/W读/写选择端(H/L)13D6Data I/O
6E使能信号14D7Data I/O
7D0Data I/O15BLA背光源正极
8D1Data I/O16BLK背光源负极

 

接线说明:

基本操作时序:

 输入输出
读状态RS=L,RW=H,E=HD0 ~ D7 =状态字
写指令RS=L,RW=L,D0 ~ D7 =,E=高脉冲
读数据RS=H,RW=H,E=HD0 ~ D7 =数据
写数据RS=H,RW=L,D0 ~ D7 =,E=高脉冲

RAM地址映射图:

指令说明:

初始化设置

显示模式设置

显示开/关及光标设置

数据控制

   控制器内部设有一个数据地址指针,用户可以通过它们来访问内部的全部80字节RAM。

数据指针设置

其他设置

初始化过程(复位过程)

写指令 38H :显示模式设置

写指令 08H :显示关闭

写指令 01H :显示清屏

写指令 06H :显示光标移动位置

写指令 0CH :显示开及光标设置

 

参考程序:

  1. /*
  2. 接线说明:
  3. RS=P3^5;RW=P3^6;EN=P3^7;
  4. D0~D7=P2^0~P2^7;
  5. BLA=+5V;BLK=GND;
  6. VSS=GND;VDD=+5V;
  7. VL引脚外接1K电阻然后接入GND;
  8. */
  9. #include<reg52.h>
  10. #include<intrins.h>
  11. #define uchar unsigned char
  12. #define uint unsigned int
  13. uchar num;
  14. uint i,j;
  15. sbit LCD1602_RS=P3^5;
  16. sbit LCD1602_RW=P3^6;
  17. sbit LCD1602_EN=P3^7;
  18. uchar code table1[]="MCU:STC89C52RC";
  19. uchar code table2[]=" 2020-12-28";
  20. void Delay500ms();//作为逐个字符之间的显示时间
  21. void Delay5ms();//时序图中Tpw
  22. void init();//液晶初始化
  23. void LCD1602_RWite_com(uchar com);//写命令函数
  24. void LCD1602_RWite_data(uchar dat);//写数据函数
  25. void main()
  26. {
  27. P2=0;
  28. init();
  29. LCD1602_RWite_com(0x80);
  30. for(num=0;num<14 ;num++)//14table1的字符的长度
  31. {
  32. LCD1602_RWite_data(table1[num]);
  33. Delay500ms();
  34. }
  35. LCD1602_RWite_com(0x80+0x40);
  36. for(num=0;num<15 ;num++)//15table2的字符的长度
  37. {
  38. LCD1602_RWite_data(table2[num]);
  39. Delay500ms();
  40. }
  41. while(1);
  42. }
  43. void Delay500ms() //@11.0592MHz
  44. {
  45. uchar i, j, k;
  46. _nop_();
  47. i = 4;
  48. j = 129;
  49. k = 119;
  50. do
  51. {
  52. do
  53. {
  54. while (--k);
  55. } while (--j);
  56. } while (--i);
  57. }
  58. void Delay5ms() //@11.0592MHz
  59. {
  60. uchar i, j;
  61. i = 9;
  62. j = 244;
  63. do
  64. {
  65. while (--j);
  66. } while (--i);
  67. }
  68. void LCD1602_RWite_com(uchar com) //写命令
  69. {
  70. LCD1602_RS=0;
  71. LCD1602_RW=0;
  72. LCD1602_EN=0;
  73. P2=com;
  74. LCD1602_EN=1;
  75. Delay5ms();
  76. LCD1602_EN=0;
  77. }
  78. void LCD1602_RWite_data(uchar dat) //写数据
  79. {
  80. LCD1602_RS=1;
  81. LCD1602_RW=0;
  82. LCD1602_EN=0;
  83. P2=dat;
  84. LCD1602_EN=1;
  85. Delay5ms();
  86. LCD1602_EN=0;
  87. }
  88. void init() //初始化
  89. {
  90. LCD1602_RWite_com(0x38);//显示模式设置
  91. LCD1602_RWite_com(0x08);//显示关闭
  92. LCD1602_RWite_com(0x01);//显示清屏
  93. LCD1602_RWite_com(0x06);//显示光标移动设置
  94. LCD1602_RWite_com(0x0f);//显示开及光标设置
  95. }

效果图:

附录:

读操作时序

写操作时序

时序参数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/501852
推荐阅读
相关标签
  

闽ICP备14008679号