專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機LCD1602底層驅(qū)動子程序

作者:寒竹子   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年03月23日   【字體:

晶振11.0592M

/**********************LCD1602底層驅(qū)動程序***************************/
/********************************************************************/
//delay: 延時xms
void delay(uint xms)
{
uchar i, j;
for(i = 0; i < xms; i++)
  for(j = 0; j < 110; j++);
}
//wait: 判忙等待
void wait()
{
P0 = 0xff;
do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}while(BUSY == 1);
EN = 0;
}
//write:cmd 寫入命令
void write_cmd(uchar cmd)
{
RS = 0;
RW = 0;
EN = 0;
P0 = cmd;
EN = 1;
EN = 0;
}
//write:data  寫入數(shù)據(jù)
void write_data(uchar datas)
{
RS = 1;
RW = 0;
EN = 0;
P0 = datas;
EN = 1;
EN = 0;
}
//send:string 發(fā)送一串字符
void send_string(uchar* str)
{
while(*str != '\0')
{
write_data(*str++);
}
}
//lcd1602:init LCD1602 顯示初始化
void lcd_init()
{
delay(15);
write_cmd(0x38);
delay(5);
write_cmd(0x38);
delay(5);
write_cmd(0x38);
wait();
write_cmd(0x38); //設(shè)置16 * 2,5 * 7點陣
wait();
write_cmd(0x08);
wait();
write_cmd(0x01);//清屏
wait();
write_cmd(0x06);
wait();
write_cmd(0x0c); //開顯示
}

 

關(guān)閉窗口

相關(guān)文章