单片机 8个按键分别控制8个LED灯 C语言代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//P0 接八个 LED 灯;P1 接八个独立按键 #include <REG51.H> #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) { getkeห้องสมุดไป่ตู้(); delay10ms(); } }