立即注冊(cè) 登錄
返回首頁(yè)

uid:209220的個(gè)人空間

日志

在做單片機(jī)小車(chē)嗚嗚

已有 996 次閱讀2017-6-8 15:38

#include<reg51.h> 

#define uchar unsigned char

#define uint unsigned int

unsigned char zkb1=0       //**左邊電機(jī)的占空比**//

unsigned char zkb2=0       //**右邊電機(jī)的占空比**//

unsigned char t=0;         //**定時(shí)器中斷計(jì)數(shù)器**//

sbit LSEN2=P2^0;

sbit LSEN1=P2^1;

sbit RSEN1=P2^2;

sbit RSEN2=P2^3;  //**傳感器***/

sbit IN1=P1^0;

sbit IN2=P1^1;

sbit IN3=P1^2;

sbit IN4=P1^3;

sbit ENA=P1^4;

sbit ENB=P1^5;  

//**********初始化定時(shí)器 中斷***********// 

void init()

{    

TMOD=0x01;    

TH0=(65536-100)/256;   

TL0=(65536-100)%256;   

EA=1;   

ET0=1;   

TR0=1; }  

//***********中斷函數(shù)+脈寬調(diào)制***********// 

void timer0() interrupt 1 

{   

if(t<zkb1)       

ENA=1;    

else         

ENA=0;    

if(t<zkb2)        

ENB=1;    

else          

ENB=0;       

t++;    

if(t>=50)      

{t=0;} 

//******************直行******************//

void qianjin() 

{     

zkb1=50;    

zkb2=50;

}  

//***************左轉(zhuǎn)函數(shù)1***************// 

void turn_left1() 

{   

zkb1=0;  

zkb2=50; 

}  

//***************左轉(zhuǎn)函數(shù)2***************// 

void turn_left2() 

{   

zkb1=0;  

zkb2=50; 

}   

//***************右轉(zhuǎn)函數(shù)1***************// 

void turn_right1() 

{    

zkb1=50;   

zkb2=0; 

//***************右轉(zhuǎn)函數(shù)2***************// 

void turn_right2() 

{    

zkb1=50;   

zkb2=0; 

//***************循跡函數(shù)*****************// 

void xunji()  

{   

uchar flag;     

if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1))      

{ flag=0; } 

//*******直行*******//     

else if((RSEN2==1)&&(RSEN1==1)&&(LSEN1==0)&&(LSEN2==1))       

{ flag=1;}  

//***左偏1,右轉(zhuǎn)***//       

else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==1)&&(LSEN2==1))      

{ flag=2; }  

//***右偏1,左轉(zhuǎn)***//   

else if((RSEN2==0)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==1))      

{ flag=3; }

//***右偏2,左轉(zhuǎn)***//   

else if((RSEN2==1)&&(RSEN1==0)&&(LSEN1==0)&&(LSEN2==0))      

{ flag=4;}  

//***左偏2,右轉(zhuǎn)***//

switch (flag)      

case 0:qianjin();           

break; 

case 1:turn_right1();           

break;

case 2:turn_left1();           

break;

case 3:turn_left2();           

break; 

case 4:turn_right2();           

break;

default: break;       

}  

//****************主程序****************// 

void main() 

{  

init();   

zkb1=50;   

zkb2=50;   

while(1)   

{   

//******給電機(jī)加電啟動(dòng)******//    

IN1=1;      

IN2=0;      

IN3=1;      

IN4=0;      

ENA=1;      

ENB=1;  

while(1)      

{      

xunji(); //*********尋跡**********//       

 }      

}


路過(guò)

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部