#i nclude "reg51.h"
#i nclude "user.h"
#define uchar unsigned char
unsigned int value=100;
unsigned int del=0;
uchar value_temp=4;
uchar temp=0;
uchar code tab[11]={0x88,0xbe,0xc4,0x94,0xb2,0x91,0x81,0xbc,0x80,0x90,0xf7};
sbit pwm_port=p3^1;
sbit key=p3^7;
bit lamp_enable=0;
void display(uchar dat)
{
p1=tab[dat];
}
void timer_init()
{
tmod=0x02;
th0=0xff;
tl0=0xff;
px1=1;
it1=1;
et0=1;
ex1=1;
ea=1;
display(10);
}
void int_t0() interrupt 1
{
temp++;
if(temp<value)
{
pwm_port=1;
}
else
{
pwm_port=0;
}
}
void int_x1() interrupt 2
{
lamp_enable=1;
del=0;
}
void main()
{
timer_init();
while(1)
{
key=1;
if(key==0)
{
value=value+25;
value_temp++;
if(value==250)
{
value=0;
value_temp=0;
}
display(value_temp);
delay(20);
}
if(lamp_enable==0)
{
pwm_port=0;
display(10);
tr0=0;
}
else
{
tr0=1;
display(value_temp);
}
if(++del==40000)
{
lamp_enable=0;
del=0;
}
}
}
|