生活随笔
收集整理的這篇文章主要介紹了
LCD1602简易驱动程序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
LCD1602驅(qū)動程序
簡單幾步配置即可驅(qū)動LCD1602
LCD1602的幾個可編程的引腳為RS RW E DB0-DB7
MCU的引腳配置輸入輸出參考自己使用的規(guī)格書
只需要了解如下規(guī)則就行
RW — 讀寫控制,RW = 0時,對DB0-DB7寫數(shù)據(jù),RW = 1時,可讀DB0-DB7的數(shù)據(jù),一般是寫數(shù)據(jù)并顯示,RW=0。RS — 此位表明寫的數(shù)據(jù)是 指令(0)或者數(shù)據(jù)(1)(兩者作用不同),寫指令時候,LCD1602內(nèi)部的IC會進行配置,寫數(shù)據(jù)時,會顯示數(shù)據(jù)。E — Enable 腳,上升沿表示開始傳輸數(shù)據(jù),下降沿表示傳輸結(jié)束BD0-DB7 — 并行傳輸數(shù)據(jù)口
//=========寫數(shù)據(jù)部分
//指令一般在配置時使用
void LcdWriteCmd(unsigned char Data) //寫命令
{#if 1//LcdReady(); //可等待lcd準(zhǔn)備好再傳輸數(shù)據(jù),簡化代碼先不添加LCD_RS = 0;LCD_RW = 0;LCD_DATA = Data;delay_ms(1); //此處需要延時給LCD處理時間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); //此處需要延時給LCD處理時間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)移動設(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简易驱动程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。