程序如下:
#include<reg52.h>
sbit k0=P1^0;
sbit k1=P1^1;
sbit k3=P3^2;
sbit mc1=P2^0;
sbit mc2=P2^1;
void delay(int i) //延时
{
for(i>0;i;i--)
{
int j=120;
--j;
}
}
void k3_INT0() interrupt 0 //中断急停
{
delay(50);
if(k3==0)
{
mc1=1;
mc2=0;
P0=0xcc;
}
}
/*void key() //按键扫描
{
} */
void main()
{
P0=0x00; //初始化
mc1=1;
mc2=0;
EA=1;
EX0=1;
IT0=1;
while(1)
{
if(k0==0)
{
delay(100); //去抖动
if(k0==0)
{
P0=0x10; //1亮,向右转
mc1=0;
mc2=0;
}
}
else
{
P0=0x00;
// mc1=1;
// mc2=0;
}
if(k1==0)
{
delay(100); //去抖
if(k1==0)
{
P0=0xff; //2亮,向左转
mc1=1;
mc2=1;
}
}
else
{
P0=0x00;
// mc1=1;
// mc2=0;
}
}
}
按键K0/K1按下时,P0口一直无法拉高,这是为什么? 请教
|