欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
【1602液晶顯示問題】
[打印本頁]
作者:
2910221704
時間:
2017-5-29 11:15
標(biāo)題:
【1602液晶顯示問題】
我想通過鍵盤來切換lcd的顯示界面(共四個界面),我覺得思路沒問題,可是就是實現(xiàn)不了,下面是代碼
void main()
{
LcdInit();
while(1)
{
//key_return=Keyscan();
Operation(Keyscan());
Show(interface);
}
}
void T0Init()
{
}
/*void T0() interrupt 1
{
}*/
void Operation(uchar key)//界面切換
{
switch(interface)
{
case 1:if(key==10)
interface=2;
//運(yùn)行界面,啟動定時器,同時切換界面
if(key==12)
interface=3;//設(shè)置界面
if(key==16)
interface=1;
break;
case 2:if(key==13)
{
interface=4;//查詢界面
}
else if(key==11)
{
//TR0=0;
interface=1;
}
else if(key==12)
{
//TR0=0;
interface=3;
}
break;
case 3:if(key==10)
{
//TR0=1;
interface=2;
}
else if(key==11)
{
//TR0=0;
interface=1;
}
break;
case 4:if(key==11)
{
interface=2;
}
}
}
void Show(uchar n)
{
switch(n)
{
case 1:Interface_start();
break;
case 2:Interface_run();
break;
case 3:Interface_set();
break;
case 4:Interface_find();
break;
}
}
void refresh_date(uchar address,uchar date)
{
Write_cmd(0x80+address);
Write_data(date);
}
void Interface_start()//打開電源顯示界面
{
//Write_cmd(0x01);
Write_cmd(0x80);
for(num=0;num<16;num++)
{
Write_data(table[num]);
delay(20);
}
Write_cmd(0x80+0x40);//第二行顯示
for(num=0;num<16;num++)
{
Write_data(table1[num]);
delay(20);
}
Write_cmd(0x80+0x50);
Write_cmd(0x0c);//開顯示,不顯示光標(biāo),不閃爍
}
void Interface_run()//運(yùn)行界面
{
LcdInit();
for(num=0;num<16;num++)
{
Write_data(table3[num]);
delay(20);
}
Write_cmd(0x80+0x40);//第二行顯示
for(num=0;num<16;num++)
{
Write_data(table2[num]);
delay(20);
}
}
void Interface_set()//設(shè)置界面
{
Write_cmd(0x80+5);
Write_cmd(0x0f);
}
void Interface_find()//查詢界面
{
refresh_date(0x40+5,table2[5]);
refresh_date(0x40+6,table2[6]);
refresh_date(0x40+7,table2[7]);
refresh_date(0x40+8,table2[8]);
refresh_date(0x40+9,table2[9]);
refresh_date(0x40+10,table2[10]);
refresh_date(0x40+11,table2[11]);
}
void LcdInit()
{
wela=0;//lcd和數(shù)碼管共用P0
dula=0;//防止數(shù)碼管干擾
lcd_en=0;
Write_cmd(0x38);//設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)口
Write_cmd(0x0f);//開顯示,顯示光標(biāo),光標(biāo)閃爍
Write_cmd(0x06);
Write_cmd(0x01);//清除數(shù)據(jù),防止出現(xiàn)錯誤
Write_cmd(0x80);
}
void Write_cmd(uchar cmd)
{
rs=0;//數(shù)據(jù)/命令選擇段(h/l)
P0=cmd;
delay(5);
lcd_en=1;//使能信號,高脈沖
delay(5);
lcd_en=0;
}
void Write_data(uchar data_)
{
rs=1;
P0=data_;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
作者:
ahshmj
時間:
2017-5-29 16:00
其實這是最基本的。檢測取得按鍵值后,根據(jù)其值將程序跳轉(zhuǎn)到指定的顯示內(nèi)容即可。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1