最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
绥化市| 恭城| 治县。| 饶河县| 辉南县| 库尔勒市| 阳泉市| 辽宁省| 阳春市| 恩平市| 屏山县| 宜都市| 孟津县| 平谷区| 裕民县| 修文县| 台山市| 本溪| 沽源县| 云龙县| 壤塘县| 贺兰县| 西城区| 澄迈县| 临海市| 张北县| 黎川县| 赫章县| 泰安市| 博乐市| 永州市| 屯留县| 南溪县| 凯里市| 郎溪县| 措美县| 云和县| 江北区| 方正县| 梧州市| 屯门区|