<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è) > 嵌入式系統 > 設計應用 > 學(xué)習單片機的日記

學(xué)習單片機的日記

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
void display(uchar aa,uchar bb,uchar cc,uchar bai ,uchar shi,uchar ge)

{
dula=1;
P0=table[aa];
dula=0;
P2=0;
delay(5);

dula=1;
P0=table[bb];
dula=0;
P2=1;
delay(5);
dula=1;
P0=table[cc];
dula=0;
P2=2;
delay(5);
dula=1;
P0=table[bai];
dula=0;
P2=3;
delay(5);

dula=1;
P0=table[shi];
dula=0;
P2=4;
delay(5);
dula=1;
P0=table[ge];
dula=0;
P2=5;
delay(5);


}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);

}



三月31日:今天學(xué)完矩陣鍵盤(pán),終于會(huì )編了,弄了好久。。。。(今天開(kāi)始記錄思想,幫我加強記憶并自己再理解一遍)

#include /reg52.h是頭文件,包含了下列關(guān)鍵字
#define uint unsigned int /定義無(wú)符號型整數
#define uchar unsigned char /定義無(wú)符號型字符型
sbit dula=P3^7; /數碼管的段是由P3.7引腳控制,位聲明下
sbit wela=P2; /數碼管的位選是由P2引腳控制,東流電子的板子位選是由譯碼器控制
uchar temp,num;

void delay(uint z); /延時(shí)函數聲明

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, /數碼管的數組
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void main() /主函數
{
dula=1; /首先將數碼管不顯示,段選是由鎖存器控制,將鎖存器賦值1打開(kāi)鎖存器,
P0=0; / 往里面輸入數據再賦值0關(guān)閉鎖存器
dula=0;
P2=0; /我的板子的數碼管是由譯碼器控制,通過(guò)向P2口輸入不同的值進(jìn)而控制不同數碼管,0代表第一個(gè)數碼管
while(1) /主循環(huán),while語(yǔ)句當()里的值為1是一直循環(huán){ }里的語(yǔ)句,不為1則跳出語(yǔ)句
{
P1=0xfe; /如上圖所示P1指的是第一行鍵盤(pán),矩陣鍵盤(pán)的檢測是給除了第一行賦值0外全部賦值為1,也就是111111
temp=P1; 10,再將P1值賦給temp,讓后temp和0xf0(11110000)與(邏輯與)原理是:先掃描第一行,將其他端
temp=temp&0xf0; /口賦值1,當有按鍵按下時(shí)有一列為0,列是在高四位如果是第一個(gè)鍵按下就是0111 0111和0xf0與下就不為0xf0
if(temp!=0xf0) /如果temp不為0xfo(就相當于有按鍵被按下)
{
delay(10); 延時(shí)消抖
temp=P1; 再將P1值賦給temp
temp=temp&0xf0; 再和0xf0邏輯與
if(temp!=0xf0) 再判斷是否按鍵
{
temp=P1; 將P1值重新賦給temp
switch(temp) swith語(yǔ)句是多條件語(yǔ)句,()中temp是表達式,case(表達式):對應語(yǔ)句,。break是停止
{ switch語(yǔ)句跳出
case 0xee:num=1; 如果是按第一個(gè)鍵就在數碼管上顯示0(為啥不是1?下面解釋?zhuān)?div> break;
case 0xde:num=2; 如果按第一行第二個(gè)鍵在數碼管上顯示1
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}
dula=1;
P0=table[num-1]; 數碼管顯示[ ]中是上面聲明數組中的值,num-1對應數組的值(num為1則代表數組的0)
dula=0;
}
}
P1=0xfd;
temp=P1; 以下就是不同行數的檢測,檢測第二行就給P1.2賦值0,改變下P1的值和num值就可以進(jìn)行第
temp=temp&0xf0; 二行以及第三第四行的鍵盤(pán)是否按下
if(temp!=0xf0)
{
delay(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xfe)
{
temp=P1;
switch(temp)
{
case 0xed:num=5;
break;
case 0xdd:num=6;
break;
case 0xbd:num=7;
break;
case 0x7d:num=8;
break;
}
dula=1;
P0=table[num-1];
dula=0;
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xfe)
{
temp=P1;
switch(temp)
{
case 0xeb:num=9;
break;
case 0xdb:num=10;
break;
case 0xbb:num=11;
break;
case 0x7b:num=12;
break;
}
dula=1;
P0=table[num-1];
dula=0;
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P1;
temp=temp&0xf0;
if(temp!=0xfe)
{
temp=P1;
switch(temp)
{
case 0xe7:num=13;
break;
case 0xd7:num=14;
break;
case 0xb7:num=15;
break;
case 0x77:num=16;
break;
}
dula=1;
P0=table[num-1];
dula=0;

關(guān)鍵詞: 單片機日

評論


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