单片机 8个按键分别控制8个LED灯 c语言代码

发布时间:2018-07-01 23:34:40   来源:文档文库   
字号:

//P0 接八个LED灯;P1接八个独立按键

#include

#define uchar unsigned char

#define BITSET(u,i,v) ( (u) = (u)&~(1<<(i)) | (v)<<(i) )

//将uchar u的第i位设置为布尔值v

#define BITVAL(u,i) ( ( (u)&(1<<(i)) )>0 )

//显示uchar u的第i位,0或1

#define BITCH(u,i) ( BITVAL(u,i)>0 ? BITSET(u,i,0):BITSET(u,i,1) )

//将uchar u的第i位取反

uchar key1;//存储旧的P1

void delay10ms(void)

{

unsigned char a,b,c;

for(c=1;c>0;c--)

for(b=38;b>0;b--)

for(a=130;a>0;a--);

}

void getkey()

{

uchar key2=~P1,i;

if(key2==0 && key1!=0)

{

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

{

if(BITVAL(key1,i)==1)

{BITCH(P0,i);break;}

}

}

key1=key2;

}

void main(void)

{

key1=~P1;

P0=0;

while(1)

{

getkey();

delay10ms();

}

}

本文来源:https://www.2haoxitong.net/k/doc/2426aecf227916888586d7d3.html

《单片机 8个按键分别控制8个LED灯 c语言代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式