智能小车循迹、避障、红外遥控C语言代码.doc

智能小车循迹、避障、红外遥控C语言代码.doc

ID:56718669

大小:46.50 KB

页数:13页

时间:2020-07-06

智能小车循迹、避障、红外遥控C语言代码.doc_第1页
智能小车循迹、避障、红外遥控C语言代码.doc_第2页
智能小车循迹、避障、红外遥控C语言代码.doc_第3页
智能小车循迹、避障、红外遥控C语言代码.doc_第4页
智能小车循迹、避障、红外遥控C语言代码.doc_第5页
资源描述:

《智能小车循迹、避障、红外遥控C语言代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、//智能小车避障、循迹、红外遥控C语言代码//实现功能有超声波避障,红外遥控智能小车,红外传感器实现小车自动循迹,1602显示小车的工作状态,另有三个独立按键分别控制三种状态的转换//注:每个小车的引脚配置都不一样,要注意引脚的配置,但是我的代码注释比较多,看起来比较容易一点#include#include#include"lcd.h"#include#defineucharunsignedchar#defineuintunsignedintucharENCHAR_PuZh1[8]="run";/

2、/1602显示数组ucharENCHAR_PuZh2[8]="back";ucharENCHAR_PuZh3[8]="stop";ucharENCHAR_PuZh4[8]="left";ucharENCHAR_PuZh5[8]="right";ucharENCHAR_PuZh6[8]="xunji";ucharENCHAR_PuZh7[8]="bizhang";ucharENCHAR_PuZh8[8]="yaokong";#defineHWP2//红外传感器引脚配置P2k口#definePWMP1/*L298N管脚定义*//**************

3、****************超声波引脚控制******************************/sbitECHO=P3^2;//超声波接收引脚定义兼红外遥控按键state_total=2sbitTRIG=P3^3;//超声波发送引脚定义/////红外控制引脚配置sbitKEY2=P3^7;//红外接收器数据线兼循迹按键state_total=0sbitKEY1=P3^4;//独立按键p3.4控制自动避障state_total=1ucharstate_total=3,state_2=0;//总状态控制全局变量0为自动循迹模块1为自动避障模块2

4、为红外遥控ucharstate_1,DAT;//红外扫描标志位uchartime_1=0,time_2=0;//定时器1中断全局变量time_2控制PWM脉冲计数time_1控制转弯延时计数也做延时一次0.005suchartime,timeH,timeL,state=0;//超声波测量缓冲变量state为超声波状态检测控制全局变量uintcount=0;//1602显示计数/**************************/unsignedcharIRCOM[7];//红外接收头接收数据缓存IRCOM[2]存放的为数据unsignedcharNu

5、mber,distance[4],date_data[8]={0,0,0,0,0,0,0,0};//红外接收缓存变量/***********/voidIRdelay(charx);//x*0.14MS红外头专用delayvoidrun();voidback();voidstop();voidleft_90();voidleft_180();voidright_90();voiddelay(uintdat);//voidinit_test();voiddelay_100ms(uintms);voiddisplay(uchartemp);//超声波显示驱动

6、voidbizhang_test();voidxunji_test();voidhongwai_test();voidDelay10ms(void);voidinit_test()//定时器01外部中断01延时初始化{TMOD=0x11;//设置定时器01工作方式116位初值定时器TH1=0Xfe;//装入初值定时一次为0.0005s2000hzTL1=0x0c;TF0=0;//定时器0方式1计数溢出标志TF1=0;//定时器1方式1计数溢出标志ET0=1;//允许定时器0中断溢出ET1=1;//允许定时器1中断溢出EA=1;//开总中断if(stat

7、e_total==1)//为超声波模块时初始化{TRIG=0;//发射引脚低电平ECHO=0;//接收引脚低电平EX0=0;//关闭外部中断IT0=1;//由高电平变低电平,触发外部中断0}if(state_total==2)//红外遥控初始化{IT1=1;//外部中断1为负跳变触发EX1=1;//允许外部中断1TRIG=1;//3.3为高电平I/O口初始化}delay(60);//等待硬件操作}voidmain(){uinti;delay(50);init_test();TR1=1;//开启定时器1LCD1602_Init();delay(50);w

8、hile(state_2==0){if(KEY1==0)//检测按键s1是否按下{Delay1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。