日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单片机——蝙蝠超声思想避物小车

發(fā)布時(shí)間:2024/3/26 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机——蝙蝠超声思想避物小车 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1、圖片

2、代碼?


1、圖片

? ? ? ? ? ????

2、代碼?

#include <reg52.h> //52芯片配置文件 #include <intrins.h> //包含nop等系統(tǒng)函數(shù) #include "bst_car.h" unsigned char disbuff[4]={0,0,0,0};//用于分別存放距離的值0.1mm、mm、cm和m的值unsigned int time=0;//用于存放定時(shí)器時(shí)間值 unsigned long S=0;//用于存放距離的值 bit flag =0; //量程溢出標(biāo)志位 char a=0;//延時(shí)函數(shù) void delay(unsigned int xms) {unsigned int i,j;for(i=xms;i>0;i--) //i=xms即延時(shí)約xms毫秒for(j=112;j>0;j--); }void Delay10us(unsigned char i) //10us延時(shí)函數(shù) 啟動(dòng)超聲波模塊時(shí)使用 { unsigned char j; do{ j = 10; do{ _nop_(); }while(--j); }while(--i); } void StartModule() //啟動(dòng)超聲波模塊 {TX=1; //啟動(dòng)一次模塊Delay10us(2);TX=0; }void Forward(void)//前進(jìn) {IN2=1;IN3=1;IN1=0;IN4=0; }void Stop(void) //停車 {IN1=0; IN2=0;IN3=0;IN4=0; }void back(void) //后退 {IN1=1; IN2=0;IN3=0;IN4=1; } void Turn_Right(void) //向右旋轉(zhuǎn) {IN1=0; IN2=1;IN3=0;IN4=1;}/********距離計(jì)算程序***************/ void conut1(void) {time=TH1*256+TL1;TH1=0;TL1=0;//此時(shí)time的時(shí)間單位決定于晶振的頻率,外接晶振為11.0592MHZ//那么1us聲波能走多遠(yuǎn)的距離呢?1s=1000ms=1000000us // 340/1000000=0.00034米//0.00034米/1000=0.34毫米 也就是1us能走0.34毫米//但是,我們現(xiàn)在計(jì)算的是從超聲波發(fā)射到反射接收的雙路程,//所以我們將計(jì)算的結(jié)果除以2才是實(shí)際的路程S=time*0.17+10; //此時(shí)計(jì)算到的結(jié)果為毫米,并且是精確到毫米的后兩位了,有兩個(gè)小數(shù)點(diǎn) }void Conut(void) {conut1();if((S>=5000)||flag==1) //超出測(cè)量范圍{a=0; flag=0;}else{disbuff[0]=S%10;disbuff[1]=S/10%10;disbuff[2]=S/100%10;disbuff[3]=S/1000;}//========避障部分===========================================if(S<=240) 剎車障礙物距離 跟車速有關(guān) 可更改{ a++;if(a>=2){a=0;Stop();back(); //后退緩沖delay(230);// 后退緩沖時(shí)間 跟車速有關(guān) 可更改B:Turn_Right();delay(50); /// 旋轉(zhuǎn)角度 跟環(huán)境復(fù)雜程度有關(guān) 可更改Stop();delay(100); 旋轉(zhuǎn)頓挫時(shí)間 視覺(jué)效果 可更改StartModule(); while(RX==0);TR1=1; //開啟計(jì)數(shù)while(RX); //當(dāng)RX為1計(jì)數(shù)并等待TR1=0; //關(guān)閉計(jì)數(shù)conut1();if(S>340) 可直行方向無(wú)障礙物距離 跟環(huán)境有關(guān) 可更改{Turn_Right();delay(90); Stop(); //微調(diào)前進(jìn)方向 避免車寬對(duì)前進(jìn)影響delay(200); Forward();} else{goto B; //若沒(méi)轉(zhuǎn)到空曠方向 回到B點(diǎn) 繼續(xù)旋轉(zhuǎn)一次}}else{Forward(); //無(wú)障礙物 直行}}else{a=0;Forward(); //無(wú)障礙物 直行}//=======================================}/********************************************************/ void zd0() interrupt 3 //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍 {flag=1; //中斷溢出標(biāo)志RX=0; }/********超聲波高電平脈沖寬度計(jì)算程序***************/ void Timer_Count(void) {TR1=1; //開啟計(jì)數(shù)while(RX); //當(dāng)RX為1計(jì)數(shù)并等待TR1=0; //關(guān)閉計(jì)數(shù)Conut(); //計(jì)算} /********************************************************/ void keyscan(void) //按鍵掃描函數(shù) {A: if(K4==0) //判斷是否有按下信號(hào){delay(10); //延時(shí)10msif(K4==0) //再次判斷是否按下{FM=0; //蜂鳴器響 while(K4==0); //判斷是否松開按鍵FM=1; //蜂鳴器停止 }else{goto A; //跳轉(zhuǎn)到A重新檢測(cè)}}else{goto A; //跳轉(zhuǎn)到A重新檢測(cè)} } /********************************************************/ /*************主程序********************/ void main(void) {unsigned int a;delay(400); //啟動(dòng)等待,等LCM講入工作狀態(tài)delay(5);//延時(shí)片刻TMOD=TMOD|0x10;//設(shè)T0為方式1,GATE=1;EA=1; //開啟總中斷TH1=0;TL1=0; ET1=1; //允許T0中斷keyscan() ; //按鍵掃描while(1){RX=1;StartModule(); //啟動(dòng)模塊for(a=951;a>0;a--){if(RX==1){Timer_Count(); //超聲波高電平脈沖寬度計(jì)算函數(shù)}}} } bst_car.h 文件#ifndef __BSTCAR_H__ #define __BSTCAR_H__//小車驅(qū)動(dòng)模塊的IO設(shè)置 sbit IN1=P2^2; sbit IN2=P2^3; sbit IN3=P2^5; sbit IN4=P2^6; sbit EN1=P2^4; sbit EN2=P2^7;//按鍵IO sbit K4=P3^4; sbit K3=P3^6;//蜂鳴器IO sbit FM=P1^3;//紅外循跡IO設(shè)置 sbit Left_1_led=P3^3; //循跡-左紅外IO sbit Right_1_led=P3^2; //循跡-右紅外IO //紅外避障 sbit Left_2_led=P3^4; //避障-左紅外IO sbit Right_2_led=P3^5; //避障-右紅外IO //超聲波IO定義 sbit TX=P3^0; //Trig 控制端 sbit RX=P3^1; //Echo 接收端#define Left_moto_go {IN1=0,IN2=1;} //左電機(jī)向前走 #define Left_moto_back {IN1=1,IN2=0;} //右電機(jī)向后走 #define Left_moto_Stop {EN1=0;} //左電機(jī)停止 #define Right_moto_go {IN3=1,IN4=0;} //右電機(jī)向前走 #define Right_moto_back {IN3=0,IN4=1;} //右電機(jī)向后走 #define Right_moto_Stop {EN2=0;} //右電機(jī)停止#endif

總結(jié)

以上是生活随笔為你收集整理的单片机——蝙蝠超声思想避物小车的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 啪啪网站免费 | 欧美精品亚洲一区 | 成人免费网址 | 国产字幕在线观看 | 茄子视频A | 久久午夜伦理 | 潘金莲性xxxxhd| 中文字幕乱码一区二区 | 美女视频久久 | 97天天干| 亚洲最大中文字幕 | 男人的天堂伊人 | 黄色网占 | 国产男女无遮挡猛进猛出 | 一级全黄色片 | 高清av免费| 婷婷综合视频 | 日本不卡一区二区三区视频 | 亚洲tv在线观看 | 91超薄丝袜肉丝一区二区 | 亚洲AV成人无码久久 | 性调教学院高h学校 | 色婷婷一区二区三区四区 | 欧美激情天堂 | 美女诱惑一区 | 一区二区三区四区精品 | 国产黄色网址在线观看 | 亚洲操一操 | 国产91在线高潮白浆在线观看 | 一区二区三区四区免费视频 | 日本在线免费观看视频 | 久操色| 亚洲最新av网站 | 国产稀缺精品盗摄盗拍 | 毛片一级免费 | 日韩亚洲天堂 | 免费看国产黄色片 | 超碰人人草人人干 | 日韩av在线播放网址 | 超碰日韩在线 | 日韩区一区二 | 人成免费在线视频 | 国产精品综合一区二区 | 视频一区二区在线播放 | 五月婷婷在线观看 | 婷婷伊人 | 久草免费av | 成人在线91 | 亚洲一区二区三区 | 欧美精品久久久久久久自慰 | a午夜| 日本一区免费视频 | av无毛 | 一级少妇精品久久久久久久 | 国产一区视频免费观看 | 欧美xxxx免费虐| 日韩欧美中字 | 男女瑟瑟网站 | 夜夜骑天天干 | 在线不卡的av | 欧美成人免费高清视频 | 精品人妻一区二区乱码 | 午夜整容室 | 国产一区二区小视频 | www色婷婷| 99精品视频一区二区三区 | 秋霞亚洲 | 亚洲国产精品成人综合久久久 | 污污av | 我的公把我弄高潮了视频 | 97色在线视频 | 国产18精品乱码免费看 | 国产超碰人人模人人爽人人添 | 日本裸体视频 | 日本电影成人 | 秋霞午夜视频 | 黄色特级网站 | 在线天堂av | 上床视频在线观看 | 外国a级片| 色婷婷亚洲一区二区三区 | 亚洲AV无码阿娇国产精品 | 永久黄色网址 | 欧美人体做爰大胆视频 | 久久国产激情视频 | 一色桃子juy758在线播放 | 中国av在线 | 三级福利 | av在线网址大全 | 人物动物互动39集免费观看 | 久久精品一区二区 | 狠狠亚洲 | 999免费 | 午夜欧美激情 | 91av福利视频 | 亚洲久久久久久 | 又大又粗弄得我出好多水 | 成人h片在线观看 | 国产精品久久久久91 |