單片機(jī)C語言程序設(shè)計(jì):K1-K4分組控制LED
/* 名稱:K1-K4 分組控制 LED
*/
說明:每次按下 K1 時(shí)遞增點(diǎn)亮一只 LED,全亮?xí)r再次按下則再次循環(huán)開始,
K2 按下后點(diǎn)亮上面 4 只 LED,K3 按下后點(diǎn)亮下面 4 只 LED,K4 按下后關(guān)閉所有 LED
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//延時(shí)
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
//主程序
void main()
{
uchar k,t,Key_State;
P0=0xff;
P1=0xff;
while(1)
{
t=P1;
if(t!=0xff)
{
DelayMS(10);
if(t!=P1) continue;
//取得 4 位按鍵值,由模式 XXXX1111(X 中有一位為 0,其他均為 1)
//變?yōu)槟J?nbsp;0000XXXX(X 中有一位為 1,其他均為 0)
Key_State=~t>>4;
k=0;
//檢查 1 所在位置,累加獲取按鍵號(hào) k
while(Key_State!=0)
{
k++;
Key_State>>=1;
}
//根據(jù)按鍵號(hào) k 進(jìn)行 4 種處理
switch(k)
{
case 1: if(P0==0x00) P0=0xff;
P0<<=1;
DelayMS(200);
break;
case 2: P0=0xf0;break;
case 3: P0=0x0f;break;
case 4: P0=0xff;
}
}
}
編輯:admin 最后修改時(shí)間:2018-05-19