如何用单片机控制LED灯的亮度,不要PWM波的程序
3个回答
展开全部
//程序名称:一只按键控制两只LED灯十种亮度显示
//编程人:xx
//备注:此程序简单
#include<stc12c2052ad.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);
}
}
}
、//2010.10.05 20;06修改
//此程序是我写的简单程序,已做过实验,并且通过!
//编程人:xx
//备注:此程序简单
#include<stc12c2052ad.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);
}
}
}
、//2010.10.05 20;06修改
//此程序是我写的简单程序,已做过实验,并且通过!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询