智能循迹小车毕业设计_第1页
智能循迹小车毕业设计_第2页
智能循迹小车毕业设计_第3页
智能循迹小车毕业设计_第4页
智能循迹小车毕业设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能(zh nn)循迹小车XX市XX技师(jsh)学院项目编号:工程X组-AXX项目负责:XXX指导老师:XX、XXX共十六页控制程序设计选题背景电路焊接组装结构设计工作原理控制电路设计目录共十六页自第一台工业机器人诞生以来,制造能代替人工作的机器一直是梦想。随着汽车工业的迅速发展,关于汽车的研究也越来越受人关注。中国自1987年把“智能模拟(mn)”作为国家科学技术发展规划的主要课题,开始着力研究智能化。随着智能化的发展,创造了无人驾驶汽车,无人工仓库,服务机器人。 智能化作为现代化社会的新产物,也是以后的发展方向。选题(xun t)背景第一PPT模板网:共十六页结构设计材料现在各种快餐店打

2、包都提供一次性筷子,只使用一次就扔掉实在太不环保!减少树木的砍伐,维护人类与自然的和谐共处。那身边已经有很多一次性筷子怎么办呢,可以将它们收集起来,洗干净后可以搞些制作,比如我们这次设计中利用到。这次我们的设计整车车架主要材料就是(jish),经过一次性使用后回收的筷子。共十六页 造型(zoxng) 小车的车头主要,参考铲车的车头设计,为了保证小车车头灯的正常运作,参考收割机的护刃器设计,制作了属于小车的“护刃器”保护车头。结构设计多根车头的横樑仿佛一个巨大的散热器大力十足,车身分两部分(b fen),前部分(b fen)为主电路板与控制显示电路,后部分(b fen)为载物仓可以搭载一定数量的

3、货物,仿佛就像一台皮卡,动力,载物,的实用。共十六页第一(dy)PPT模板网:控制电路设计(shj)信号检测模块采用三对红外发射管与红外接收管。一对红外管用以小车遇到前方有障碍物时信号的检测。另外两对管用以,小车循迹时跟自动行走时,对黑线进行检测与遇到悬空“路段”时的检测。端口P3.5、P3.6、P3.7分别接三组红外管。端口P3.3为红外遥控接收管信号传输。(信号检测模块)主要有四大模块包括信号检测模块、主控电路模块、电机驱动模块、串口烧录模块。共十六页第一(dy)PPT模板网:控制电路设计(shj)(信号检测模块)主控电路模块控制处理器采用宏晶公司的8051核心的STC89C52单片机作为

4、控制处理主芯片。主控电路包括显示电路,显示电路分两种显示,一种为LED灯显示,另一种为LED数码管显示。端口P1.0P1.7连接LED1LED8端口P2.1P2.7连接LED数码管端口P2.0与P0.7连接LED车头灯X1X2端口连接震荡电路VCC,RESET,EA/VP分别接电源与复位电路组成控制系统。主要有四大模块包括信号检测模块、主控电路模块、电机驱动模块、串口烧录模块。共十六页第一(dy)PPT模板网:控制电路设计(shj)(电机驱动模块)电机驱动模块采用的是LG9110电机驱动芯片,专用于电机驱动,单片机控制与传统分立原件电路相比,使整个系统有很好的稳定性可靠性强。信号检测模块将采集

5、到的路况信号传入STC89C52单片机,经单片机处理后对LG9110发出指令尽心相应的调整。单片机P0.0、P0.1、P0.2、P0.3端口分别接两个组模块的IB跟LA端口进行数据控制。主要有四大模块包括信号检测模块、主控电路模块、电机驱动模块、串口烧录模块。共十六页第一(dy)PPT模板网:控制电路设计(shj)(串口烧录模块)串口烧录模块采用的是MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。主要有四大模块包括信号检测模块、主控电路模块、电机驱动模块、串口烧录模块。串口烧录模块连接单片机的 RXD(P3.0)、 TXD(P3.

6、1)端口进行对单片机的数据传输。共十六页第一(dy)PPT模板网:电路(dinl)焊接组装共十六页控制(kngzh)程序设计第一(dy)PPT模板网:使用C语言进行程序编写#include /包含51单片机相关的头文件#define uint unsigned int /重定义无符号整数类型#define uchar unsigned char /重定义无符号字符类型uchar code LedShowData=0 x03,0 x9F,0 x25,0 x0D,0 x99, /定义数码管显示数据0 x49,0 x41,0 x1F,0 x01,0 x19;/0,1,2,3,4,5,6,7,8,9u

7、char code RecvData=0 x07,0 x0A,0 x1B,0 x1F,0 x0C,0 x0D,0 x0E,0 x00,0 x0F,0 x19;uchar IRCOM7; /接收数据缓冲区static unsigned int LedFlash; /定义闪动频率计数变量unsigned char RunFlag=0; /定义运行标志bit EnableLight=0; /定义指示灯使能位/*完成基本数据变量定义*/sbit S1State=P10; /定义S1状态标志位sbit S2State=P11; /定义S2状态标志位sbit B1State=P12; /定义B1状态标志位

8、sbit IRState=P13; /定义IR状态标志位sbit RunStopState=P14; /定义运行停止标志位sbit FontIRState=P15; /定义FontIR状态标志位sbit LeftIRState=P16; /定义LeftIR状态标志位sbit RightIRState=P17; /定义RightIRState状态标志位/*完成状态指示灯定义*/sbit S1=P32; /定义S1按键端口sbit S2=P34; /定义S2按键端口/*完成按键端口的定义*/ sbit LeftLed=P20; /定义前方左侧指示灯端口sbit RightLed=P07; /定义前

9、方右侧指示灯端口/*完成前方指示灯端口定义*/sbit LeftIR=P35; /定义前方左侧红外探头sbit RightIR=P36; /定义前主右侧红外探头sbit FontIR=P37; /定义正前方红外探头/*完成红外探头端口定义*/sbit M1A=P00; /定义电机1正向端口sbit M1B=P01; /定义电机1反向端口sbit M2A=P02; /定义电机2正向端口sbit M2B=P03; /定义电机2反向端口/*完成电机端口定义*/sbit B1=P04; /定义话筒传感器端口sbit RL1=P05; /定义光敏电阻端口sbit SB1=P06; /定义蜂鸣端口/*完成

10、话筒,光敏电阻,蜂鸣器.端口定义*/sbit IRIN=P33; /定义红外接收端口/*完成红外接收端口的定义*/#define ShowPort P2 /定义数码管显示端口extern void ControlCar(uchar CarType); /声明小车控制子程序void delay(unsigned char x) /0.14mS延时程序 unsigned char i; /定义临时变量 while(x-) /延时时间循环 for (i = 0; i13; i+) /14mS延时 void Delay() /定义延时子程序 uint DelayTime=30000; /定义延时时间变

11、量 while(DelayTime-); /开始进行延时循环 return; /子程序返回void ControlCar(uchar CarType) /定义小车控制子程序 M1A=0; /将电机1正向电平置低 M1B=0; /将电机1反向电平置低 M2A=0; /将电机2正向电平置低 M2B=0; /将电机2反向电平置低 LeftLed=1; /关闭前方左侧指示灯 RightLed=1; /关闭前方右侧指示灯 Delay(); /将此状态延时一段时间switch(CarType) /判断小车控制指令类型 case 1: /前进 /判断是否是前进 M1A=1; /将电机1正向端口置高 M2A=

12、1; /将电机2正向端口置高 ShowPort=LedShowData1; /数码管显示前进状态 break; /退出判断 case 2: /后退 /判断是否是后退 M1B=1; /将电机1反向端口置高 M2B=1; /将电机2反向端口置高 ShowPort=LedShowData2; /数码管显示后退状态 RightLed=0; /将前方右侧指示灯置低(亮) LeftLed=0; /将前方左侧指示灯置低(亮) break; /退出判断 case 3: /左转 /判断是否是左转 M1B=1; /将电机1反向端口置高 M2A=1; /将电机2正向端口置高 ShowPort=LedShowData

13、3; /数码管显示左转状态共十六页控制(kngzh)程序设计第一(dy)PPT模板网:使用C语言进行程序编写 LeftLed=0; /将前方左侧指示灯置低(亮) break; /退出判断case 4: /右转 /判断是否是右转 M1A=1; /将电机1正向端口置高 M2B=1; /将电机2反向端口置高 ShowPort=LedShowData4; /数码管显示右转状态 RightLed=0; /将前方右侧指示灯置低(亮) break; /退出判断 default: /默认情况下的判断 break; /直接退出判断 void ComBreak() interrupt 4 /定义串口通信子程序un

14、signed char RecvData; /定义串口数据接收变量 if(RI=1) /判断是否接收数据 RecvData=SBUF /将接收到的数据放入暂时变量 if(RecvData10) /判断接收到的数据是否小于10ShowPort=LedShowDataRecvData; /将接收到的数据通过数码管显示出来 ControlCar(RecvData); /将串口数据置于小于状态 SBUF=RecvData; /向电脑返回当前接收到的数据 RI=0; /清除接收中断标志位 if(TI=1) /判断是否是发送中断 TI=0; /清除发送中断标志位void IR_IN() interrupt

15、 2 using 0 /定义INT2外部中断函数 unsigned char j,k,N=0; /定义临时接收变量 EX1 = 0; /关闭外部中断,防止再有信号到达 delay(15); /延时时间,进行红外消抖 if (IRIN=1) /判断红外信号是否消失 EX1 =1;/外部中断开 return;/返回 while (!IRIN)/等IR变为高电平,跳过9ms的前导低电平信号。 delay(1);/延时等待 for (j=0;j4;j+)/采集红外遥控器数据 for (k=0;k=30)/判断计数器累加值 EX1=1;/打开外部中断功能 return;/返回 IRCOMj=IRCOMj

16、 1; /进行数据位移操作并自动补零 if (N=8) /判断数据长度 IRCOMj = IRCOMj | 0 x80;/数据最高位补1 N=0;/清零位数计录器 if (IRCOM2!=IRCOM3)/判断地址码是否相同 EX1=1;/打开外部中断 return;/返回 for(j=0;j10;j+)/循环进行键码解析 if(IRCOM2=RecvDataj)/进行键位对应 P2=LedShowDataj;/数码管显示相应数码 switch(IRCOM2) case 0 x1A:/前进 ControlCar(1); /小车前进 case 0 x05:/后退 ControlCar(2); /小

17、车后退 case 0 x01:/左转 ControlCar(3); /小车左转 case 0 x03: /右转 ControlCar(4);/小车右转 case 0 x12:/电源 ControlCar(5);/停止 EX1 = 1; /外部中断开 void main(void) /主程序入口 bit ExeFlag=0;/定义可执行位变量 LedFlash=3000;/对闪灯数据进行初始化 TMOD=0 x01; /选择定时器0为两个16位定时器 TH0=0 xFF; /对定时器进行计数值进行初始化 TL0=0 x49;/同上,时间大约为25uS TR0=1;/同意开始定时器0 EX1=1;

18、 /同意开启外部中断1 IT1=1; /设定外部中断1为低边缘触发类型 ET0=0;SCON=80;/设置串口模式为8位数据 共十六页控制(kngzh)程序设计第一(dy)PPT模板网:使用C语言进行程序编写TMOD=33;/设置定时/计数器模式 TH1=0 xFD; /给定时器1高八位初始化初值 TL1=0 xFD;/给定时器1低八位初始化初值 TR1=1; /开启定时器1 ES=1;/开启串口通信功能 REN=1; /开启接收中断标志 EA=1; /总中断开启 ControlCar(1);/将小车置于前进状态 ShowPort=LedShowData0;/数码管显示数字0while(1)/

19、程序主循环 while(LedFlash-)/闪灯总延时 if(RL1=0)/判断光敏电阻的状态 RightLed=1;/将前方右侧指示灯点亮 LeftLed=1; /将前方左侧指示灯点亮 else/在光敏电阻为不通的状态下 RightLed=0;/将前方右侧指示灯熄灭 LeftLed=0; /将前方左侧指示灯熄灭 if(IRIN=0)/判断延时期间是否有红外信号输入 ExeFlag=1; /将可执行标志位置1 if(S1=0) /判断是否有S1按下 ControlCar(8); /将小车置于停止状态 RunFlag=1; /改变小车运行状态标志位 S1State=!S1State;/改变S1

20、按键标志位 goto NextRun;/跳转到NextRun标签 if(S2=0)/判断是否有S2按下 ControlCar(1);/将小车置于前进状态 RunFlag=0;/改变小车运行状态标志位 S2State=!S2State;/改变S2按键标志位 goto NextRun;/跳转到NextRun标签 FontIRState=FontIR;/前方红外指示灯显示正前方红外探头状态 LeftIRState=LeftIR;/左侧红外指示灯显示前方左侧红外探头状态 RightIRState=RightIR; /右侧红外指示灯显示前主右侧红外探头状态 if(FontIR=0 /* | LeftIR=1 | RightIR=1*/)/判断正前方,前左侧,前右侧红外探头状态 ControlCar(2);/改变小车状态为后退 SB1=!SB1;/将蜂鸣器取反 Delay();/调用延时子程序SB1=!SB1;/将蜂鸣器取反 Delay();/调用延时子程序 SB1=!SB1;/将蜂鸣器取反 Delay(); /调用延时子程序 SB1=!SB1;/将蜂鸣器取反 Delay(); /调用延时子程序 SB1=!SB1;/将蜂鸣器取反 Delay();/调用延时子程序 SB1=!SB1;/将蜂鸣器取反 Delay(); /调用延时子程序 SB1=!SB1; /将蜂鸣器取反 Control

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论