版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、#include <reg51.h>#include <stdio.h>#define uint unsigned int#define uchar unsigned char/*/ uchar led_data9=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80; uchar circle=0,cir_comp=0,cir_count=0;/設定圈數(shù),實際圈數(shù) uchar turn_count=0; bit end=0; /圈數(shù)跑完標志/*/sbit xg0=P10;/左尋軌對管sbit xg1=P11;/中間尋軌對管sbit
2、 xg2=P12;/右尋軌對管sbit xz=P13;/感應擋板對管/*/sbit Q_IN1=P20; /車前左輪控制 sbit Q_IN2=P21;sbit Q_IN3=P22; /車前右輪控制sbit Q_IN4=P23; sbit H_IN1=P24; /車尾左輪控制sbit H_IN2=P25;sbit H_IN3=P26; /車尾右輪控制sbit H_IN4=P27;sbit Q_ENA=P30; /車前左輪使能,PWMsbit Q_ENB=P31; /車前右輪使能,sbit H_ENA=P36; /車尾左輪使能,sbit H_ENB=P37; /車尾右輪使能,/*/#define
3、 stra_q_l 100 /直線行走時,四個輪子占空比調(diào)試#define stra_q_r 100#define stra_h_l 100#define stra_h_r 100#define turn_q_l 100 /轉彎時四個輪子的占空比調(diào)試#define turn_q_r 100#define turn_h_l 100#define turn_h_r 100 #define turnr_time 2900/右轉彎時的延時常數(shù)#define turnl_time 3000 /左轉彎時的延時常數(shù)#define dt_time 5800 /原地掉頭時延時常數(shù)#define over_tim
4、e 1000 /停止延時#define back_time 2500 /走完環(huán)形,回到直道延時轉彎#define black_time 1500 /過黑線的時間#define correct_l_time 700 /左矯正時間#define correct_r_time 700 /右矯正時間#define hou_time 200/*/ uchar q_duty_l,q_duty_r,h_duty_l,h_duty_r,/車前后左右輪占空比 i=0,j=0,k=0,m=0;/*/ void delay_cir(uint n) uchar x; while(n-) for(x=0; x<2
5、50;x+); ; /*/void delay(uint ct)/ 延時函數(shù) uint t; t=ct; while(t-);/*/void straight() /直走 q_duty_l=stra_q_l; q_duty_r=stra_q_r; h_duty_l=stra_h_l; h_duty_r=stra_h_r; Q_IN1=1; Q_IN2=0; Q_IN3=1; Q_IN4=0; H_IN1=1; H_IN2=0; H_IN3=1; H_IN4=0; /*/void houtui()/后退 q_duty_l=stra_q_l; q_duty_r=stra_q_r; h_duty_l
6、=stra_h_l; h_duty_r=stra_h_r; Q_IN1=0; Q_IN2=1; Q_IN3=0; Q_IN4=1; H_IN1=0; H_IN2=1; H_IN3=0; H_IN4=1; /*/void turn_left()/左轉 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=turn_h_r; Q_IN1=0; /左輪反轉 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右輪正轉 Q_IN4=0; H_IN3=1; H_IN4=0; delay(turnl_tim
7、e);/*/void turn_right() /右轉 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_q_l; h_duty_r=turn_q_r; Q_IN1=1; /左輪正轉 Q_IN2=0; H_IN1=1; H_IN2=0; Q_IN3=0;/右輪反轉 Q_IN4=1; H_IN3=0; H_IN4=1; delay(turnr_time);/*/void turn_round() /原地掉頭 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=tu
8、rn_h_r; Q_IN1=0; /左輪反轉 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右輪正轉 Q_IN4=0; H_IN3=1; H_IN4=0; delay(dt_time);/*/void over() /小車停止 Q_IN1=0; Q_IN2=0; Q_IN3=0; Q_IN4=0; H_IN1=0; H_IN2=0; H_IN3=0; H_IN4=0; /*/void correct_right() /左偏,向右矯正 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_q_l; h_duty_r=t
9、urn_q_r; Q_IN1=1; /左輪正轉 Q_IN2=0; H_IN1=1; H_IN2=0; Q_IN3=0;/右輪反轉 Q_IN4=1; H_IN3=0; H_IN4=1; delay(correct_r_time);void correct_left() /右偏,向左矯正 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=turn_h_r; Q_IN1=0; /左輪反轉 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右輪正轉 Q_IN4=0; H_IN3=1; H_IN4=
10、0; delay(correct_l_time);/*/void xunji() if(xg1=1) turn_count+;over();delay(over_time);if(turn_count=1)straight(); delay(black_time);elseif(turn_count=2)houtui(); delay(hou_time); turn_left();elseif(turn_count=3)houtui(); delay(hou_time); turn_right();elseif(turn_count=4)houtui(); delay(hou_time); t
11、urn_right();elseif(turn_count=5)straight(); delay(black_time);elseif(turn_count=6)houtui(); delay(hou_time); turn_right();elseif(turn_count=7)houtui(); delay(hou_time); turn_right(); straight(); delay(back_time); turn_left();elseif(turn_count=8)straight(); delay(black_time);elseif(turn_count=9)houtu
12、i(); delay(100); turn_round(); if(turn_count>=9)turn_count=0; cir_count+; circle-;if(cir_count=cir_comp) end=1; over(); delay(500); else if(xg0=0)&&(xg1=0)&&(xg2=0) straight(); else if(xg0=1)&&(xg1=0)&&(xg2=0) over(); delay(over_time); houtui(); delay(hou_time); co
13、rrect_right(); /左偏,向右矯正 else if(xg0=0)&&(xg1=0)&&(xg2=1) over(); delay(over_time); houtui(); delay(hou_time); correct_left(); /右偏,向左矯正 /*/void int0(void) interrupt 0/中斷圈數(shù)設定 EX0=0; delay_cir(250); circle+; cir_comp+; if(circle>8) circle=0; cir_comp=0; P0=led_datacircle; EX0=1;/*/vo
14、id time1(void) interrupt 3 /T1溢出中斷,電機調(diào)速 i+; j+; k+; m+; if(i<q_duty_l) Q_ENA=1; else Q_ENA=0; if(i>100) Q_ENA=1;i=0; if(j<q_duty_r) Q_ENB=1; else Q_ENB=0; if(j>100 ) Q_ENB=1;j=0; if(k<h_duty_l) H_ENA=1; else H_ENA=0; if(k>100) H_ENA=1;k=0; if(m<h_duty_r) H_ENB=1; else H_ENB=0; if(m>100) H_ENB=1;m=0; P0=led_datacircle; TH1=0XFF; TL1=0XF6; /*/void mai
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人二手房買賣協(xié)議書范本:二手房交易法律咨詢合同
- 2025年度內(nèi)部員工股權激勵計劃變更與股權轉讓合同
- 二零二五年度奶粉行業(yè)市場分析報告定制合同
- 二零二五年度培訓中心教師教學資源共享聘用合同
- 2025年度私人旅行規(guī)劃服務合同2篇
- 2025版抹灰班組安全生產(chǎn)責任制考核合同4篇
- 2025年度自動駕駛汽車測試場租賃合同范本3篇
- 二零二五年度民間借貸裁判觀點與法律適用合同4篇
- 2025年度智能家居購房合同協(xié)議書
- 2025年度退定金協(xié)議:藝術品展覽門票退訂服務合同
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學期生物人教版(2019)必修2
- 內(nèi)科學(醫(yī)學高級):風濕性疾病試題及答案(強化練習)
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設備(電腦、一體機、投影機等)采購 投標方案(技術方案)
- 案卷評查培訓課件模板
- 2024年江蘇省樣卷五年級數(shù)學上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
- 金融交易數(shù)據(jù)分析與風險評估項目環(huán)境敏感性分析
- 牛頓環(huán)與劈尖實驗論文
評論
0/150
提交評論