中断程序老是写不好,麻烦大神给看看我的这段程序有什么问题。谢谢了!
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar flag;
sbit P20=P2^0; // 控制左电机前进
sbit P21=P2^1;//控制左电机后退
sbit P22=P2^2;//控制右电机
sbit P23=P2^3;//控制右电机
sbit P13=P1^3;//左循迹
sbit P14=P1^4;// 中循迹
sbit P17=P1^7; // 右循迹
sbit P32=P3^2; //外部中断触发
void delayms(unsigned int xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
flag=0;
EA=1;//全局中断开
EX0=1;//外部中断0开
IT0=0;//低电平触发
while(1)
{ if(flag==1)
{
P2=0x06; //小车前进
}
}
}
void INT_0() interrupt 0
{
if(flag==0&&P32==0)
{
P2=0x00; //小车停车
delayms(2000); //延时两秒
flag=1;
}
}