lcd1602 屏驅動(自定義字符)
2、代碼
3、自定義字符
時序圖
代碼:
#include
#include
sbit RS = P2^4; //定義端口
sbit RW = P2^5;
sbit EN = P2^6;
void Delayus(unsigned char t) // us級別延時
{
while(--t);
}
void Delayms(unsigned char t)// ms級別延時
{
while(t--)
{
//大致延時1mS
Delayus(245);
Delayus(245);
}
}
bit m_1602() //判斷1602是否忙
{
P0 = 0xFF; //準備讀取
RS = 0;
RW = 1;
EN = 0;
_nop_();
EN = 1; //產生高電平
return (bit)(P0 & 0x80);
}
void x_1602(bit i,unsigned char j) //參數一是寫(0、寫指令 1、寫數據),參數二是寫入的8位數據
{
while(m_1602())
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
RS = i;
RW = 0;
EN = 1;
P0 = j;
_nop_();
EN = 0; //產生下降沿
}
void qp_1602() //清屏函數
{
x_1602(0,0x01); //第一個參數是:寫入的類型(0、寫指令 1、寫數據),第一個參數是:寫入的數據
Delayms(5);
}
評論