//程序名稱:一只按鍵控制兩只LED燈十種亮度顯示
//編程人:唐靜
//備注:把字體復制到你的編譯器即可,此程序簡單
//以延時的長短來改變燈的亮度,兩個燈的亮度正好相反,
#include<stc12c2052ad.h>//定義頭文件 51單片機就用#include<at89c51.h>
sbit d1=P1^7;//定義LED燈1
sbit d2=P1^6; //定義LED燈2
sbit key1=P3^0; //定義按鍵燈
void delay(unsigned int a){ //延時程序
unsigned int i;
while( a-- != 0){
for(i = 0; i < 100; i++);
}
}
void main(){
while(1){
unsigned int a,b,c,d;
if(key1==0)d++; //按鍵判斷
switch(d) //按鍵信息比較
{
case 1: b=9;;a=1;break;
case 2: b=8;;a=2;break;
case 3: b=7;;a=3;break;
case 4: b=6;;a=4;break;
case 5: b=5;;a=5;break;
case 6: b=4;;a=6;break;
case 7: b=3;;a=7;break;
case 8: b=2;;a=8;break;
case 9: b=1;;a=9;break;
}
while(key1==0); //判斷按鍵是否松開
if(d==10)d=0; //按鍵9種亮度判斷,是否是第9種,如果是,則d=0
for(c=0;c<2;c++){ //亮度模式循環顯示
d1=0;
d2=1;
delay(a);
d1=1;
d2=0;
delay(b);
}
}
}
|