生活随笔
收集整理的這篇文章主要介紹了
LCD1602简易驱动程序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
LCD1602驅(qū)動(dòng)程序
簡(jiǎn)單幾步配置即可驅(qū)動(dòng)LCD1602
LCD1602的幾個(gè)可編程的引腳為RS RW E DB0-DB7
MCU的引腳配置輸入輸出參考自己使用的規(guī)格書
只需要了解如下規(guī)則就行
RW — 讀寫控制,RW = 0時(shí),對(duì)DB0-DB7寫數(shù)據(jù),RW = 1時(shí),可讀DB0-DB7的數(shù)據(jù),一般是寫數(shù)據(jù)并顯示,RW=0。RS — 此位表明寫的數(shù)據(jù)是 指令(0)或者數(shù)據(jù)(1)(兩者作用不同),寫指令時(shí)候,LCD1602內(nèi)部的IC會(huì)進(jìn)行配置,寫數(shù)據(jù)時(shí),會(huì)顯示數(shù)據(jù)。E — Enable 腳,上升沿表示開始傳輸數(shù)據(jù),下降沿表示傳輸結(jié)束BD0-DB7 — 并行傳輸數(shù)據(jù)口
//=========寫數(shù)據(jù)部分
//指令一般在配置時(shí)使用
void LcdWriteCmd(unsigned char Data) //寫命令
{#if 1//LcdReady(); //可等待lcd準(zhǔn)備好再傳輸數(shù)據(jù),簡(jiǎn)化代碼先不添加LCD_RS = 0;LCD_RW = 0;LCD_DATA = Data;delay_ms(1); //此處需要延時(shí)給LCD處理時(shí)間LCD_EN = 1;delay_ms(10); LCD_EN = 0;#endif
}void LcdWriteData(unsigned char Data) //寫數(shù)據(jù)
{#if 1LCD_RS = 1;LCD_RW = 0;LCD_DATA = Data;delay_ms(1); //此處需要延時(shí)給LCD處理時(shí)間LCD_EN = 1;delay_ms(10);LCD_EN = 0;#endif
}
//=======初始化LCD1602
void Lcd1602Init(void)
{LcdWriteCmd(0X01); //清屏LcdWriteCmd(0X38); //顯示模式LcdWriteCmd(0X0C); //顯示開,光標(biāo)設(shè)置LcdWriteCmd(0X06); //光標(biāo)移動(dòng)設(shè)置
}
//========設(shè)置LCD1602顯示的位置
void LcdSetCursor(unsigned char x,unsigned char y)
{if(y == 0)LcdWriteCmd(x | 0x80);else if(y == 1)LcdWriteCmd(x | 0x80 | 0x40);
}//顯示字符串
void LcdShowStr(unsigned char *Data,unsigned x,unsigned y)
{LcdSetCursor(x,y);while(*Data != '\0')LcdWriteData(*Data++);
}
最后調(diào)用
void main()
{unsigned char *str = "hello";Lcd1602Init();LcdShowStr(str,3,0);LcdShowStr("hahahaha",2,1);while(1);
}
總結(jié)
以上是生活随笔為你收集整理的LCD1602简易驱动程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。