//走起来一卡一卡的//
#include<reg52.h>//单片机头文件
sbit zuo1=P0^0;//左电机控制端1
sbit zuo2=P0^1;//左电机控制端2
sbit you1=P0^2;//右电机控制端1
sbit you2=P0^3;//右电机控制端2
sbit bz0=P0^4;
sbit bz1=P0^5;//信号端
sbit bz2=P0^6;//信号端
sbit bz3=P0^7;//信号端
int n=0;
void init() //初始化函数
{
IE=0X82;//1000 0010
TMOD=0X02; //0000 0010选择定时器0的工作方式2,8位自动重装
TH0=156;
TL0=156;
TR0=1; //开启定时器0
}
void qian()//前进
{
you1=0;
you2=1;
zuo1=0;
zuo2=1;
}
void hou()//huotui
{
you1=1;
you2=0;
zuo1=1;
zuo2=0;
}
void you()//右转
{
you1=1;
you2=0;
zuo1=0;
zuo2=1;
}
void zuo()//左转
{
you1=0;
you2=1;
zuo1=1;
zuo2=0;
}
void ting()
{
you1=0;
you2=0;
zuo1=0;
zuo2=0;
}
void main()//主函数
{
init();
while(1)//单片机不间断监测 (是个死循环)
{
if(n==0) ting();//ting
else if(n==1)qian();//qian
else if(n==2)zuo();
else if(n==3)hou();
else if(n==4)you();
}
}
void timer0() interrupt 1 //定时器0中断服务程序
{
if(bz0==0&&bz1==0&&bz2==0&&bz3==0) n=0;
if(bz0==0&&bz1==0&&bz2==0&&bz3==1) n=1;
if(bz0==0&&bz1==0&&bz2==1&&bz3==0) n=2;
if(bz0==1&&bz1==0&&bz2==0&&bz3==0) n=3;
if(bz0==0&&bz1==1&&bz2==0&&bz3==0) n=4;
}
|