久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > pic單片機兩個IO口四線驅動LCD1602

pic單片機兩個IO口四線驅動LCD1602

作者: 時間:2016-11-30 來源:網絡 收藏

//*******************************************************************
//函數名稱:LcdInit();
//輸入參數:無
//輸出參數:無
//功能描述:液晶初始化
//建造日期:2008.12.08
//*******************************************************************
void LcdInit(void)
{
unsigned char i = 3;

TxLs164(0x23); //接口設置

do
{
Dat = 1; //使能下沿
Dat = 0;
DelayUs(50); //延時等待
}
while (--i);

TxLs164(0x22); //四線模式

Dat = 1; //使能下沿
Dat = 0;
DelayUs(50); //延時等待

WriteData(0x28, 0); //接口設置
WriteData(0x0c, 0); //顯示打開
WriteData(0x01, 0); //顯示清屏
WriteData(0x06, 0); //光標右移
}

//*******************************************************************
//函數名稱:ShiftChar(*buff);
//輸入參數:緩沖區首址, 0 = 左移 1 = 右移
//輸出參數:無
//功能描述:移動字符
//建造日期:2008.12.08
//*******************************************************************
void ShiftChar(unsigned char *buff, unsigned char rl)
{
unsigned char temp, i;

if (rl & 0x01) //字符右移
{
temp = buff[15]; //取尾字符

for (i = 15; i > 0; i--)
{
buff[i] = buff[i - 1]; //數據右移
}

buff[0] = temp; //首尾交換
}

else //字符左移
{
temp = buff[0]; //取首字符

for (i = 0; i < 15; i++)
{
buff[i] = buff[i + 1]; //數據左移
}

buff[15] = temp; //字符交換
}
}

//*******************************************************************
//函數名稱:main();
//輸入參數:無
//輸出參數:無
//功能描述:主要程序
//建造日期:2008.12.08
//*******************************************************************
void main(void)
{
unsigned char i, rl;

PortInit(); //腳位設置
ConInit(); //配置設置
LcdInit(); //液晶設置

DelayMs(50); //短暫延時
AddrSite(0, 0); //坐標設置
PrintChar(TopChar); //發送字符

i = 0; //移動記數
rl = 0; //左右移動

while (1)
{
if (i++ > 200) //移動記數
{
i = 0; //記數清零
rl ^= 0x01; //移動取反
}

DelayMs(250); //延時顯示
ShiftChar(BotChar, rl); //移動字符

AddrSite(0, 1); //坐標設置
PrintChar(BotChar); //發送字符
}
}



源代碼下載:http://www.51hei.com/f/1602ym.rar
仿真文件下載:http://www.51hei.com/f/1602fz.rar


上一頁 1 2 下一頁

評論


技術專區

關閉