LCD1602作為常見的并口數據屏幕,因為驅動簡單,相較數碼管可以顯示更多的內容,所以應用很多,當然了,不及LCD單色液晶屏和彩色LCD屏,可以操控每個像素點。
這里分享的是2個IO口驅動LCD1602,當前市面上是有這樣的方案的,不過用的是IIC芯片擴展IO口,本質上還是增加了IO口數量。當然了,移位寄存器也是擴展IO口,這里擴展的是輸出類型。
回歸正題,原理圖,時序圖如下,具體的原理分析,可以閱讀原文,觀看視頻。
主要函數代碼,此代碼用于STC8單片機,其他單片機可能需要修改部分內容,尤其是延時部分,LCD1602數據處理需要時間,延時不夠,是會出問題的。
底層驅動函數
//LCD1602寫入數據或指令
//0指令,1數據
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++)//傳輸數據高4位
{
HC164_CP=0;
HC164_DI=dat&0x80;//先傳輸最高位;
HC164_CP=1;
dat <=1;//次高位左移到最高位
}
HC164_DI=1;HC164_DI=0;//LCD1602吸收數據
//如果DI=0;那么此時DI=1;DI=0即可
//如果DI=1;那么DI=0即可
//傳輸低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++)//傳輸低4位數據
{
HC164_CP=0;
HC164_DI=dat&0x80;//先傳輸高位;
HC164_CP=1;
dat <=1;//次高位左移到最高位
}
HC164_DI=1;HC164_DI=0;//LCD1602吸收數據
}
延時函數
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);//光標復位
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工程分享,此工程本人沒有測試打樣。
總結:使用74HC164+與門,2個IO口就能控制LCD1602了,但是驅動效率低一些。沒有74HC595的3線控制快。
-
單片機
+關注
關注
6063文章
44915瀏覽量
646802 -
lcd
+關注
關注
34文章
4498瀏覽量
170667 -
數碼管
+關注
關注
32文章
1889瀏覽量
92208 -
LCD1602
+關注
關注
14文章
607瀏覽量
53318 -
IO口
+關注
關注
3文章
170瀏覽量
24734
發布評論請先 登錄
基于單片機虛擬串口驅動LCD1602的電路仿真
基于51單片機的LCD1602四數據線驅動程序,LCD1602單片機驅動程序
單片機:LCD1602 的應用實驗

51單片機驅動——LCD1602

LCD1602液晶顯示屏驅動文件

評論