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

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

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

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

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

3、功能特点和指令系统特点(试举一两例)MC9S12XS128MAA单片机是16位单片机,由16位中央处理单元、128KB程序Flash、8KB RAM、8KB数据Flash组成片内存储器。主要功能模块包括:内部存储器、内部PLL锁相环模块、2个异步串口通讯SCI、1个串行外设接口SPI、MSCAN模块、1个8通道脉冲宽度调制模块PWM、输入/输出数字I/O口。例如PWM模块,PWM调制波有8个输出通道,每一个输出通道都可以独立的进行输出。每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。每一个PWM输出通道都能调制出占空比从0100%变化的波形。PW

4、M的主要特点有:a.它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。b.每一个输出通道都有一个精确的计数器。c.每一个通道的PWM输出使能都可以由编程来实现。d.PWM输出波形的翻转控制可以通过编程来实现。e.周期和脉宽可以被双缓冲。当通道关闭或PWM计数器为0时,改变周期和脉宽才起作用。f.8字节或16字节的通道协议。g.有4个时钟源可供选择(A、SA、B、SB)他们提供了一个宽范围的时钟频率。h.通过编程可以实现希望的时钟周期。i.具有遇到紧急情况关闭程序的功能。j.每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。2、开发软件Code Warrior的试用心得在参加重庆

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

6、理解并执行我们编写的程序。总之,通过对Code Warrior学习让我初步的了解到了单片机开发的基本过程。3、所选题目的程序流程图和源程序a源程序如下:#include /* common defines and macros */#include /* derivative information */#pragma LINK_INFO DERIVATIVE mc9s12xs128unsigned int flag=0;/* FunctionName: PLL_Init* FunctionDiscription: Clock Initialization* FunctionStatement

7、:BusClock is 48MHz*/void PLL_Init(void) /PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1) CLKSEL=0x00; /初始化PLL前先使用外部晶振 PLLCTL_PLLON=1; /开启PLL SYNR=0XC0 | 0X05; REFDV=0X80 | 0X01; POSTDIV=0X00; /fpllclk=fvco _asm(nop); /busclock=PLLCLK/2=48MHz _asm(nop); while(0=CRGFLG_LOCK); /等待PLL稳定 CLKSEL_PLLSEL=1; /fBUS采用根据PLL

8、频率设定/* 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分频,在48MHzBusClock下,为0.2MHz。即5us PITLD0=2000-

9、1; /16位定时器初值设定。2000*0.005ms PITINTE_PINTE0=1; /PIT通道0定时中断使能,当计数器递减溢出时,申请中断 PITCFLMT_PITE=1; /定时器通道0使能/* FunctionName:PWM_Init* FunctionDiscription:PulseWidthModulation Initialization* FunctionStatement: PWM3 is assigned to MotorIn1 PWM4 is assigned to MotorIn2*/void PWM_Init(void) /CH3 Motor In1 /CH

10、4 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 = 0x03; /clockSB=clockB/(2*PWMSCLB)=6/6=1MHz PWMCLK = 0xFF; /时钟源选择SA,SB PW

11、MPER3=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*/void main(void) /* put your own code here */ PLL_Init(); PWM_Init(); PIT_In

12、it(); EnableInterrupts; for(;) _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;

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

当前位置:首页 > 办公文档 > 教学/培训

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