?? lcd1602.h
字號:
// 該頭文件定義了LCD1602的操作函數
/********************************************************************
功能:LCD1602驅動,4線連接,控制線和數據線共用一個端口:PtCD
*********************************************************************/
#define PtCD P0 //定義連接口線,
sbit DB7=PtCD^7;//數據口
sbit DB6=PtCD^6;//
sbit DB5=PtCD^5;//
sbit DB4=PtCD^4;//
sbit RS=P1^0;//控制口
sbit RW=P1^1;//
sbit E=P1^2; //
/********************聲明LCD1602函數*****************************/
void InitialLcd();
void WriteLcdInstr(uchar);
void WriteLcdData(uchar);
void CheckLcdBusy();
void WriteLcdBit(uchar t);
/********************定義LCD1602函數*****************************/
//-1--初始化函數
void InitialLcd()
{Delay(600);
RS=0;
RW=0;nop;
E=0;nop;
E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;
E=0;
Delay(200);
E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;
E=0;
Delay(5);
E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;
E=0;//設置4位操作;
WriteLcdInstr(0x01);//清屏
WriteLcdInstr(0x28);//設置4位操作,1行顯示,5x8
WriteLcdInstr(0x02);//光標歸位
WriteLcdInstr(0x06);//AC自動加1,畫面不動
WriteLcdInstr(0x0c);//顯示開,光標、閃爍關
}
//-2--寫指令函數
void WriteLcdInstr(uchar Temp)
{CheckLcdBusy();
RS=0;
RW=0;
E=0;nop;
E=1;nop;//寫字節高四位
WriteLcdBit(Temp);
E=0;nop;
E=1;nop;//寫字節低四位
WriteLcdBit(Temp<<4);
E=0;nop;
}
//-3--寫數據函數
void WriteLcdData(uchar Temp)
{CheckLcdBusy();
RS=1;
RW=0;
E=0;nop;
E=1;nop;//寫字節高四位
WriteLcdBit(Temp);
E=0;nop;
E=1;nop;//寫字節低四位
WriteLcdBit(Temp<<4);
E=0;nop;
}
//-4--查忙函數
void CheckLcdBusy()
{uchar Temp,t;
DB7=1;DB6=1;DB5=1;DB4=1;
RW=1;
RS=0;nop;
E=0;nop;
do {nop;
E=1;nop;nop;
Temp=PtCD;nop;nop;
E=0;nop;nop;
E=1;nop;nop;
t=PtCD;nop;nop;
E=0;nop;nop;
Temp&=0x80;
}while(Temp==0x80);
}
//-5--寫數據到四位數據口
sbit DBt=ACC^7;
void WriteLcdBit(uchar t)
{ACC=t;
DB7=DBt;
ACC<<=1;
DB6=DBt;
ACC<<=1;
DB5=DBt;
ACC<<=1;
DB4=DBt;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -