ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:303.16KB ,
资源ID:3947216      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3947216.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自动往返小车设计改.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自动往返小车设计改.docx

1、自动往返小车设计改Hefei University2015年合肥学院电子设计竞赛项目报告 项目名称: 自动往返小车设计 作者姓名:王飞 1305033019 13自动化卓越班 朱丽娟 1305033024 13自动化卓越班 陈中海 1305033030 13自动化2班 指导教师: 完成时间: 目录摘 要: - 1 -关键词: - 1 -一、设计任务 - 2 -二、系统方案论证与分析 - 2 -2.1 主控芯片选择 - 3 -2.2 电机及驱动模块 - 4 -2.3 路面黑带检测模块 - 4 -2.4 电源选择 - 4 -2.5 控制单元模块 - 5 -2.6 数码管显示模块 - 5 -三、 程

2、序设计 - 6 -3.1 初始化 - 6 -3.1.1时钟初始化 - 6 -3.1.2端口初始化 - 7 -3.1.3 PWM初始化 - 8 -3.1.4 实时中断初始化 - 9 -3.1.5 周期性定时中断初始化 - 9 -四、小结 - 10 -五、参考书目 - 10 -附1: - 12 -附2:仪器设备清单 - 13 -附3:主函数及中断服务子函数代码 - 14 -摘 要:本系统以Freescale MC9S12XS128MCU为核心控制模块,附以外围电路,采用激光管和接收管进行信号检测和循线运动;通过CodewarriorIDE 在线Debug进行调试,实现自动往返小车设计。综合运用单片

3、机技术、自动控制理论、传感器检,使小车自动借助传感器识别路面环境以及行驶状态,运用单片机的运算和处理能力来实现小车的自动加速、限速、减速、定时、原地转向倒车、左转、右转、显示行驶时间等控制。关键词:MC9S12XS128MCU,自动控制,电动小车, PWM调速,传感器一、设计任务设计并制作一个能自动往返于起跑线与终点线间的小汽车,不能用人工遥控(包括有线和无线遥控),其行驶线路满足所需的要求。跑道宽度0.5米,表面贴有白纸,两侧有挡板,挡板与地面垂直,其高度不低于20厘米。在跑道的B, C, D, E, F, 各点处画有2厘米粗黑线。各段长度如图所示。要求 分区控制:如(图1)所示:图1 跑道

4、示意图车辆从起跑线出发(出发前,车体不得超过起跑线),到达终点线后停留10秒,然后自动返回起跑线(允许倒车返回)。往返一次的时间应力求最短(从合上汽车电源开始计时)。到达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线中心线之间距离作为偏差 的测量值)D-E间为限速区,车辆往返均要求低速通过,通过时间不得少于8秒,但不允许在限速区内停车。二、系统方案论证与分析根据设计任务要求,并且根据我们自己的需要而附加的功能,该系统的总体框图可分为几个基本的模块,框图如(图1)所示:、 图2-1 小车系统框图2.1 主控芯片选择针对此次设计的要求,以性能和熟悉程度为最重

5、要的考虑指标,选择飞思卡尔公司的16位单片机MC9S12XS128。此MCU功能强大,具有高速I/O口、8路8位PWM输出通道,16通道AD转换4路定时通道、时钟发生模块,控制精度高,灵敏度强,适于进行实时过程控制。缺点是价格较贵,引脚众多且密集,搭建载板难度大。系统电路图:2.2 电机及驱动模块方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻络只能实现有级调速,而数字电阻的元器件价格昂贵。更主要的问题在于一般电动机的电阻较小,但电流很大;分压不仅会降低效率,而且很难实现。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。方案的优点是

6、电路较为简单,缺点是继电器的响应时间慢,机械结构易损坏,寿命较短,可靠性不高。方案三:采用达林顿管TIP4组成的PWM电路。用单片机控制达林顿管使之工作在占空比可调的状态,精确调整电机转速。方案四:采用L298N来控制电机的正转和反转来实现小车的前进和后退。加上单片机的程序PWM,实现整车的加速与减速,精确小车的速度。基于上述理论分析,拟选择方案四。2.3 路面黑带检测模块黑带检测的原理是:红外光线照射到路面并反射,由于黑带和白纸的系数不同,可根据接的红外线的强弱判断是否到达黑带。方案一:可见光发光二极管与光敏二极管组成的发射接收电路。这种方案的缺点在于其他环境光源会对光敏二极管的工作产生很大

7、的干扰,一旦外界光亮条件改变,很可能造成误判和漏判;虽然产生超高亮发光二极管可以降低一定的干扰,但这又将增加额外的功率损耗。方案二:反射式的红外发射接收器。由于采用红外管代替普通可见光管,可以降低环境干扰。 基于上述理论分析,拟选择方案二。2.4 电源选择方案一:所有器件采用电源供电,这样供电电路比较简单;但是由于电动机启动瞬时电流很大,会造成电压不稳,干扰严重,缺点十分明显。方案二:双电源供电,将电动机驱动电源与单片机以及周边电路电源完全隔离,这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统的稳定性。基于上述理论分析,拟选择方案二。2.5 控制单元模块方案一:

8、采用纯数字电路该方案外部检测采用光电转换,系统控制部分采用数字电路译码对小车电动机两端电压调整,来控制小车的运行。时间和行程用加法器进行计数。此系统的设计将会使电路过于复杂,调试时需要改变硬件电路,机动性差。方案二:用单片机控制用光电检测不同的信号,并经单片机对其处理,传送给L298信号,使其控制电机的正转和反转,配合PWM程序控制,来实现加速减速和刹车。通过单片机内部定数器/计数器进行定时、计数,在用单片机串行输入/输出口进行显示控制。此方案电路成熟、工作稳定、容易实现控制。为能更好的实现题目的各种设计要求,所以我们选用第二种方案。用单片机进行控制。其工作框图如下:2.6 数码管显示模块显示

9、电路:3、程序设计 程序流程图3.1 初始化 3.1.1时钟初始化void Clock_Init(void) /设定fBUS=40MHZ CLKSEL_PLLSEL=0; /关闭内部锁相环时钟,进行相关设置 SYNR=0X49; / VCOFRQ7:6;SYNDIV5:0 SYNR寄存器构成,高位至低位 fOSC为外部晶振频率16MHZ / fVCO(压控振荡器时钟频率)= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1) / VCOCLK Frequency Ranges VCOFRQ7:6 压控振荡器时钟频率范围选择 / 32MHz = fVCO = 48MHz 00 /

10、48MHz fVCO = 80MHz 01 / Reserved 10 / 80MHz fVCO = 120MHz 11 REFDV=0X83; / REFFRQ7:6;REFDIV5:0 REFDV寄存器构成 高位至低位 / fREF=fOSC/(REFDIV + 1) 参考电压公式 / REFCLK Frequency Ranges REFFRQ7:6 参考电压频率范围选择 / 1MHz = fREF = 2MHz 00 / 2MHz fREF = 6MHz 01 / 6MHz fREF 12MHz 11 POSTDIV=0X00; / POSTDIV4:0,只有低五位可用 / fPLL(

11、内部锁相环时钟频率)= fVCO/(2 POSTDIV) / If POSTDIV = $00 then fPLL is identical to fVCO (divide by one) / fBUS(总线频率即系统时钟频率)= fPLL/2 while(CRGFLG_LOCK=0); /等待内部锁相环时钟频率达到稳定,即CRGFLG_LOCK=1 CLKSEL_PLLSEL=1; /使能内部锁相环时钟,自定义系统时钟频率设定完毕 3.1.2端口初始化void PORT_Init(void) DDRA=0XFF; PORTA=0XFF; DDRB=0XFF; PORTB_PB4=1; POR

12、TB_PB5=1; PORTB_PB6=1; PORTB_PB7=1; DDRS=0B11111000; PTS_PTS3=1; /BUZZER PTS_PTS4=1; /ZHIXING LED PTS_PTS5=1; PTS_PTS6=1; /JIGUANG HUIDU PTS_PTS7=1; /CHUANGAN HUIDU 3.1.3 PWM初始化 void PWM_Init(void) /单通道输出 PWME=0X00; /关闭通道 进行设置 PWMPRCLK=0X02;/分频总线时钟 /低位PCKA0:2 高位PCKB0:2 /此处4分频 PWMSCLA=2; / 选择比例因子分频A时

13、钟 CLOCKSA=CLOCKA/(2*PWMSCLA) PWMSCLB=5; / 选择比例因子分频B时钟 CLOCKSB=CLOCKB/(2*PWMSCLB) PWMCTL=0X00; / 选择是否级联 0不级联 1级联 PWMCLK=0X03; / 选择各个通道时钟 0 原时钟 1 S时钟 PWMPOL=0Xf7; / 选择初始极性 0低电平 1 高电平 PWMCAE=0X00; / 选择对齐方式 0左对齐 1中心对齐 PWMPER0=200; /输出两路5kHZ的PWM波 PWMDTY0=L; /初始化时全速前进 120 慢速 150 中速 PWMPER1=200; / PWMDTY1=

14、R; PWMPER2=222; PWMDTY2=56; PWMPER3=222; PWMDTY3=56; PWME=0X0f; / 使能输出通道 此处输出5kHZ 3.1.4 实时中断初始化void RTI_Init(void) /实时中断初始化函数设置中断时间为1ms RTICTL=0X83; /超时周期设置 /第七位RTDEC RTDEC=1 十进制;RTDEC=0 二进制 /第0到第6位位RTR0:6 /RTR3:0位一组,RTR6:4为一组 /两组加权相乘,确定分频数 /时钟源为fOSC=16MHZ /详细对应关系见XS128英文数据手册P244-P246 CRGINT_RTIE=1;

15、 /使能RTI实时中断 3.1.5 周期性定时中断初始化void PIT_Init(void) /周期性定时中断模块初始化函数 PITCFLMT=0X00; /关闭PIT模块,进行相关设置 PITCE_PCE0=0; PITCE_PCE1=1; PITMUX=0X00; /选取微定时基准时钟0 PITMTLD0=199; /装载微定时基准时钟0的计数初始值 PITLD0=49999; /装载16位定时通道0计数初始值 PITLD1=49999; /定时器1用于10秒停车计时 PITINTE=0X07; /使能16位定时通道超时中断 PITCFLMT=0X80; /使能PIT模块 超时周期=(P

16、ITMTLD+1)*(PITLD+1)/fBUS /此处为0.25s /时钟源来自总线时钟 四、小结 历时四天的电子设计竞赛设计报告已经完成。经过自己不断的搜索努力以及同学、学长学姐们的耐心指导和热情帮助,本设计已经基本完成。在这段时间里,学长学姐、同学严谨的治学态度和热忱的工作作风令我十分钦佩,他们的指导使我受益非浅。同时校图书馆的开放也为我的设计提供了大量的实习资料。 通过这次设计竞赛设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练,但是我将在以后的工作和学习中继续努力、不断完善。这段时间的设计

17、是对过去所学知识的系统提高和扩充的过程,为我今后的发展打下了良好的基础。 由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。五、参考书目模拟电子技术,高吉祥著,电子工业出版社;数字电子技术,高吉祥著,电子工业出版社;单片机自学笔记,范红刚等著,北京航空航天大学出版社;C程序设计,谭浩强著,清华大学出版社;C语言开发技术详解,戴建华等编著,电子工业出版社;单片机的C语言,姜志海、赵艳雷编著,电子工业出版社;单片机原理及嵌入式系统开发张阳等著,电子工业出版社附1:元件数量MC9S12XS128单片机最小系统板1块LM7805稳压芯片1片万用板3块连接线若干直流电机2个车轮及固定支

18、架2套L298N芯片1块16V充电电池1个激光管及接收管3套四位数码管1个支架若干滚轮轮1个74LS1381片排针若干电阻若干电容若干排线若干按钮开关1个附2:仪器设备清单数字万用表;电焊工具; 电钻。附3:主函数及中断服务子函数代码void interrupt 7 RTI_ISR(void) /中断编号为7 if(PTS_PTS2=1) /ALWAYS HIGH cishu=cishu+1; PTS_PTS6=0; PTS_PTS3=0; if(count=3) if(cishu200) count=count+1; /start=0; PTS_PTS6=1; PTS_PTS3=1; PWM

19、DTY0=L; PWMDTY1=R; while(PTS_PTS2=1); cishu=0; else if(cishu79) count=count+1; /start=0; PTS_PTS6=1; PTS_PTS3=1; if(count=6) count=0; for(delay=0;delay50000;delay+) for(del=0;del10;del+); CRGINT_RTIE=0; PITCE_PCE0=1; PWMDTY0=0; PWMDTY1=0; loop=loop+1; if(loop=2) PITCE_PCE1=0; else if(count=3) PWMDTY

20、0=L1; PWMDTY1=R1; else if(count=5) PWMDTY0=LMID; PWMDTY1=RMID; else PWMDTY0=L; PWMDTY1=R; while(PTS_PTS2=1); cishu=0; else cishu=0; if(PTS_PTS0=0) PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=0; PORTB_PB3=0; PTS_PTS4=0; else PTS_PTS4=1; if(PTS_PTS1=0) PORTB_PB0=0; PORTB_PB1=0; PORTB_PB2=0; PORTB_PB3=1; PTS_P

21、TS5=0; else PTS_PTS5=1; (PTS_PTS0=1)&(PTS_PTS1=1) PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=0; PORTB_PB3=1; CRGFLG_RTIF=1; / 中断标志位写1清零void interrupt 66 PIT0_ISR(void) i=i+1; if(i=4) time=time+1; /计数1秒 i=0; if(time=10) time=0; PWMDTY0=L; PWMDTY1=R; PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=0; PORTB_PB3=1; for(de

22、lay=0;delay10000;delay+) for(del=0;del400;del+); if(PTS_PTS0=0) PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=1; PORTB_PB3=0; else PORTB_PB0=1; PORTB_PB1=0; PORTB_PB2=0; PORTB_PB3=1; for(delay=0;delay4000;delay+) for(del=0;del900;del+); PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=0; PORTB_PB3=1; /* for(delay=0;delay1

23、0000;delay+) for(i1=0;i11500;i1+); / PITCE_PCE0=0; CRGINT_RTIE=1; if(loop=2) second=0; loop=0; PITCE_PCE1=1; PITTF_PTF0=1; void interrupt 67 PIT1_ISR(void) basic=basic+1; if(basic=4) second=second+1; basic=0; PITTF_PTF1=1; void main(void) DisableInterrupts; Clock_Init(); PORT_Init(); RTI_Init(); PWM_Init(); PIT_Init(); PORTB_PB0=0; PORTB_PB1=1; PORTB_PB2=0; PORTB_PB3=1; EnableInterrupts; for(;) if(loop=2) Time_Display(); else Black_Display();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1