資源簡介
LED PWM控制調(diào)光程序 c51

代碼片段和文件信息
#include?
static?char?pwmdirpwmdirold;
sbit?P1_0=P1^0;
sbit?P1_1=P1^1;
sbit?P1_2=P1^2;
sbit?P1_3=P1^3;
//sbit?P0_4=P0^4;
//sbit?P0_6=P0^6;
sbit?P2_0=P2^0;
sbit?P2_1=P2^1;
sbit?P2_2=P2^2;
sbit?P2_3=P2^3;
sbit?P2_4=P2^4;
sbit?P2_5=P2^5;
sbit?P2_6=P2^6;
sbit?P2_7=P2^7;
static?unsigned?char?pwm_f;
static?unsigned?char?H_MAX;
static?unsigned?char?keyvalkeyoldpwm_pulse;
void?Delay(unsigned?char?ms);
unsigned?char?GetKey();
void?LedShow(unsigned?char?value);?
void?Timer0_init();
void?main()
{??
keyval=keyold=0;
pwmdir=pwmdirold=2;
H_MAX=150;
pwm_pulse=0;
pwm_f=0;
P1=0x80;
Timer0_init();
while(1)
{
keyval=GetKey();
LedShow(keyval);
if(0==keyval)
{
continue;
}
else
{
if(5==keyval)
{
pwmdir=pwmdirold=2;
P1=0x80;
break;
}
else?if(1==keyval)
{
pwmdir=1;
}
else?if(2==keyval)
{
pwmdir=0;
}
else?if(3==keyval)
{
H_MAX=150;
}
else?if(4==keyval)
{
H_MAX=80;
}
?}
}
}
void?Timer0_init()
{
TMOD=0x02;
TH0=0x48;
TL0=TH0;
ET0=1;
TR0=1;
EA=1;
}
void?Timer0_inter()?interrupt?1?
{
pwm_f++;
pwm_f%=200;
if(2!=pwmdir)
{
if(pwmdirold!=pwmdir)
{
pwmdirold=pwmdir;
P1_2=0;
P1_3=0;
Delay(100);//
if(1==pwmdir)
{
P1_2=0;
if(0==pwm_f)
{
P1_3=1;
}
else?if(H_MAX==pwm_f)
{
P1_3=0;
}
}
else?
{
P1_3=0;
if(0==pwm_f)
{
P1_2=1;
}
else?if(H_MAX==pwm_f)
{
P1_2=0;
}
}
}?
else?
{
if(1==pwmdir)
{
P1_2=0;
if(0==pwm_f)
{
P1_3=1;
}
else?if(H_MAX==pwm_f)
{
P1_3=0;
}
}
else?
{
P1_3=0;
if(0==pwm_f)
{
P1_2=1;
}
else?if(H_MAX==pwm_f)
{
P1_2=0;
}
}
}
}
}
unsigned?char?GetKey()
{ ?
P2_0=0;
if(0==P2_4)
{
P2_0=1;
return?7;
}
else?if(0==P2_5)
{
P2_0=1;
return?8;
}
P2_0=1;
P2_1=0;
if(0==P2_4)
{
P2_1=1;
return?5;
}
else?if(0==P2_5)
{
P2_1=1;
return?6;
}
P2_1=1;
P2_2=0;
if(0==P2_4)
{
P2_2=1;
return?3;
}
else?if(0==P2_5)
{
P2_2=1;
return?4;
}
P2_2=1;
P2_3=0;
if(0==P2_4)
{
P2_3=1;
return?1;
}
else?if(0==P2_5)
{
P2_3=1;
return?2;
}
else?
{
P2_3=1;
return?0;
}
}
void?LedShow(unsigned?char?value)
{
switch(value)
{
case?1:
P0=0xF9;
P1_0=0;
break;
case?2:
P0=0xA4;
P1_0=0;
break;
case?3:
P0=0xB0;
P1_0=0;
break;
case?4:
P0=0x99;
P1_0=0;
break;
case?5:
P0=0x92;
P1_0=0;
break;
case?6:
P0=0x82;
P1_0=0;
break;
case?7:
P0=0xF8;
P1_0=0;
break;
case?8:
P0=0x80;
P1=0xFE;
break;
default:
break;
}
}
void?Delay(unsigned?char?ms)
{
un
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7279??2009-06-26?19:22??PWM\pwm
?????文件???????3038??2009-06-26?19:22??PWM\pwm.c
?????文件???????1490??2009-06-26?19:22??PWM\pwm.hex
?????文件?????????39??2009-06-26?19:22??PWM\pwm.lnp
?????文件??????11568??2009-06-26?19:22??PWM\pwm.LST
?????文件??????13948??2009-06-26?19:22??PWM\pwm.M51
?????文件???????7698??2009-06-26?19:22??PWM\pwm.OBJ
?????文件???????1204??2009-06-26?20:57??PWM\pwm.Opt
?????文件????????214??2009-06-28?10:26??PWM\pwm.plg
?????文件???????2152??2009-06-26?12:45??PWM\pwm.Uv2
?????文件???????1204??2009-06-26?18:32??PWM\pwm_Opt.Bak
?????文件???????2148??2009-06-26?12:01??PWM\pwm_Uv2.Bak
?????文件???????6376??2009-06-26?19:22??PWM\STARTUP.A51
?????文件??????10762??2009-06-26?19:22??PWM\STARTUP.LST
?????文件????????750??2009-06-26?19:22??PWM\STARTUP.OBJ
?????目錄??????????0??2009-07-29?14:25??PWM
-----------?---------??----------?-----??----
????????????????69870????????????????????16
評論
共有 條評論