![智能小車的四路避障C程序_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/82121dd2-ce4a-4857-b806-e768915f4fcb/82121dd2-ce4a-4857-b806-e768915f4fcb1.gif)
![智能小車的四路避障C程序_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/82121dd2-ce4a-4857-b806-e768915f4fcb/82121dd2-ce4a-4857-b806-e768915f4fcb2.gif)
![智能小車的四路避障C程序_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/82121dd2-ce4a-4857-b806-e768915f4fcb/82121dd2-ce4a-4857-b806-e768915f4fcb3.gif)
![智能小車的四路避障C程序_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/82121dd2-ce4a-4857-b806-e768915f4fcb/82121dd2-ce4a-4857-b806-e768915f4fcb4.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智能小車的四路避障C 程序默認(rèn)分類2009-08-24 10:35閱讀 164評(píng)論 4字號(hào):大中小前,左,后避障傳感器現(xiàn)在對(duì)應(yīng)中,右,左三路尋線傳感器 .#include <stdio.h>#include <intrins.h>#include "STC12C5410AD.H"#include "sio.h"#define MIN9MS 0x0120/9ms中心是0x0159#define MAX9MS 0x01a0#define MIN45MS 0x0090/4.5ms中心是0x00ac#define MAX45MS 0x00
2、d0#define MIN225MS 0x0040/2.25ms中心是0x0056#define MAX225MS 0x0080#define MIN056MS 0x000e/0.56ms中心是0x0015#define MAX056MS 0x001b#define MIN168MS 0x0020/1.68ms中心是0x0040#define MAX168MS 0x0060sfr ISP_CUNTR = 0xE7;sbit LED1 = P11;sbit LED2 = P12;sbit IR_FRONT = P33;sbit IR_LEFT = P34;sbit IR_RIGHT = P35;
3、sbit IR_BACK = P13;sbit IR_OUT = P10;sbit PWM0 = P37;sbit MOTO_IN_A1 = P17;sbit MOTO_IN_A2 = P16;sbit MOTO_IN_B1 = P15;sbit MOTO_IN_B2 = P14;bit power_stat;static unsigned char car_stat; /小車狀態(tài) :0, 停止 ;1, 前進(jìn);2, 后退 ;3, 左轉(zhuǎn) ;4, 右轉(zhuǎn) ;ff, 自控尋線模式static unsigned char code led_mod_table320 = 1,0,0,0,0,0,0,0,0
4、,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;unsigned char idata led_mod = 0; static unsigned char idata led_tick = 0; static unsigned char idata led_ptr = 0;#define IR_SIGNAL_TOTAL 21#define IR_SIGNAL_VALID 18static unsigned char codeir_tabl
5、eIR_SIGNAL_TOTAL = 1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0;static unsigned char codeir_check_tableIR_SIGNAL_TOTAL = 0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0;static unsigned char idata ir_ptr = 0;static unsigned char idata front_signal = 0; static unsigned char idata back_signal = 0;static unsigne
6、d char idata left_signal = 0; static unsigned char idata right_signal = 0;static bit front_obj = 0, back_obj = 0, left_obj = 0, right_obj = 0;static void delay(unsigned long v) while (v-) /* PCA 中斷計(jì)數(shù) ,根據(jù)位置判斷信號(hào)區(qū)域和定義 ,位置 0 表示初始 ,1 代表引導(dǎo)碼信號(hào) ,2 表示引導(dǎo)碼間隔 ,* 3 表示第一個(gè) bit 的信號(hào) ,4 表示第一個(gè) bit 的間隔 ,以次類推 .* 更具體見對(duì)應(yīng)的
7、紅外線協(xié)議 .*/static unsigned char idata pca_tick;static unsigned char idata pca_int_count;static unsigned char data pca_int_total;導(dǎo)頭確定總長(zhǎng)度*/static unsigned int idata period;/*/* 根據(jù)引紅外信號(hào)占或空周期計(jì)數(shù) */static unsigned char idata data_buf6; /*紅外線協(xié)議數(shù)據(jù)緩沖區(qū) */static unsigned int idata ccap1;/PCA0 上一次的的計(jì)數(shù)static unsig
8、ned char idata frame_dog; /紅外幀看門狗,限定時(shí)間未接收完成清除工作void time0_isr() interrupt 1unsigned char tmp;if (ir_tableir_ptr+) IR_OUT = 0; else IR_OUT = 1;ir_ptr %= IR_SIGNAL_TOTAL;tmp = ir_check_tableir_ptr;if (!IR_FRONT && tmp) | (IR_FRONT && !tmp)front_signal+;if (!IR_LEFT && tmp) | (I
9、R_LEFT && !tmp)left_signal+;if (!IR_RIGHT && tmp) | (IR_RIGHT && !tmp)right_signal+;if (!IR_BACK && tmp) | (IR_BACK && !tmp)back_signal+;if (ir_ptr = 0) / com_putchar(front_signal);if (front_signal >= IR_SIGNAL_VALID)front_obj = 1;elsefront_obj = 0;if (back
10、_signal >= IR_SIGNAL_VALID)back_obj = 1;elseback_obj = 0;if (left_signal >= IR_SIGNAL_VALID)left_obj = 1;elseleft_obj = 0;if (right_signal >= IR_SIGNAL_VALID)right_obj = 1;elseright_obj = 0;front_signal = 0;back_signal = 0;left_signal = 0;right_signal = 0;void time0_initialize(void)TMOD &am
11、p;= 0x0F;/* clear timer 0 mode bits */TMOD |= 0x02;/* put timer 0 into MODE 2 */TH0 = 0x5C;/* 256 -XTAL*dur/T1_12/1000000, dur= 定時(shí)器的周期 ,以 us 為單位 */TL0 = 0x5C;/* 100us */PT0 = 0;/* 時(shí)鐘 0 中斷低優(yōu)先級(jí)*/TR0 = 1;ET0 = 1;static void wakeup (void) interrupt 2static void pca_isr (void) interrupt 6unsigned char i,
12、 j;if (CCF1) CCF1 = 0; /清 PCA1 中斷標(biāo)志 LED1 = IR_RIGHT; LED2 = IR_RIGHT;if (!pca_int_count) /第一次收到信號(hào) if (!IR_RIGHT) ccap1 = pca_tick * 256 + CCAP1H; pca_int_count+; else /已經(jīng)收到一些信號(hào)period = pca_tick * 256 + CCAP1H - ccap1;ccap1 = pca_tick * 256 + CCAP1H;/com_putchar(period / 256);/com_putchar(period % 25
13、6);if (pca_int_count = 1) if (period < MIN9MS | period > MAX9MS) /9mspca_int_count = 0;frame_dog = 0; elsepca_int_count+; else if (pca_int_count = 2) if (period > MIN225MS && period < MAX225MS) /2.25mspca_int_total = 3;pca_int_count+; else if (period > MIN45MS && perio
14、d < MAX45MS) /4.5mspca_int_total = 67;pca_int_count+; else pca_int_count = 0;frame_dog = 0; else if (IR_RIGHT) if (period > MIN056MS && period < MAX056MS) /0.56msif (pca_int_count >= pca_int_total) / 幀接收完畢 ,下面進(jìn)行有效分析 .if (pca_int_total = 67) / 完整信號(hào) , 含有引導(dǎo)信號(hào) ,設(shè)備碼 8bit, 設(shè)備反碼 8bit, 命
15、令字 8bit, 命令字反碼 8bitif (data_buf0 data_buf1 =0xff) && (data_buf2 data_buf3 = 0xff) com_putchar(data_buf0);com_putchar(data_buf2);if (data_buf0 = 0x40) switch (data_buf2) case 0x5F: / 左car_stat = 3;break;case 0x5B: / 右car_stat = 4;break;case 0x5A: / 上car_stat = 1;break;case 0x5E: / 下car_stat =
16、 2;break;case 0x56: / 菜單car_stat = 0;break;case 0x0: / 數(shù)字 0car_stat = 0xff;break;case 0x12: /POWER/ power_stat =power_stat;break;default:break; else /重復(fù)信號(hào),僅含有引導(dǎo)信號(hào)pca_int_count = 0;frame_dog = 0; else pca_int_count+; else pca_int_count = 0;frame_dog = 0; else j = (pca_int_count - 3) / 2;i = j / 8;j =
17、 j % 8;if (period > MIN168MS && period < MAX168MS) /1.68ms/ com_putchar(0x01); data_buf |= (0x01 << j); pca_int_count+; else if (period > MIN056MS && period< MAX056MS) /0.56ms/ com_putchar(0x00);data_buf &= (0x01 << j);pca_int_count+; else pca_int_count =
18、0;frame_dog = 0;if (CF) /PCA 計(jì)數(shù)溢出中斷 ,19.6608MHZ 晶體大約 6.7ms 溢出CF=0;pca_tick+;if (led_tick+ >= 10) led_tick = 0;if (led_mod_tableled_modled_ptr+) LED1 = 0; else LED1 = 1; LED2 = 1;led_ptr %= 20;if (pca_int_count) frame_dog+;if (frame_dog >= 15) /100ms 后重新開始分析新的紅外線數(shù)據(jù)包pca_int_count = 0;frame_dog =
19、 0;void auto_power_down() delay(30000);ISP_CUNTR = 0x20; /從 AP 復(fù)位并從 AP 執(zhí)行void main (void)unsigned char i;unsigned long j;MOTO_IN_A1 = 0;MOTO_IN_A2 = 0;MOTO_IN_B1 = 0;MOTO_IN_B2 = 0;P1M1 = 0xf0;/P1.7P1.4強(qiáng)推挽輸出EA=0;power_stat = 0;time0_initialize();com_initialize (); serial I/O */* initialize interrupt
20、 drivencom_baudrate (4800); /* setup for 1200 baud */*CMOD = 0x01;/ #00000000B,PCA空閑計(jì)數(shù),PCA 計(jì)數(shù)源 =Fosc/12,PCA 溢出中斷 (做一個(gè)定時(shí)器使用 )CCON = 0x00;/PCA 中斷標(biāo)志清 0,PCA 停止計(jì)數(shù)CL = 0x0;CH = 0x0;CCAPM1 = 0x31;/PCA1 上升下降沿捕獲*/CMOD = 0x03;/* #00000010B,PCA空閑計(jì)數(shù),PCA 計(jì)數(shù)源 =fosc/2,PCA 溢出中斷 */CCON = 0x00;/PCA 中斷標(biāo)志清 0,PCA 停止計(jì)數(shù)CL
21、 = 0x0;CH = 0x0;CCAPM1 = 0x31;/PCA1 上升下降沿捕獲CCAPM0 = 0x42;/PCA0 工作模式 :8 位 pwmPCA_PWM0 = 0x00;CCAP0L = 0x20;CCAP0H = 0x20;EPCA_LVD = 1;/允許 PCA 和低壓檢測(cè)中斷car_stat = 0;pca_tick = 0;pca_int_count = 0;frame_dog = 0;EA=1;CR=1;/* Enable Interrupts */啟動(dòng) PCA 計(jì)數(shù)while (1)if (power_stat) / auto_power_down();if (left_obj | right_obj | front_obj | back_obj) LED1 = 0;LED2 = 0;switch (car_stat)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度土地儲(chǔ)備中心國(guó)有土地房屋出售合同(2024版升級(jí))
- 市中心小區(qū)私人房屋轉(zhuǎn)租合同
- 產(chǎn)品部件加工合同范例
- 農(nóng)機(jī)用工勞動(dòng)合同范例
- 修冷鏈凍庫(kù)合同范本
- 個(gè)人洗衣設(shè)備轉(zhuǎn)讓合同范本
- 2025年度家具設(shè)計(jì)版權(quán)采購(gòu)合作協(xié)議
- 2025年度教師繼續(xù)教育與職業(yè)發(fā)展聘用合同范本
- 2025年度環(huán)保監(jiān)測(cè)與治理服務(wù)合同續(xù)簽申請(qǐng)書
- 2025年度教師教學(xué)科研設(shè)備共享使用合同
- 財(cái)務(wù)管控的間接成本
- 藏族唐卡藝術(shù)特色分析
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 《學(xué)校體育科研方法》課件
- 護(hù)士團(tuán)隊(duì)的協(xié)作和領(lǐng)導(dǎo)力培養(yǎng)培訓(xùn)課件
- QFD模板含計(jì)算公式計(jì)分標(biāo)準(zhǔn)說(shuō)明模板
- 慢阻肺試題練習(xí)
- 人工智能在生物醫(yī)學(xué)倫理與法律中的基因編輯與生命倫理問(wèn)題研究
- 國(guó)有資產(chǎn)管理辦法-國(guó)有資產(chǎn)管理辦法條例
- 公務(wù)車輛定點(diǎn)維修車輛保養(yǎng)(附彩圖) 投標(biāo)方案
- 00015-英語(yǔ)二自學(xué)教程-unit3
評(píng)論
0/150
提交評(píng)論