#define uchar unsigned char
uchar pwm=50,cnt
sbit pluse=P1^0
sbit keyu=P1^4
sbit keyd=P1^5
void t0isr() interrupt 1
{
TH0=(65536-100)/256
TL0=(65536-100)%256
cnt++
if(pwm>0)
{
if(cnt>100)cnt=0
if(cnt<=pwm)pluse=1
else pluse=0
}
else pluse=0
}
main()
{
TMOD=0x01
TH0=(65536-100)/256
TL0=(65536-100)%256
TR0=1
ET0=1
EA=1
while(1)
{
if(keyu==0)
{
while(keyu==0)
pwm++
if(pwm>100)pwm=100
}
if(keyd==0)
{
while(keyd==0)
if(pwm>0)pwm--
}
}
}
voidmain(void)
//主函数
{
while(1)
{
temp=P2
temp=temp&0x07
//取出低三位
while(temp!=0x07)
{
init_sys()
PWM=1
}
}
}
还有可能就是你的定时器一直在跳中断,所以程序很难检测到按键。按键可以用
外部中断
来实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)