五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

51單片機(jī)100例實(shí)例之17例

2021-02-01 15:12 作者:技術(shù)流阿宅  | 我要投稿

//項(xiàng)目名稱:數(shù)碼管顯示矩陣鍵盤按鍵值

//項(xiàng)目再創(chuàng)作者:科技小宅神

//完成時(shí)間:2021/01/21


proteus仿真圖


#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

//定義蜂鳴器接口位置

sbit BEEP = P3^0;

//七段數(shù)碼管數(shù)組:1~16-0

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};

//上次按鍵號(hào)和當(dāng)前按鍵序號(hào),在矩陣鍵盤中,序號(hào)范圍為0~15,16則為無(wú)按鍵

uchar Pre_KeyNO = 16,KeyNO = 16;


//延時(shí)子程序

void DelayMS(uint ms)

{

? uchar t;

while(ms--)

{

for(t=0;t<120;t++);

}

}

//矩陣鍵盤掃描子程序

void Keys_Scan()

{

? uchar Tmp;

P1 = 0x0f;//高4位置0,放入4行

DelayMS(1);

Tmp = P1 ^ 0x0f;//按鍵按下后0x0f變成0000 xxxx,

?//x中有1個(gè)為0,其他任為1,通過(guò)異或把3個(gè)1變成0,唯一的0變成1

switch(Tmp)//判斷按鍵發(fā)生于0~3那一列

{

case 1: KeyNO = 0; break;//第一列

case 2: KeyNO = 1; break;//第二列

case 4: KeyNO = 2; break;//第三列

case 8: KeyNO = 3; break;//第四列

default: KeyNO = 16;//無(wú)按鍵按下

}

P1 = 0xf0;//低4位置0,放入4列

DelayMS(1);

Tmp = P1 >> 4 ^ 0x0f;//按鍵按下后0x0f變成 xxxx 0000,

?//x中有1個(gè)為0,其他任為1,通過(guò)右移,高4位轉(zhuǎn)移到低4位,

?//并異或把3個(gè)1變成0,唯一的0變成1

? ? ? ? ? ? ? ? ??

switch(Tmp)//對(duì)0~3行分別附加起始值0,4,8,12

{

case 1: KeyNO += 0; break;

case 2: KeyNO += 4; break;

case 4: KeyNO += 8; break;

case 8: KeyNO += 12;

}

}

//蜂鳴器

void Beep()

{

? uchar i;

for(i=0;i<100;i++)

{

DelayMS(1);

BEEP = ~BEEP;//取反

}

BEEP = 0;//給低電平,恢復(fù)不響工作狀態(tài)

}

//主程序

void main()

{

? P0 = 0x00;//初始化

while(1)//死循環(huán)

{

P1 = 0xf0;//初始化

if(P1 != 0xf0)//當(dāng)有按下按鍵,則進(jìn)行矩陣鍵盤掃描子程序(獲得按鍵序號(hào))

? ?Keys_Scan();

if(Pre_KeyNO != KeyNO)//上次按鍵號(hào)和當(dāng)前按鍵序號(hào)不一致時(shí),

{

P0 = ~DSY_CODE[KeyNO];//通過(guò)按鍵值,在數(shù)組中取得相應(yīng)的值,并從P0口輸出

Beep();

Pre_KeyNO = KeyNO;//上次按鍵序號(hào)=當(dāng)前按鍵序號(hào)

}

DelayMS(100);

}

}


51單片機(jī)100例實(shí)例之17例的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
陵水| 寻乌县| 扎鲁特旗| 永州市| 白河县| 体育| 安达市| 建德市| 道真| 合肥市| 太仓市| 龙泉市| 苏尼特右旗| 绥中县| 浦城县| 满城县| 同江市| 喀什市| 玉屏| 清徐县| 隆化县| 营口市| 德惠市| 延吉市| 普兰店市| 四会市| 济南市| 玉田县| 西宁市| 错那县| 遂平县| 新沂市| 康乐县| 丹巴县| 古田县| 思茅市| 新乡市| 通辽市| 云龙县| 鄄城县| 东乡|