|
//走起來一卡一卡的//
#include<reg52.h>//單片機(jī)頭文件
sbit zuo1=P0^0;//左電機(jī)控制端1
sbit zuo2=P0^1;//左電機(jī)控制端2
sbit you1=P0^2;//右電機(jī)控制端1
sbit you2=P0^3;//右電機(jī)控制端2
sbit bz0=P0^4;
sbit bz1=P0^5;//信號(hào)端
sbit bz2=P0^6;//信號(hào)端
sbit bz3=P0^7;//信號(hào)端
int n=0;
void init() //初始化函數(shù)
{
IE=0X82;//1000 0010
TMOD=0X02; //0000 0010選擇定時(shí)器0的工作方式2,8位自動(dòng)重裝
TH0=156;
TL0=156;
TR0=1; //開啟定時(shí)器0
}
void qian()//前進(jìn)
{
you1=0;
you2=1;
zuo1=0;
zuo2=1;
}
void hou()//huotui
{
you1=1;
you2=0;
zuo1=1;
zuo2=0;
}
void you()//右轉(zhuǎn)
{
you1=1;
you2=0;
zuo1=0;
zuo2=1;
}
void zuo()//左轉(zhuǎn)
{
you1=0;
you2=1;
zuo1=1;
zuo2=0;
}
void ting()
{
you1=0;
you2=0;
zuo1=0;
zuo2=0;
}
void main()//主函數(shù)
{
init();
while(1)//單片機(jī)不間斷監(jiān)測(cè) (是個(gè)死循環(huán))
{
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 //定時(shí)器0中斷服務(wù)程序
{
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;
}
|
|