要求用一个按键控制管脚P10输出的占空比可调,但是运行下面的程序发现,占空比是可以调整,但是每次按键按下不放的时候,P10会不定性的变为高电平或低电平,请问是怎么回事?
#include<stc15.h>
#define uint unsigned int
sbit key1=P2^1;
sbit LED1=P1^0;
uint n,pwm;
void delay(uint z)
{
uint i,j;
for(i=0;i<100;i++)
for(j=0;j<z;j++);
}
void initial()//初始化程序
{
LED1=1;
TMOD=0x02;//8位自动重装
TH0=240;
TL0=240;
ET0=1;
EA=1;
TR0=1;
}
void key_scan()//按键扫描程序
{
if(key1==0)
{
delay(10);
if(key1==0)
{
while(!key1);
pwm=pwm+5;
if(pwm>255)
{
pwm=0;
}
}
}
}
void key_service()//按键服务程序
{
if(n>=pwm)
{
LED1=0;
}
else
{
LED1=1;
}
}
void main()
{
initial();
while(1)
{
key_scan();
key_service();
}
}
void timer0() interrupt 1
{
ET0=0;
n++;
if(n>255)
{
n=0;
}
ET0=1;
} |