|
分享一套智能小車(chē)程序
0.png (78.52 KB, 下載次數(shù): 66)
下載附件
2017-5-15 17:13 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- #include"Config.h"
- #include"IOCfg.c"
- #include"TimeDLY.h"
- #include"StepMot.h"
- #include"Follow.h"
- #include"LightDTC.h"
- #include"MetalDTC.h"
- #include"SegDisp.h"
- #include"UltraDTC.h"
- INT32U RunTime=0; //運(yùn)行時(shí)間
- INT8U MetalNum=0; //直道的金屬塊數(shù)目
- void InitIO()
- {
- LMot_AP=0;LMot_AN=0;LMot_BP=0;LMot_BN=0;
- RMot_AP=0;RMot_AN=0;RMot_BP=0;RMot_BN=0;
- Follow_L=1;Follow_M=1;Follow_R=1;
- Metal_DTC=1;
- UltraDTC_TR=0;UltraDTC_RE=1;
- LightDTC_L=1;LightDTC_M=1;LightDTC_R=1;
- Guide=0;
- DS1CS=0;DS0CS=0;P2=0x00;
- }
-
- void main()
- {
- INT8U i;
- InitIO();
- LMotRun(LSPEED);
- RMotRun(LSPEED);
- TMOD = TMOD | 0x20 ; //T1 工作在方式2(8位計(jì)數(shù)器,自動(dòng)重載)
- TH1 = 0x00;
- TL1 = 0x9B;
- EA = 1;
- ET1 = 1;
- TR1 = 1;
- while(1)
- {
- do //直道運(yùn)行時(shí)間小于20秒,實(shí)際約為15秒
- {
- Follow();
- if(Metal_Detec()) MetalNum++;
- Seg_Disp((INT8U)(RunTime/10000));
- }
- while(RunTime<200000);
- do
- {
- Follow();
- Seg_Disp((INT8U)(RunTime/10000));
- }
- while(Metal_DTC != 1);
- //達(dá)到C點(diǎn),停留5s,斷續(xù)聲光指示
- LMotStop();
- RMotStop();
- for(i=0;i<5;i++)
- {
- Guide = 1;
- T0_Delay(5000);
- Guide = 0;
- T0_Delay(5000);
- }
- do //進(jìn)入障礙區(qū)
- {
- Ultra_DTC();
- Seg_Disp((INT8U)(RunTime/10000));
- }
- while(RunTime<500000);
- do //進(jìn)入停車(chē)區(qū)
- {
- Light_DTC();
- Seg_Disp((INT8U)(RunTime/10000));
- }
- while(RunTime<800000);
- //停車(chē)
- LMotRun(HSPEED);
- RMotRun(HSPEED);
- LDelay(20000);
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
智能小車(chē).rar
(44.83 KB, 下載次數(shù): 15)
2017-5-15 13:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|