重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告

上传人:j****9 文档编号:46048848 上传时间:2018-06-21 格式:DOC 页数:9 大小:565KB
返回 下载 相关 举报
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告_第1页
第1页 / 共9页
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告_第2页
第2页 / 共9页
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告_第3页
第3页 / 共9页
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告_第4页
第4页 / 共9页
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告》由会员分享,可在线阅读,更多相关《重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告(9页珍藏版)》请在金锄头文库上搜索。

1、2012 重庆工商大学“飞思卡尔杯”智能汽车校内竞赛1重庆工商大学重庆工商大学“飞思卡尔杯飞思卡尔杯”智能汽车校内竞赛报告智能汽车校内竞赛报告智能车驱动电机控制智能车驱动电机控制参赛队员:学院:计信学院 班级:10 自动化 学号: 姓名: 电话:日期:2012 年 11 月 19 日摘要:摘要:本文以重庆工商大学“飞思卡尔杯”智能汽车校内竞赛为背景,根据比赛相关要求,提出了基于 MC9S12XS128MAA 单片机的智能车驱动电机控制系统的设计方案,并 阐述了所选单片机的功能和指令系统特点以及所选外围硬件的功能和应用方法。在此 基础上通过开发软件 Code Warrior 编程实现 MC9S1

2、2XS128MAA 单片机对智能车驱动电 机控制并实现竞赛要求的相关功能。关关键键词词: 单片机 Code Warrior 控制 智能汽车前言前言: :“飞思卡尔”杯智能车大赛是教育部为了加强大学生实践、创新能力和团队精神 的培养而举办的面向全国大学生的智能汽车比赛。而本次重庆工商大学“飞思卡尔杯” 智能汽车校内竞赛是立足选拔选手参加教育部举办的第八届“飞思卡尔”杯智能车大 赛而举办的。在本次比赛中本文以研究“智能车驱动电机控制”为主题展开,以 MC9S12XS128MAA 单片机结合 H 桥电机驱动电路进行驱动电机控制并实现小车电机在单 片机上电 5s 后启动,先高速正向转动 5s,然后慢速

3、正向转动 3s 后停止转动 5s,然后 反向高速转动 5s,再反向慢速转动 3s,再高速正向转动 5s 后制动停止转动的功能。1 1、飞思卡尔、飞思卡尔 MC9S12XS128MAAMC9S12XS128MAA 单片机的功能特点和指令系统特点(试举一单片机的功能特点和指令系统特点(试举一两例)两例)MC9S12XS128MAA 单片机是 16 位单片机,由 16 位中央处理单元、128KB 程序 Flash、8KB RAM、8KB 数据 Flash 组成片内存储器。主要功能模块包括:内部存储器、 内部 PLL 锁相环模块、2 个异步串口通讯 SCI、1 个串行外设接口 SPI、MSCAN 模块

4、、1 个 8 通道脉冲宽度调制模块 PWM、输入/输出数字 I/O 口。例如 PWM 模块,PWM 调制波 有 8 个输出通道,每一个输出通道都可以独立的进行输出。每一个输出通道都有一个 精确的计数器(计算脉冲的个数) ,一个周期控制寄存器和两个可供选择的时钟源。每 一个 PWM 输出通道都能调制出占空比从 0100%变化的波形。PWM 的主要特点有:2012 重庆工商大学“飞思卡尔杯”智能汽车校内竞赛2a.它有 8 个独立的输出通道,并且通过编程可控制其输出波形的周期。 b.每一个输出通道都有一个精确的计数器。 c.每一个通道的 PWM 输出使能都可以由编程来实现。d.PWM 输出波形的翻转

5、控制可以通过编程来实现。 e.周期和脉宽可以被双缓冲。当通道关闭或 PWM 计数器为 0 时,改变周期和脉宽才 起作用。 f.8 字节或 16 字节的通道协议。 g.有 4 个时钟源可供选择(A、SA、B、SB)他们提供了一个宽范围的时钟频率。 h.通过编程可以实现希望的时钟周期。 i.具有遇到紧急情况关闭程序的功能。 j.每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。2 2、开发软件、开发软件 CodeCode WarriorWarrior 的试用心得的试用心得在参加重庆工商大学“飞思卡尔杯”智能汽车校内竞赛的过程中,我学习了一款 开发软件Code Warrior。通过了解得知 C

6、odeWarrior 包括了构建平台和应用所 必需的所有主要工具 - IDE、编译器、调试器、编辑器、链接器、汇编程序等 , 是一款功能强大的开发软件。事实也是如此,在这次比赛当中,我用Code Warrior 进行编程,调试。充分的感受到了它的强大功能。我个人感觉 Code Warrior 有这么两个突出的优点:一是 Code Warrior 可以对很多种芯片进行编程,同时支持多 种编程语言。二是 Code Warrior 能够自动检查代码中明显的错误,以找到并减少明显 的错误,然后编译并连接程序以便计算机能够理解并执行我们编写的程序。总之,通 过对 Code Warrior 学习让我初步的

7、了解到了单片机开发的基本过程。3 3、所选题目的程序流程图和源程序、所选题目的程序流程图和源程序a a源程序如下:源程序如下:#include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE “mc9s12xs128“unsigned int flag=0;/* * FunctionName: PLL_Init * FunctionDiscription: Clock Initialization * FunctionStatement:BusC

8、lock is 48MHz */ void PLL_Init(void) /PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)2012 重庆工商大学“飞思卡尔杯”智能汽车校内竞赛3 CLKSEL=0x00; /初始化 PLL 前先使用外部晶振PLLCTL_PLLON=1; /开启 PLLSYNR=0XC0 | 0X05; REFDV=0X80 | 0X01; POSTDIV=0X00; /fpllclk=fvco_asm(nop); /busclock=PLLCLK/2=48MHz_asm(nop); while(0=CRGFLG_LOCK); /等待 PLL 稳定CLKSE

9、L_PLLSEL=1; /fBUS 采用根据 PLL 频率设定/* * FunctionName:PIT_Init * FunctionDiscription:PeriodicInterruptTimer Initialization * FunctionStatement:Interrupt Time is 10ms */ void PIT_Init(void) /定时中断初始化函数 0.01s=10ms 定时中断设置 PITCFLMT_PITE=0; /定时中断通道关PITCE_PCE0=1; /使能 0 通道PITMTLD0=240-1; /8 位定时器初值设定 240 分频,在 48M

10、HzBusClock 下,为 0.2MHz。即 5usPITLD0=2000-1; /16 位定时器初值设定。2000*0.005msPITINTE_PINTE0=1; /PIT 通道 0 定时中断使能,当计数器递减溢出时,申请中 断PITCFLMT_PITE=1; /定时器通道 0 使能/* * FunctionName:PWM_Init * FunctionDiscription:PulseWidthModulation Initialization * FunctionStatement: PWM3 is assigned to MotorIn1PWM4 is assigned to M

11、otorIn2 */2012 重庆工商大学“飞思卡尔杯”智能汽车校内竞赛4void PWM_Init(void) /CH3 Motor In1/CH4 Motor In2/SB,B for ch2367/SA,A for ch0145 PWME = 0x00; /PWM 禁止 PWMCAE = 0x00; / 左对齐模式PWMPOL = 0xFF; /正极性脉冲PWMPRCLK = 0x33; / clockA=clockB=busclock/8=48/8=6MHz PWMSCLA = 0x03; /clockSA=clockA/(2*PWMSCLA)=6/6=1MHz PWMSCLB = 0

12、x03; /clockSB=clockB/(2*PWMSCLB)=6/6=1MHz PWMCLK = 0xFF; /时钟源选择 SA,SB PWMPER3=40; /PWM 周期=通道时钟周期*PWMPER3=(1/1MHz)s*40=0.04ms 25khz PWMDTY3=0; /占空比=PWMDTY3/PWMPER3= 0 PWMPER4=40; PWMDTY4=0; PWMCNT3 = 0;PWMCNT4 = 0;PWME = 0x18; /输出 PWM3 和 pwm4 /* * FunctionName:Main * FunctionDiscription:Main Function

13、 */ void main(void) /* put your own code here */PLL_Init();PWM_Init();PIT_Init();EnableInterrupts;for(;) 2012 重庆工商大学“飞思卡尔杯”智能汽车校内竞赛5_FEED_COP(); /* feeds the dog */ /* loop forever */* please make sure that you never leave main */ /* * FunctionName:Periodic Interrupt Timer * FunctionDiscription: *FunctionStatement:MotorCotrol Block */ #pragma CODE_SEG _NEAR_SEG NON_BANKED /指示该程序在不分页区void interrupt 66 PIT0(void) flag+;PITTF_PTF0=1; /清中断标志位/-单片机上电 5s 后启动-/if(flag=500) PWME = 0x00; PWMDTY3=0; PWMDTY4=0;/-高速正向转动 5s-/if(flag=1000)PWMDTY3=40;PWMDTY4=0;PWME = 0x18;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号