**學習LCD1602的識訓
LCD顯示方面每行顯示16個字符,一共可以顯示兩行,它是字符型液晶,以并行方式居多,但也有并、串同時具有的,
1602操作介紹
1、介面信號的說明

2、技術引數
顯示容量:16×2個字符
作業電流:2.0mA(5.0v)
模塊最佳作業電壓:5.0v
字符尺寸:2.95×4.35mm
3、基本操作時序
讀狀態 輸入:RS=L,R/W=H,E=H 輸出:D0~D7=狀態字,
讀資料 輸入:RS=H,R/W=H,E=H 輸出:無,
寫命令 輸入:RS=L,R/W=L,D0~D7=指令碼,E=高脈沖 輸出:D0~D7=資料,
寫資料 輸入:RS=H,R/W=L,D0~D7=資料,E=高脈沖 輸出:無,
4、初始化設定
指令碼:00111000 功能:設定16×2顯示,5×7點陣,八位資料介面,

本次實驗是用51單片機來進行操作的(不管什么版本,基本操作都一樣),其電路圖如圖所示

程式分析
LCD1602
void write_com(uchar com)
{
lcdrs=0; //選則寫命令模式
P0=com; //將要寫的命令字送到資料總線上
delay(5); //稍作延時以待資料穩定
lcden=1; //使能端給一高脈沖
delay(5); //稍做延時
lcden=0; //使能端置為零已完成高脈沖
}
void write_data(uchar date)
{
lcdrs=1; //選擇讀命令模
P0=date; //從資料總線上讀命令
delay(1000); //稍作延時以待資料穩定
lcden=1; //使能端給一高脈沖
delay(1000); //稍作延時
lcden=0; //使能端置為零已完成高脈沖
}
void init()
{
dula=0; //關閉U1鎖存端
wela=0; //關閉U2鎖存端
lcden=0; //使能端置為零已完成高脈沖
write_com(0x38); //設定16×2顯示,
write_com(0x0c); //設定開顯示
write_com(0x06); //寫一個字符后地址指標自動加一
write_com(0x01); //顯示0,資料指標為0
}
主函式
void main()
{
{
init();
write_com(0x80); //第一行寫資料
for(num=0;num<16;num++)
{
write_data(table[num]); //根據回圈陳述句輸出字串陣列table[]字符
delay(5); //稍作延時
}
write_com(0x80+0x40); //第二行寫資料
for(num=0;num<11;num++)
{
write_data(table1[num]); //根據回圈陳述句輸出字串陣列table1[]字符
delay(5);
}
}
for(num=0;num<16;num++)
{
write_com(0x1c); //整屏右移
delay(200);//延時200毫秒
}
while(1);
}
延時函式
void delay(uint x) //設定延時函式
{
uint i,j;
for(i=x;i>0;i--) //i=xms,即延時x毫秒
for(j=110;j>0;j--);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278937.html
標籤:其他
