<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è) > 嵌入式系統 > 設計應用 > 單片機實(shí)習報告——點(diǎn)陣的動(dòng)態(tài)顯示

單片機實(shí)習報告——點(diǎn)陣的動(dòng)態(tài)顯示

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò ) 收藏

void adjust_moveleft(uchar x,uchar *dat) //第i個(gè)字符逐列左移
{
uchar j,k;
for(j=0;j<8;j++)
{
k=*dat;
k<<=x;
temp[j]=k;
dat++;
}
}
void adjust_moveright(uchar x,uchar *dat) //第i個(gè)字符顯示出x列后存儲在temp數組中
{
uchar j,k;
for(j=0;j<8;j++)
{
k=*dat;
k>>=x;
temp[j]=k;
dat++;
}
}
void disp_moveleft(uchar *dat)
{
uchar i,t;
for(i=8;i>0;i--) //逐列顯示出字符
{
adjust_moveright(i,dat);
t=time;
disp_dat(t);
}
for(i=0;i<=8;i++) //字符顯示完全后,逐列左移直到全部移出
{
adjust_moveleft(i,dat);
t=time;
disp_dat(t);
}
}
void adjust_jingtai(uchar *dat)
{
uchar i;
for(i=0;i<8;i++)
{
temp[i]=*dat;
dat++;
}
}
void disp_moveup(uchar *dat)
{
uchar i,j,t;
for(i=0;i<6;i++)
{
for(j=0;j<8;j++)
{
dat++;
adjust_jingtai(dat);
t=time;
disp_dat(t);
}
disp_dat(30);
}
}
void main()
{
while(1)
{
uchar j;
for(j=0;j<8;j++)
temp[j]=smile[2][j];
disp_dat(30);
if(key1==0)
{
bee=0;
delayms(1);
bee=1;
delayms(1);
if(key1==0) //向左滾動(dòng)
{
uchar i;
for(i=1;i<6;i++)
{
disp_moveleft(&sz[i][0]);
}
}
while(key1==0);
}
if(key2==0)
{
bee=0;
delayms(1);
bee=1;
delayms(1);
if(key2==0) //向上滾動(dòng)
{
disp_moveup(&sz[0][0]);
}
while(key2==0);
}
if(key3==0)
{
delayms(1);
if(key3==0) //減速
{
time=time+1;
}
while(key3==0);
bee=0;
delayms(1);
bee=1;
}
if(key4==0)
{
delayms(1);
if(key4==0) //加速
{
if(time!=1)
time=time-1;
}
while(key4==0);
bee=0;
delayms(1);
bee=1;
}
}
}

四、誤差分析及改進(jìn)

該實(shí)例是控制點(diǎn)陣顯示的程序,不涉及時(shí)間,也就沒(méi)有時(shí)間的誤差。但是主程序中用的是掃描法檢測是否有鍵盤(pán)控制輸入,而且掃描過(guò)程中還插入了顯示動(dòng)態(tài)笑臉界面的程序段,掃描程序顯得稍有冗長(cháng),所以短暫的按鍵可能沒(méi)有被程序掃描到。

為了解決這個(gè)問(wèn)題,可以讓掃描程序變得簡(jiǎn)短清晰些,所以,將動(dòng)態(tài)笑臉改為了靜態(tài)的笑臉。對鍵盤(pán)的操作時(shí)間(即按鍵的時(shí)間)要適當長(cháng)些,以便被程序捕捉。為了便于控制時(shí)間的長(cháng)短,在程序中利用了蜂鳴器的功能,一旦按鍵操作被程序掃描到,蜂鳴器蜂鳴,以提示操作者鍵盤(pán)操作有效。

程序不足之處是:
1.鍵盤(pán)的操作不夠靈敏。
2.只能在一次滾動(dòng)結束后,即再次出現一個(gè)靜態(tài)笑臉時(shí)才能夠操作鍵盤(pán)。

如果改為中斷法響應鍵盤(pán),或許會(huì )更靈敏些。這需要四個(gè)中斷服務(wù)程序處理按鍵事件。并且把實(shí)現不同方向滾動(dòng)的程序段放在終端服務(wù)程序之外,可以解決第二個(gè)不足之處,即可以在滾動(dòng)過(guò)程中,響應不同的按鍵。




上一頁(yè) 1 2 下一頁(yè)

評論


技術(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>