51單片機(jī)循跡小車(chē)程序.doc
《51單片機(jī)循跡小車(chē)程序.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《51單片機(jī)循跡小車(chē)程序.doc(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
/*功能:尋跡小車(chē)使用芯片:AT89S52 或者 STC89C52 或AT89S51 STC89C51晶振:12MHZ編譯環(huán)境:Keil作者:MH */#include / 引用標(biāo)準(zhǔn)庫(kù)的頭文件#include #define uchar unsigned char#define uint unsigned int/=電機(jī)驅(qū)動(dòng)=sbit dianji_r = P30; /右邊電機(jī)控制口,低電平轉(zhuǎn)?sbit dianji_l = P37; /左邊電機(jī)控制口,低電平轉(zhuǎn)/=循跡感應(yīng)接口=sbit xjmk_r = P32;/ 右邊尋跡模塊檢測(cè)口 INT0sbit xjmk_l = P33;/ 左邊尋跡模塊檢測(cè)口 INT1void check_righet();/右邊時(shí)候檢測(cè)到黑線測(cè)試程序void check_left();/左邊時(shí)候檢測(cè)到黑線測(cè)試程序void delay_50us(uint t);void delayms(uint Ms);uchar r_count;/右邊傳感器檢測(cè)到的次數(shù)計(jì)數(shù)單元uchar l_count;uint time;/*主程序*main() time=50; dianji_r=0;/上電時(shí)右側(cè)電機(jī)運(yùn)行 dianji_l=0;/上電時(shí)左側(cè)電機(jī)運(yùn)行 EA=1; EX1=1; EX0=1; IT1=0; IT0=0; xjmk_r=1;/置IO為1,準(zhǔn)備讀取數(shù)據(jù) xjmk_l=1; _nop_(); r_count=0; l_count=0; while(1) _nop_(); / check_righet();/調(diào)用右邊尋跡檢測(cè)傳感器 / check_left();/ if(r_count=1) delayms(time); dianji_r=0; dianji_l=0; r_count=0; _nop_(); if(l_count=1) delayms(time); dianji_r=0; dianji_l=0; l_count=0; _nop_(); void init0int() interrupt 2 l_count=5; dianji_l=1; dianji_r=0; if(r_count0) EX0=0; delayms(20); if(time=20)time-=19; EX0=0; return;void init1int() interrupt 0 r_count=5; dianji_r=1; dianji_l=0; if(l_count0) EX1=0; delayms(20); if(time=20)time-=19; EX1=1; return; /*/函數(shù)名稱:/功能:左邊邊時(shí)候檢測(cè)到黑線測(cè)試程序void check_left() if(xjmk_l=0)/檢測(cè)右邊的傳感器是否感應(yīng)到黑線 delay_50us(1);/延時(shí),去除機(jī)械振動(dòng) _nop_(); if(xjmk_l=0)/再次檢測(cè) delay_50us(1);/延時(shí),去除機(jī)械振動(dòng) if(xjmk_l=0) l_count+; xjmk_l=1; /*/函數(shù)名稱:/功能:右邊時(shí)候檢測(cè)到黑線測(cè)試程序void check_righet() if(xjmk_r=0)/檢測(cè)右邊的傳感器是否感應(yīng)到黑線 delay_50us(1);/延時(shí),去除機(jī)械振動(dòng) if(xjmk_r=0)/再次檢測(cè) delay_50us(1);/延時(shí),去除機(jī)械振動(dòng) if(xjmk_r=0) r_count+; xjmk_r=1; /*/函數(shù)名稱:void delay_50US(unsigned int t)/功能: 延時(shí)50*t(us)void delay_50us(uint t) uchar j; for(;t0;t-) for(j=19;j0;j-); /*= 設(shè)定延時(shí)時(shí)間:x*1ms=*/void delayms(uint Ms) uint i,TempCyc; for(i=0;iMs;i+) TempCyc =70; while(TempCyc-);- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 51 單片機(jī) 小車(chē) 程序
鏈接地址:http://m.appdesigncorp.com/p-6621582.html