?? lcd1602.h
字號:
#define uchar unsigned char
#define uint unsigned int
//----------------------------------------
//sbit dula=P2^6; // 數碼管段選
//sbit wela=P2^7; // 數碼管段選
//開發板硬件原因,其它地方則可刪除這兩句
//----------------------------------------
//-----------定義端口(具體情況,具體對待)------------
#define DATA_PORT P0 //定義數據端口 // 次處定義為P0口
sbit lcden=P2^7; //LCD使能信號(開發板為P3.5)
sbit lcdrs=P2^5; //LCD數據/命令選擇信號(開發板為P3.5)
sbit lcdrw=P2^6; //此處只寫不讀,故lcdrw接地處理
//----硬件電路改變時候只需修改以上4個------------------
//----------函數聲明---------------
void lcd_init(); //LCD初始化函數
void write_com(uchar); //寫命令函數
void write_data(uchar); //寫數據函數
void lcd_delay(uint); //延時函數
void cursor_flash(uchar,uchar); //光標在指定坐標閃爍
//----------------------------------
//**********LCD初始化函數開始*********
void lcd_init()
{
// dula=0; // 關閉數碼管顯示
// wela=0;
lcdrw=0; // 開發板硬件原因,其它地方則可刪除這兩句
lcden=0;
write_com(0x38); //設置顯示模式:16X2,5X7,8位數據接口
write_com(0x08);
write_com(0x01);
write_com(0x0c); //開顯示,顯示光標,光標閃爍
write_com(0x06); //讀寫一個字符后,地址指針及光標加一,且光標加一整屏顯示不移動
write_com(0x80); //設置光標指針
}
//-----------------------------
//**********寫命令函數開始************
void write_com(uchar com)
{
lcdrs=0; //低電平寫命令
DATA_PORT=com; //寫入命令,DATA_PORT為數據端口
lcd_delay(3); //延時約3ms
lcden=1; //LCD使能端置高電平
lcd_delay(5); //延時約5ms
lcden=0; //LCD使能端拉低電平
}
//---------------------------------
//**********寫數據函數開始************
void write_data(uchar dat)
{
lcdrs=1; //低電平寫數據
DATA_PORT=dat; //寫入命令,DATA_PORT為數據端口
lcd_delay(3); //延時約3ms
lcden=1; //LCD使能端置高電平
lcd_delay(5); //延時約5ms
lcden=0; //LCD使能端拉低電平
}
//==========================================
//--------光標在指定坐標閃爍函數----
void cursor_flash(uchar a,uchar b)
{
write_com(0x80+a*0x40+b);
write_com(0x14);
write_com(0x0f);
write_com(0x80+a*0x40+b);
}
//-----------延時函數---------------
void lcd_delay(uint k)
{
uint i,j;
for(i=k;i>0;i--)
for(j=50;j>0;j--);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -