LCD1602作為常見的并口數(shù)據(jù)屏幕,因為驅(qū)動簡單,相較數(shù)碼管可以顯示更多的內(nèi)容,所以應(yīng)用很多,當然了,不及LCD單色液晶屏和彩色LCD屏,可以操控每個像素點。
這里分享的是2個IO口驅(qū)動LCD1602,當前市面上是有這樣的方案的,不過用的是IIC芯片擴展IO口,本質(zhì)上還是增加了IO口數(shù)量。當然了,移位寄存器也是擴展IO口,這里擴展的是輸出類型。
回歸正題,原理圖,時序圖如下,具體的原理分析,可以閱讀原文,觀看視頻。
主要函數(shù)代碼,此代碼用于STC8單片機,其他單片機可能需要修改部分內(nèi)容,尤其是延時部分,LCD1602數(shù)據(jù)處理需要時間,延時不夠,是會出問題的。
底層驅(qū)動函數(shù)
//LCD1602寫入數(shù)據(jù)或指令
//0指令,1數(shù)據(jù)
void LCD1602_Write_Data(bit CD,u8 dat)
{
u8 i;
//先傳輸高4位
//第一步,低電平
for(i=0;i< 6;i++)
{
HC164_CP=0;
HC164_DI=0;//先傳輸最高位;
HC164_CP=1;
}
HC164_CP=0;
HC164_DI=1;//E高電平
HC164_CP=1;
HC164_CP=0;
HC164_DI=CD;//傳輸命令位
HC164_CP=1;
for(i=0;i< 4;i++)//傳輸數(shù)據(jù)高4位
{
HC164_CP=0;
HC164_DI=dat&0x80;//先傳輸最高位;
HC164_CP=1;
dat <=1;//次高位左移到最高位
}
HC164_DI=1;HC164_DI=0;//LCD1602吸收數(shù)據(jù)
//如果DI=0;那么此時DI=1;DI=0即可
//如果DI=1;那么DI=0即可
//傳輸?shù)?位數(shù)據(jù),操作同上
for(i=0;i< 6;i++)
{
HC164_CP=0;
HC164_DI=0;
HC164_CP=1;
}
HC164_CP=0;
HC164_DI=1;//E高電平
HC164_CP=1;
HC164_CP=0;
HC164_DI=CD;//傳輸命令位
HC164_CP=1;
//這里的移位可以接著傳輸
for(i=0;i< 4;i++)//傳輸?shù)?位數(shù)據(jù)
{
HC164_CP=0;
HC164_DI=dat&0x80;//先傳輸高位;
HC164_CP=1;
dat <=1;//次高位左移到最高位
}
HC164_DI=1;HC164_DI=0;//LCD1602吸收數(shù)據(jù)
}
延時函數(shù)
void Delay100us() //@24.000MHz
{
unsigned char i, j;
i = 4;
j = 27;
do
{
while (--j);
} while (--i);
}
//測試600us延時能用
void LCD1602_Delay()
{
Delay100us();Delay100us();
Delay100us();Delay100us();
Delay100us();Delay100us();
Delay100us();Delay100us();
}
初始化代碼
void LCD1602_Init()//LCD1602初始化
{
LCD1602_Write_Data(0,0x02);//光標復(fù)位
LCD1602_Delay();
LCD1602_Write_Data(0,0x28);//四位總線,雙行顯示
LCD1602_Delay();
LCD1602_Write_Data(0,0x01);//清除顯示
LCD1602_Delay();
LCD1602_Write_Data(0,0x06);//光標移動方向
LCD1602_Delay();
LCD1602_Write_Data(0,0x0c);//整體顯示開,無光標
LCD1602_Delay();
LCD1602_Write_Data(0,0x14);//光標隨著字右移
LCD1602_Delay();
}
以上代碼差不多了,工程代碼分享到粉絲群了,公眾號后臺可以加粉絲群下載。
PCB工程分享,此工程本人沒有測試打樣。
總結(jié):使用74HC164+與門,2個IO口就能控制LCD1602了,但是驅(qū)動效率低一些。沒有74HC595的3線控制快。
-
單片機
+關(guān)注
關(guān)注
6067文章
44997瀏覽量
650776 -
lcd
+關(guān)注
關(guān)注
34文章
4520瀏覽量
171674 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1889瀏覽量
92655 -
LCD1602
+關(guān)注
關(guān)注
14文章
607瀏覽量
53537 -
IO口
+關(guān)注
關(guān)注
3文章
170瀏覽量
25020
發(fā)布評論請先 登錄
基于單片機虛擬串口驅(qū)動LCD1602的電路仿真
基于51單片機的LCD1602四數(shù)據(jù)線驅(qū)動程序,LCD1602單片機驅(qū)動程序
使用單片機進行LCD1602讀寫驅(qū)動函數(shù)的例程免費下載

STM32單片機驅(qū)動LCD1602的源代碼免費下載

51單片機驅(qū)動LCD1602顯示原理及例程

單片機:LCD1602 的應(yīng)用實驗

51單片機驅(qū)動——LCD1602

LCD1602液晶顯示屏驅(qū)動文件

評論