无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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例的評論 (共 條)

分享到微博請遵守國家法律
湖北省| 和林格尔县| 鄯善县| 诸暨市| 阜阳市| 长泰县| 黎平县| 错那县| 岳普湖县| 微山县| 万荣县| 怀远县| 绍兴县| 乡宁县| 滦平县| 前郭尔| 广南县| 沅陵县| 南召县| 太仆寺旗| 岳阳县| 绥芬河市| 垦利县| 本溪市| 班玛县| 建始县| 乌兰察布市| 汕尾市| 怀安县| 陆河县| 临泽县| 福州市| 大荔县| 闽侯县| 蕲春县| 乌恰县| 澎湖县| 滨州市| 革吉县| 二连浩特市| 林芝县|