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

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

51單片機100例實例之13例

2021-01-21 14:18 作者:技術流阿宅  | 我要投稿

?//項目名稱:4只按鍵分組控制LED

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

//完成時間:2021/01/21

//功能說明:每次按下K1逐次點亮LED,全亮時再次按下則循環(huán)開始

//K2按下,點亮上4只LED,K3按下,點亮下4只LED,K4按下關閉所有LED

proteus仿真圖


#include <reg52.h>

#define uchar unsigned char

#define uint unsigned int

//1毫秒延時子程序

void DelayMS(uint x)

{

? uchar t;

while(x--)

{

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

}

}

//主程序

void main()

{

? uchar k,t,Key_State;

P0 = 0xff;

P1 = 0xff;

while(1)//無限循環(huán)

{

t = P1;//令t=P1

{

DelayMS(10);

if(t != P1)

continue;

Key_State = ~t >> 4;//取得4位按鍵值,也就是讀取P1.0~P1.3的電位狀態(tài)。先取反后移位,位運算符優(yōu)先級~大于>>。

k = 0;

while(Key_State != 0)//即P1.0~P1.3的按鍵值不等于0x00時

{

k++;

Key_State >>= 1;//將Key_State向右移動1位,再賦值給Key_State。先運算再賦值。(復合賦值運算)注意是這里是算術右移!

}

switch(k)//根據(jù)按鍵號K進行4種處理

{

case 1: if(P0 == 0x00)//如果P0全部接低電平

P0 = 0xff;//那么P0全部1111 1111

P0 <<= 1;//將P0向左移動1位,再賦值給P0。先運算再賦值。(復合賦值運算)(逐增點亮)注意是這里是算術左移!

DelayMS(200);

break;//

case 2: P0 = 0xf0;//1111 0000 上四個點亮

break;

case 3: P0 = 0x0f;//0000 1111 下四個點亮

break;

case 4: P0 = 0xff;//1111 1111 全部關閉

}

}

}

}


51單片機100例實例之13例的評論 (共 條)

分享到微博請遵守國家法律
霍州市| 闽侯县| 乐陵市| 阜南县| 澄迈县| 曲水县| 舟曲县| 嘉祥县| 麻江县| 兴义市| 蓝田县| 湘乡市| 紫金县| 确山县| 雷山县| 江达县| 油尖旺区| 彰武县| 建湖县| 乐山市| 温泉县| 柞水县| 江永县| 永定县| 黄骅市| 全州县| 理塘县| 二连浩特市| 古田县| 林州市| 抚松县| 灌云县| 高州市| 温泉县| 丽江市| 瓦房店市| 淳安县| 巧家县| 河南省| 光泽县| 崇阳县|