重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告.doc
- 文档编号:1448019
- 上传时间:2022-10-22
- 格式:DOC
- 页数:9
- 大小:565KB
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告.doc
《重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告.doc》由会员分享,可在线阅读,更多相关《重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告.doc(9页珍藏版)》请在冰豆网上搜索。
2012重庆工商大学“飞思卡尔杯”智能汽车校内竞赛
重庆工商大学“飞思卡尔杯”智能汽车校内竞赛报告
智能车驱动电机控制
参赛队员:
学院:
计信学院班级:
10自动化学号:
姓名:
电话:
日期:
2012年11月19日
摘要:
本文以重庆工商大学“飞思卡尔杯”智能汽车校内竞赛为背景,根据比赛相关要求,提出了基于MC9S12XS128MAA单片机的智能车驱动电机控制系统的设计方案,并阐述了所选单片机的功能和指令系统特点以及所选外围硬件的功能和应用方法。
在此基础上通过开发软件CodeWarrior编程实现MC9S12XS128MAA单片机对智能车驱动电机控制并实现竞赛要求的相关功能。
关键词:
单片机CodeWarrior控制智能汽车
前言:
“飞思卡尔”杯智能车大赛是教育部为了加强大学生实践、创新能力和团队精神的培养而举办的面向全国大学生的智能汽车比赛。
而本次重庆工商大学“飞思卡尔杯”智能汽车校内竞赛是立足选拔选手参加教育部举办的第八届“飞思卡尔”杯智能车大赛而举办的。
在本次比赛中本文以研究“智能车驱动电机控制”为主题展开,以MC9S12XS128MAA单片机结合H桥电机驱动电路进行驱动电机控制并实现小车电机在单片机上电5s后启动,先高速正向转动5s,然后慢速正向转动3s后停止转动5s,然后反向高速转动5s,再反向慢速转动3s,再高速正向转动5s后制动停止转动的功能。
1、飞思卡尔MC9S12XS128MAA单片机的功能特点和指令系统特点(试举一两例)
MC9S12XS128MAA单片机是16位单片机,由16位中央处理单元、128KB程序Flash、8KBRAM、8KB数据Flash组成片内存储器。
主要功能模块包括:
内部存储器、内部PLL锁相环模块、2个异步串口通讯SCI、1个串行外设接口SPI、MSCAN模块、1个8通道脉冲宽度调制模块PWM、输入/输出数字I/O口。
例如PWM模块,PWM调制波有8个输出通道,每一个输出通道都可以独立的进行输出。
每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。
每一个PWM输出通道都能调制出占空比从0—100%变化的波形。
PWM的主要特点有:
a.它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。
b.每一个输出通道都有一个精确的计数器。
c.每一个通道的PWM输出使能都可以由编程来实现。
d.PWM输出波形的翻转控制可以通过编程来实现。
e.周期和脉宽可以被双缓冲。
当通道关闭或PWM计数器为0时,改变周期和脉宽才起作用。
f.8字节或16字节的通道协议。
g.有4个时钟源可供选择(A、SA、B、SB)他们提供了一个宽范围的时钟频率。
h.通过编程可以实现希望的时钟周期。
i.具有遇到紧急情况关闭程序的功能。
j.每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
2、开发软件CodeWarrior的试用心得
在参加重庆工商大学“飞思卡尔杯”智能汽车校内竞赛的过程中,我学习了一款开发软件——CodeWarrior。
通过了解得知CodeWarrior包括了构建平台和应用所必需的所有主要工具-IDE、编译器、调试器、编辑器、链接器、汇编程序等,是一款功能强大的开发软件。
事实也是如此,在这次比赛当中,我用CodeWarrior进行编程,调试。
充分的感受到了它的强大功能。
我个人感觉CodeWarrior有这么两个突出的优点:
一是CodeWarrior可以对很多种芯片进行编程,同时支持多种编程语言。
二是CodeWarrior能够自动检查代码中明显的错误,以找到并减少明显的错误,然后编译并连接程序以便计算机能够理解并执行我们编写的程序。
总之,通过对CodeWarrior学习让我初步的了解到了单片机开发的基本过程。
3、所选题目的程序流程图和源程序
a.源程序如下:
#include
#include
#pragmaLINK_INFODERIVATIVE"mc9s12xs128"
unsignedintflag=0;
/***************************************************
**FunctionName:
PLL_Init
**FunctionDiscription:
ClockInitialization
**FunctionStatement:
BusClockis48MHz
****************************************************/
voidPLL_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频率设定
}
/***********************************************************
**FunctionName:
PIT_Init
**FunctionDiscription:
PeriodicInterruptTimerInitialization
**FunctionStatement:
InterruptTimeis10ms
************************************************************/
voidPIT_Init(void)//定时中断初始化函数0.01s=10ms定时中断设置
{
PITCFLMT_PITE=0;//定时中断通道关
PITCE_PCE0=1;//使能0通道
PITMTLD0=240-1;//8位定时器初值设定240分频,在48MHzBusClock下,为0.2MHz。
即5us
PITLD0=2000-1;//16位定时器初值设定。
2000*0.005ms
PITINTE_PINTE0=1;//PIT通道0定时中断使能,当计数器递减溢出时,申请中断
PITCFLMT_PITE=1;//定时器通道0使能
}
/**********************************************************
**FunctionName:
PWM_Init
**FunctionDiscription:
PulseWidthModulationInitialization
**FunctionStatement:
PWM3isassignedtoMotorIn1
PWM4isassignedtoMotorIn2
***********************************************************/
voidPWM_Init(void)
{
//CH3MotorIn1
//CH4MotorIn2
//SB,Bforch2367
//SA,Aforch0145
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
PWMPER3=40;//PWM周期=通道时钟周期*PWMPER3=(1/1MHz)s*40=0.04ms25khz
PWMDTY3=0;//占空比=PWMDTY3/PWMPER3=0
PWMPER4=40;
PWMDTY4=0;
PWMCNT3=0;
PWMCNT4=0;
PWME=0x18;//输出PWM3和pwm4
}
/**********************************************************
**FunctionName:
Main
**FunctionDiscription:
MainFunction
***********************************************************/
voidmain(void){
/*putyourowncodehere*/
PLL_Init();
PWM_Init();
PIT_Init();
EnableInterrupts;
for(;;)
{
_FEED_COP();/*feedsthedog*/
}/*loopforever*/
/*pleasemakesurethatyouneverleavemain*/
}
/**********************************************************
**FunctionName:
PeriodicInterruptTimer
**FunctionDiscription:
**FunctionStatement:
MotorCotrolBlock
************************************************************/
#pragmaCODE_SEG__NEAR_SEGNON_BANKED//指示该程序在不分页区
voidinterrupt66PIT0(void)
{
flag++;
PITTF_PTF0=1;//清中断标志位
//------单片机上电5s后启动-----//
if(flag==500)
{
PWME=0x00;
PWMDTY3=0;
PW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆 工商大学 卡尔 智能 汽车 校内 竞赛 报告