欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機尋跡小車算法尋黑線程序
[打印本頁]
作者:
安shijia
時間:
2018-4-25 18:18
標題:
51單片機尋跡小車算法尋黑線程序
51尋跡小車算法
單片機源程序如下:
/*****************ZY08-C智能循跡、遙控、避障、尋光機器人*****************
//=====================================================================//
// 尋跡與直流電機驅動演示程序 //
// 本程序通過前方的紅外探頭來檢測地面的信號,根據道路的要求,當道路為白 //
// 色時,紅外接收到信號,與地面檢測的紅外相應端口低電平,當道路為黑色時 //
//,與地面檢測的紅外相應端口為高電平,我們就可以根據這和判斷條件來進行 //
//道路黑白線的尋找. //
// 聲明:由于紅外接收頭對光線要求較高,所以對于黑白兩種顏色選擇對比度 //
//高為好,而且因為道路建立不同,需要根據實際的需要來改寫相應的延遲時間 //
//以適應角度的最有較轉彎,道路應根據紅外接收頭的兩個寬度來制定,如果道 //
//路較小,或較大者,請調整以適應小車的正確運行. //
// 備注:這里的程序以走白線為主,當用戶需要選擇走黑線時,請根據例程作出//
//實際修改。并改寫相應的延遲時間函數,以進行轉彎角度在的最優化調整. //
//---------------------------------------------------------------------//
* 平臺:ZY08-C智能循跡、遙控、避障、尋光機器人 + Keil U4 + STC89C52
* 程序名稱:ZY08-C循跡尋黑線程序
* 公司:湖南智宇科教設備有限公司
* 編寫:智宇公司研發一部
* 交流:智能車QQ:1018973181
* 晶振:11.0592MHZ
******************************************************************/ //
#include <REGX52.H> //包含51單片機相關的頭文件
sbit LeftLed=P2^0; //定義前方左側指示燈端口
sbit RightLed=P0^7; //定義前方右側指示燈端口
sbit FontLled=P1^0;
sbit LeftIR=P3^5; //定義前方左側紅外探頭端口
sbit RightIR=P3^6; //定義前方右側紅外探頭端口
sbit FontIR=P3^7; //定義前方正前方紅外探頭端口
sbit M1A=P0^0; //定義左側電機驅動A端
sbit M1B=P0^1; //定義左側電機驅動B端
sbit M2A=P0^2; //定義右側電機驅動A端
sbit M2B=P0^3; //定義右側電機驅動B端
sbit B1=P0^4; //定義語音識識別傳感器端口
sbit SB1=P0^6; //定義蜂鳴器端口
void tingzhi()
{
M1A=0; //將M1電機A端初始化為0
M1B=0; //將M1電機B端初始化為0
M2A=0; //將M2電機A端初始化為0
M2B=0;
}
void qianjin()
{
M1A=1;
M1B=0;
M2A=1;
M2B=0;
}
void houtui()
{
M1A=0;
M1B=1;
M2A=0;
M2B=1;
}
void zuozhuan()
{
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
void youzhuan()
{
M1A=1;
M1B=0;
M2A=0;
M2B=1;
}
void delay_nus(unsigned int i) //延時:i>=12 ,i的最小延時單12 us
{
i=i/10;
while(--i);
}
void delay_nms(unsigned int n) //延時n ms
{
n=n+1;
while(--n)
delay_nus(900); //延時 1ms,同時進行補償
}
void ControlCar(unsigned char ConType) //定義電機控制子程序
{
tingzhi();
switch(ConType) //判斷用戶設定電機形式
{
case 1: //前進 //判斷用戶是否選擇形式1
{
qianjin();
break;
}
case 2: //后退 //判斷用戶是否選擇形式2
{
houtui(); //M2電機反轉
break;
}
case 3: //左轉 //判斷用戶是否選擇形式3
{
zuozhuan(); //M2電機正轉
break;
}
case 4: //右轉 //判斷用戶是否選擇形式4
{
youzhuan(); //M1電機正轉
//M2電機反轉
break;
}
case 8: //停止 //判斷用戶是否選擇形式8
{
tingzhi();
break; //退出當前選擇
}
}
}
void main() //主程序入口
{
bit RunFlag=0; //定義小車運行標志位
//RunShow=0; //初始化顯示狀態
ControlCar(8); //初始化小車運行狀態
while(1) //程序主循環
{
Start:
LeftLed=LeftIR; //前方左側指示燈指示出前方左側紅外探頭狀態
RightLed=RightIR; //前方右側指示燈指示出前方右側紅外探頭狀態
FontLled= FontIR;
SB1=LeftIR;
if(LeftIR == 0 && RightIR == 0) //三個紅外檢測到黑線,就前進
{
ControlCar(1); //左側沒有信號時,開始向右轉一定的角度
delay_nms (10);
goto NextRun;
}
if(LeftIR == 0 && RightIR == 1)
{
ControlCar(3); //右側沒有信號時,開始向左轉一定的角度
delay_nms (10);
goto NextRun;
}
if(LeftIR == 1 && RightIR == 0)
{
ControlCar(4); //右側沒有信號時,開始向左轉一定的角度
delay_nms (10);
goto NextRun;
}
goto Start;
NextRun:
ControlCar(8);
}
}
//備注:此例程僅為參考程序,請根據自己的道路進行最優化調整。
復制代碼
所有資料51hei提供下載:
循跡 尋黑線程序.rar
(31.88 KB, 下載次數: 86)
2018-4-25 18:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
956791664
時間:
2018-4-27 16:18
你好,方便發一張仿真圖的照片嗎?
作者:
荷去河從
時間:
2018-4-29 17:58
請問一下,第146行的SB1是什么意思?
作者:
1329890441
時間:
2018-6-1 01:02
電機反轉是怎么做到的
作者:
小糖豆
時間:
2018-9-14 11:12
荷去河從 發表于 2018-4-29 17:58
請問一下,第146行的SB1是什么意思?
蜂鳴器的端口,前面定義P0^6端口
作者:
安shijia
時間:
2018-11-30 14:30
956791664 發表于 2018-4-27 16:18
你好,方便發一張仿真圖的照片嗎?
沒有仿真圖,這是上學期的課設
作者:
whynot6
時間:
2019-7-1 16:53
用什么軟件編程呀
作者:
嘟嘟胖子
時間:
2019-7-17 15:25
備注很詳細,資料不錯,學習一下 ...
作者:
彼岸.
時間:
2019-9-27 11:10
采用幾個紅外對管
作者:
accustom
時間:
2020-3-17 20:02
方便分享一下設計嗎ummm
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1