image.png

include
#define u8 unsigned char
#define s8 char
#define u16 unsigned int
#define s16 int
sbit led1=P0^0;
sbit s7=P3^0;
void cls_buzz(void)
{
P2 = (P2&0x1F|0xA0);
P0 = 0X00;
P2 &=0X1f;
P0 = 0xff;
}
void htc183()
{
P2 =( P2 & 0x1f) | 0x80;
}
//=================定时器=====
void Tnit_timear0()
{
TMOD =0X01;
TH0=(65535-100)/256;
TL0=(65535-100)%256;

EA =1;
ET0=1;
}
u8 countt=0;
u8 pwmkz=0;
void zondduanTnit_timear0() interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
countt++;
if(countt == pwmkz )
{
led1=1;
}
else if(countt ==100 )
{
led1=0;
countt=0;
}
}
//=============================
void delay(u16 t)
{
while(t—);
}
//=================开关====
u8 zhuanzt=0;
void kanguan()
{
if(s7==0)
{
delay(100);
if(s7==0)
{
switch(zhuanzt)
{
case 0:
led1=1;
TR0=1;
pwmkz =10;//10%
zhuanzt=1;
break;

case 1:
led1=1;
pwmkz =50;//50%
zhuanzt=2;
break;

case 2:
led1=1;
pwmkz =90;//90%
zhuanzt=3;
break;

case 3:
led1=10;
pwmkz =100;//90%
break;
}
while(s7==0);
}
}
}
//=========================
void main()
{
cls_buzz();
htc183();
Tnit_timear0();
while(1)
{
kanguan();
}