完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|TRIG接 P0.1 ECH0 接P0.2| L298N接线: |1A1----P2.5 |1A2-----P2.6| |2A1----P2.3 |2A2-----P2.2| #include #include ***it RX=P0^1; //接受端口 ***it TX=P0^0; //发射端口 //驱动引脚定义 ***it IN1=P2^6;//M2 ***it IN2=P2^5; ***it IN3=P2^3;//M1 ***it IN4=P2^2; unsigned int time=0; unsigned long S=0,num=0; bit flag =0; int m=0; uS延时函数大致延时 void DelayUs2x(unsigned char t) { while(--t); } /*--------------------------------- mS延时函数 ---------------------------------*/ void DelayMs(unsigned char t) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); } } void delay(void)// { DelayMs(200);DelayMs(200); DelayMs(200);DelayMs(200); DelayMs(200);DelayMs(200); } /*********驱动模块********************/ forword()//前进 { IN1=1; IN2=0; IN3=1; IN4=0; } turn_left()//左拐 { IN1=1; IN2=0; IN3=0; IN4=0; } /*turn_right()//右拐 { IN1=0; IN2=0; IN3=1; IN4=0; } */ stop()//停止 { IN1=0; IN2=0; IN3=0; IN4=0; } /*****T0中断用来计数器溢出,超过测距范围******/ void zd0() interrupt 1 { flag=1; //中断溢出标志 } /*********启动超生波模块*****************/ void StartModule() { TX=1; //启动一次模块 DelayUs2x(8); //延时大概20us TX=0; while(!RX); //当RX为零时等待 TR0=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 } unsigned int count() { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; //算出来是CM if((S>=30)||flag==1) //超出测量范围 { flag=0;S=1; } else S=0; DelayMs(80);//80MS return S; } //定时器T1溢出中断一定时间启动一次测距模块 void time1() interrupt 3 { ET1=0;TR1=0; TH1=(65536-15536)/256; TL1=(65536-15536)%256; StartModule(); num=count(); switch (S) { case 1:{ turn_left(); delay(); delay(); stop(); m=1; break; } case 0: { m=2; break; } } ET1=1;TR1=1; } /**************主函数*********************/ void main() { unsigned int i=0; TMOD=0x11; //设T0为方式1,GATE=1; TH0=0; TL0=0; ET0=1; //允许T0中断 TH1=(65536-15536)/256; TL1=(65536-15536)%256; ET1=1; //允许T1中断 TR1=1; EA=1; //开启总中 forword(); while(1) { if(m==1) { m=0; ET1=1;TR1=1; } if(m==2) { m=0; forword(); ET1=1;TR1=1; } } } |
|
相关推荐
5个回答
|
|
是编译出错还是功能无法实现啊?
|
|
|
|
报错是啥?要说清楚呀
|
|
|
|
|
|
|
|
|
|
|
|
。。。。。。。。。。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
158 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
237 浏览 0 评论
655 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
563 浏览 0 评论
862 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12033 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 14:23 , Processed in 1.153788 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号