久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3010|回復: 1
打印 上一主題 下一主題
收起左側

51循跡小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:255961 發表于 2017-12-1 21:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/****************************************************************
************
硬件連接
P1_4接驅動模塊ENA使能端輸入PWM信號調節速度
P1_5接驅動模塊ENB使能端輸入PWM信號調節速度

P1_0 P1_1接IN1  IN2  當 P1_0=1,P1_1=0; 時左電機正轉  驅動藍色輸出
端OUT1 OUT2接左電機  
P1_0 P1_1接IN1  IN2  當 P1_0=0,P1_1=1; 時左電機反轉                 
P1_2 P1_3接IN3  IN4  當 P1_2=1,P1_3=0; 時右電機正轉  驅動藍色輸出
端OUT3 OUT4接右電機
P1_2 P1_3接IN3  IN4  當 P1_2=0,P1_3=1; 時右電機反轉

P1_0接四路尋跡模塊接口第一路輸出信號即中控板上面標記為OUT1
P1_1接四路尋跡模塊接口第二路輸出信號即中控板上面標記為OUT2  
P1_2接四路尋跡模塊接口第三路輸出信號即中控板上面標記為OUT3
P1_3接四路尋跡模塊接口第四路輸出信號即中控板上面標記為OUT4
八路尋跡傳感器有信號(白線為0  沒有信號黑線為1

*****************************************************************
***********/
#include<AT89x51.H>            
#define Right_moto_pwm    P1_4    //接驅動模塊ENA使能端輸入PWM
信號調節速度
#define Left_moto_pwm     P1_5    //接驅動模塊ENB使能端輸入PWM   
信號調節速度
#define Left_1_led        P2_0    //四路尋跡模塊接口第一路
#define Left_2_led        P2_1    //四路尋跡模塊接口第二路
#define Right_1_led       P2_2   //四路尋跡模塊接口第三路
#define Right_2_led       P2_3   //四路尋跡模塊接口第四路
#define Left_moto_go      {P1_0=0,P1_1=1;} //左電機前進
#define Left_moto_back    {P1_0=1,P1_1=0;} //左電機后退     
#define Left_moto_stop    {P1_0=1,P1_1=1;} //左電機停轉               
#define Right_moto_go     {P1_2=0,P1_3=1;} //右電機前轉 #define Right_moto_back   {P1_2=1,P1_3=0;} //右電機后退
#define Right_moto_stop   {P1_2=1,P1_3=1;} //右電機停轉
#define uchar unsigned char
#define uint unsigned int
uchar pwm_val_left  =0;
uchar push_val_left =0; //左電機占空比N/10
uchar pwm_val_right =0;
uchar push_val_right=0; //右電機占空比N/10
bit Right_moto_stp=1;
bit Left_moto_stp =1;
/****************************************************************
********/
void  run(void) //前進函數
{
push_val_left  =13; //PWM 調節參數1-20   1為最慢20是最快  改這
個值可以改變其速度
push_val_right =15; //PWM 調節參數1-20   1為最慢20是最快 改
這個值可以改變其速度
Left_moto_go ;  //左電機前進
Right_moto_go ;     //右電機前進
}

/****************************************************************
********/
void  left(void) //左轉函數
{
  push_val_left  =8;  
push_val_right =9;  
Right_moto_go;  //右電機繼續
Left_moto_stop;   //左電機停走
}      


/************************************************************************/
void  right(void) //右轉函數
{
push_val_left  =8;   
push_val_right =9;   
Right_moto_stop;  //右電機停走
Left_moto_go;  //左電機繼續
}
void Delayms(uint x)  
{  
uchar i;  
  while(x--)for(i=0;i<120;i++);  
}  
void  stop(void)
{
  Right_moto_stop;  //右電機停走  
  Left_moto_stop;   //左電機停走
  Delayms(3000);
  run();
  Delayms(100);   
}  


/*************************PWM調 制 電 機 轉 速
********************************/
void pwm_out_left_moto(void)  //左電機調速,調節push_val_left的值改變
電機轉速,占空比     
{   
if(Left_moto_stp)
{
  if(pwm_val_left<=push_val_left)
   Left_moto_pwm=1;  
  else  
   Left_moto_pwm=0;    if(pwm_val_left>=20)
    pwm_val_left=0;
}
else   
  Left_moto_pwm=0;
}  
void pwm_out_right_moto(void) //右電機調速,調節push_val_left的值改變
電機轉速,占空比
{  
if(Right_moto_stp)
{  
  if(pwm_val_right<=push_val_right)
   Right_moto_pwm=1;  
  else
   Right_moto_pwm=0;
   if(pwm_val_right>=20)
    pwm_val_right=0;
}
else     
  Right_moto_pwm=0;
}
/***************************************************/   
void xunji()
{
switch(P2&0x0f)
{
  case 0x00:      // 全部沒有壓線直走
   run();  break;   
  case 0x01:      // 右壓線左轉
   left(); break;   
  case 0x02:      // 右壓線左轉
      left(); break;   
  case 0x04:      // 左壓線轉右  
   right(); break;           case 0x08:      // 左壓線右轉
   right();break;  
  case 0x0f:
   stop();break;        
  default:  
   run(); break;

   }
}

/***********TIMER0中斷服務子函數產生PWM信號**********/
void timer0()interrupt 1   using 2
{
TH0=0XF8;   //2Ms定時
TL0=0X30;      
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}

/***************************************************/
void main(void)
{
TMOD=0X01;
TH0= 0XF8;    //2ms定時
  TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
while(1)       /*無限循環*/
{  

   xunji();   }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:287974 發表于 2018-3-30 13:29 | 只看該作者
最后主函數的循跡函數是啥
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕久久久 | 一区二区三区视频在线观看 | 久久久久国产精品一区二区 | 国内精品久久久久久久影视简单 | 亚欧精品 | 91视频一88av| 亚洲永久在线 | 91精品国产欧美一区二区 | 久久久.com| 欧美在线a | 国产精品国产a级 | 免费激情 | 国产高清精品网站 | 爱爱视频网 | 中文字幕a√ | 国产大学生情侣呻吟视频 | 中文字幕免费在线 | 久久久999精品 | 99久久精品免费看国产四区 | 欧美色综合 | 黄色精品视频网站 | 欧美一级在线 | 黄网站涩免费蜜桃网站 | 羞羞的视频免费在线观看 | 午夜在线影院 | 日韩精品在线一区 | 欧洲视频一区二区 | 国产激情一区二区三区 | 欧美精品久久 | 国产精品一卡二卡三卡 | 91久久看片| 成年人的视频免费观看 | 精品欧美久久 | 91视频免费黄 | 午夜天堂精品久久久久 | av特级毛片 | 日本午夜免费福利视频 | 成人a视频片观看免费 | 国产精品久久久久久久久久 | 日韩一区精品 | 91精品午夜窝窝看片 |