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 |
?
引腳說明:
| 編號 | 符號 | 引腳說明 | 編號 | 符號 | 引腳說明 |
| 1 | VSS | 電源地 | 9 | D2 | Data I/O |
| 2 | VDD | 電源正極 | 10 | D3 | Data I/O |
| 3 | VL | 液晶顯示偏壓信號 | 11 | D4 | Data I/O |
| 4 | RS | 數據/命令選擇端(H/L) | 12 | D5 | Data I/O |
| 5 | R/W | 讀/寫選擇端(H/L) | 13 | D6 | Data I/O |
| 6 | E | 使能信號 | 14 | D7 | Data I/O |
| 7 | D0 | Data I/O | 15 | BLA | 背光源正極 |
| 8 | D1 | Data I/O | 16 | BLK | 背光源負極 |
?
接線說明:
基本操作時序:
| ? | 輸入 | 輸出 |
| 讀狀態 | RS=L,RW=H,E=H | D0 ~ D7 =狀態字 |
| 寫指令 | RS=L,RW=L,D0 ~ D7 =,E=高脈沖 | 無 |
| 讀數據 | RS=H,RW=H,E=H | D0 ~ D7 =數據 |
| 寫數據 | RS=H,RW=L,D0 ~ D7 =,E=高脈沖 | 無 |
RAM地址映射圖:
指令說明:
初始化設置
顯示模式設置
顯示開/關及光標設置
數據控制
控制器內部設有一個數據地址指針,用戶可以通過它們來訪問內部的全部80字節RAM。
數據指針設置
其他設置
初始化過程(復位過程)
寫指令 38H :顯示模式設置
寫指令 08H :顯示關閉
寫指令 01H :顯示清屏
寫指令 06H :顯示光標移動位置
寫指令 0CH :顯示開及光標設置
?
參考程序:
/* 接線說明:RS=P3^5;RW=P3^6;EN=P3^7;D0~D7=P2^0~P2^7;BLA=+5V;BLK=GND;VSS=GND;VDD=+5V;VL引腳外接1K電阻然后接入GND; */ #include<reg52.h> #include<intrins.h>#define uchar unsigned char #define uint unsigned int uchar num; uint i,j;sbit LCD1602_RS=P3^5; sbit LCD1602_RW=P3^6; sbit LCD1602_EN=P3^7;uchar code table1[]="MCU:STC89C52RC"; uchar code table2[]=" 2020-12-28";void Delay500ms();//作為逐個字符之間的顯示時間 void Delay5ms();//時序圖中Tpw void init();//液晶初始化 void LCD1602_RWite_com(uchar com);//寫命令函數 void LCD1602_RWite_data(uchar dat);//寫數據函數void main() {P2=0;init();LCD1602_RWite_com(0x80);for(num=0;num<14 ;num++)//14為table1的字符的長度{LCD1602_RWite_data(table1[num]);Delay500ms(); }LCD1602_RWite_com(0x80+0x40);for(num=0;num<15 ;num++)//15為table2的字符的長度{LCD1602_RWite_data(table2[num]);Delay500ms();} while(1); }void Delay500ms() //@11.0592MHz {uchar i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i); }void Delay5ms() //@11.0592MHz {uchar i, j;i = 9;j = 244;do{while (--j);} while (--i); } void LCD1602_RWite_com(uchar com) //寫命令 {LCD1602_RS=0;LCD1602_RW=0;LCD1602_EN=0;P2=com;LCD1602_EN=1;Delay5ms();LCD1602_EN=0;} void LCD1602_RWite_data(uchar dat) //寫數據 {LCD1602_RS=1;LCD1602_RW=0;LCD1602_EN=0;P2=dat;LCD1602_EN=1;Delay5ms();LCD1602_EN=0;}void init() //初始化 {LCD1602_RWite_com(0x38);//顯示模式設置LCD1602_RWite_com(0x08);//顯示關閉LCD1602_RWite_com(0x01);//顯示清屏LCD1602_RWite_com(0x06);//顯示光標移動設置LCD1602_RWite_com(0x0f);//顯示開及光標設置 }效果圖:
附錄:
讀操作時序
寫操作時序
時序參數
總結
以上是生活随笔為你收集整理的LCD1602教程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业互联网有什么价值?
- 下一篇: PGM---pgmpy学习