<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機C編程(十一、電話(huà)撥號模擬液晶顯示)

51單片機C編程(十一、電話(huà)撥號模擬液晶顯示)

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
*程序名稱(chēng):電話(huà)撥號模擬(液晶顯示)

*創(chuàng )建人:jumpmysoul
*完成日期:2009.06.06
*版本:V1.0
*功能說(shuō)明:按下電話(huà)鍵盤(pán)上的一個(gè)按鍵,在液晶顯示屏上相應的顯示出按下的
按鍵對應的字符,按下DEL鍵,則刪除一個(gè)字符 (不足之處:在刪除所有的字符后
光標不見(jiàn)了,如果繼續刪除幾次,再輸入的時(shí)候就要多按幾次按鍵)

本文引用地址:http://dyxdggzs.com/article/201611/322154.htm

#include
#define uchar unsigned char
#define uint unsigned int
#define LCDPORT P0
#define KEYP1
//#define WEIP2

sbit DEL=P3^0;
sbit LCDE=P3^5;
sbit LCDRW=P3^6;
sbit LCDRS=P3^7;

uchar code NUM[12]="0123456789*#";

uchar addr=0;

void WriteCMD(uchar);
void init();
void WriteData(uchar);
void Delete();

void Delay_ms(uint);
uchar KeyScan();
void main()
{
init();
while(1)
{
if(KeyScan()!=20)//判斷電話(huà)按鍵是否按下
{
addr++;//地址變量加1
WriteData(NUM[KeyScan()]);//在液晶上顯示按下的鍵值
Delay_ms(100);//延時(shí),作用是只顯示一個(gè)字符,如果沒(méi)有延時(shí),則會(huì )顯示一串字符
}

if(DEL==0)//判斷DEL按鍵是否按下
{
Delay_ms(10);
if(DEL==0)
while(DEL==0);
Delay_ms(10);
while(DEL==0);
Delete();
}
}

}
uchar KeyScan()
{
uchar temp=20;
KEY=0xef;//掃描第1列鍵
switch(KEY)
{
case 0xee:temp=1;break;
case 0xed:temp=4;break;
case 0xeb:temp=7;break;
case 0xe7:temp=10;break;
default:break;
}
KEY=0xdf;//掃描第2列鍵
switch(KEY)
{
case 0xde:temp=2;break;
case 0xdd:temp=5;break;
case 0xdb:temp=8;break;
case 0xd7:temp=0;break;
default:break;
}
KEY=0xbf;//掃描第3列鍵
switch(KEY)
{
case 0xbe:temp=3;break;
case 0xbd:temp=6;break;
case 0xbb:temp=9;break;
case 0xb7:temp=11;break;
default:break;
}
return(temp);//返回按鍵鍵值
}
void Delay_ms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void WriteCMD(uchar Command)
{
Delay_ms(10);//先延時(shí)。

LCDE=1;//然后把LCD改為寫(xiě)入命令狀態(tài)。
LCDRS=0;
LCDRW=0;

LCDPORT=Command;//再輸出命令。

LCDE=0;//最后執行命令。
}
void WriteData(uchar dat)
{
Delay_ms(10);//先延時(shí)。

LCDE=1;//然后把LCD改為寫(xiě)入數據狀態(tài)。
LCDRS=1;
LCDRW=0;

LCDPORT=dat;//再輸出數據。

LCDE=0;//最后顯示數據。
}
void init()
{
LCDRW=0;
LCDE=0;
WriteCMD(0x38);
WriteCMD(0x0f);
WriteCMD(0x06);
WriteCMD(0x01);
WriteCMD(0x80);
}
void Delete()
{
if( (addr--)>0)
{
WriteCMD(0x04);//讀寫(xiě)一個(gè)字符后地址指針減1,光標左移
WriteData( );
}
WriteCMD(0x06);//讀寫(xiě)一個(gè)字符后地址指針加1,光標右移

}



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>