按鈕式控制組合彩燈,按下S1鍵D1~D4點亮, D5~D8熄滅;按下S2鍵D1~D4熄滅, D5~D8點亮;按下S3鍵D1~D8全亮;按下S4鍵D1~D8全滅。
單片機源程序如下:
- #include<reg51.h>
- #define key P1
- sbit led1=P2^0;
- sbit led2=P2^1;
- sbit led3=P2^2;
- sbit led4=P2^3;
- sbit led5=P2^4;
- sbit led6=P2^5;
- sbit led7=P2^6;
- sbit led8=P2^7;
- void delay(unsigned char time)
- {
- unsigned char i,j;
- for(i=0; i<time; i++)
- for(j=0; j<120; j++)
- ;
- }
- unsigned char key_scan(void)
- {
- unsigned char key_val;
- key=0xff;
- key_val=key;
- if(key_val!=0xff)
- {
- delay(1);
- key=0xff;
- key_val=~key;
- while(key!=0xff);
- return key_val;
- }
- }
- void key1(void)
- {
- led1=!led1;
- led2=!led2;
- led3=!led3;
- led4=!led4;
- }
- void key2(void)
- {
- led5=!led5;
- led6=!led6;
- led7=!led7;
- led8=!led8;
- }
- void key3(void)
- {
- led1=1;
- led2=1;
- led3=1;
- led4=1;
- led5=1;
- led6=1;
- led7=1;
- led8=1;
- }
- void key4(void)
- {
- led1=0;
- led2=0;
- led3=0;
- led4=0;
- led5=0;
- led6=0;
- led7=1;
- led8=1;
- }
- void Key_manage(unsigned char key_val)
- {
- if(key_val==0x01)
- key1();
- if(key_val==0x02)
- key2();
- if(key_val==0x04)
- key3();
- if(key_val==0x08)
- key4();
- }
- main()
- {
- Key_manage(key_scan());
- }
復制代碼
所有資料51hei提供下載:
控制組合彩燈.zip
(53.02 KB, 下載次數(shù): 5)
2020-4-23 14:58 上傳
點擊文件名下載附件
|