//走起來一卡一卡的//
#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;
}
|