学习mega8里面的定时器pwm功能很是方便
想试试用51能不能搞
p32 渐亮 p33渐灭
led equ p31
用了一个定时器和定时器中断
#include<at89x51.h>
bit flag=0;
unsigned int c[9]={0xec,0xf0,0xf4,0xf8,0xfc,0xfe,0xfe,0xff,0xff};
unsigned int d[9]={0x78,0xe0,0x48,0x30,0x18,0x0c,0xd4,0x9c,0xfa};
char a=0,b=0;
void delay(unsigned int i)
{
while(i--);
}
/////////////////////////////////////////
void timer0(void)interrupt 1
{
flag=!flag;
if(flag==1){p3_1=1;th0=c[a];tl0=d;}//灭的时间
if(flag==0){p3_1=0;th0=0xff;tl0=0xfa;}//亮的时间
}
///////////////////////////////////////
void main(void)
{
p3=0xff;
p3_1=0;
tmod=0x01;
th0=0xff;
tl0=0xfa;
ea=1;
et0=1;
tr0=1;
while(1)
{
while(p3_2==0)
{
if(a<8)
a++;
if(b<8)
b++;
delay(3000);
}
while(p3_3==0)
{
if(a>0)
a--;
if(b>0)
b--;
delay(3000);
}
}
}