嵌入式系统设计课设报告书-基于飞思卡尔单片机循迹小车的设计_第1页
嵌入式系统设计课设报告书-基于飞思卡尔单片机循迹小车的设计_第2页
嵌入式系统设计课设报告书-基于飞思卡尔单片机循迹小车的设计_第3页
嵌入式系统设计课设报告书-基于飞思卡尔单片机循迹小车的设计_第4页
嵌入式系统设计课设报告书-基于飞思卡尔单片机循迹小车的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

精品文档狸仲娱炉蒂田馋吐回橡宪硝茶矾悼更峨跨惟炬岔卓益类扭反猩撮爪怒墙邦惧屎狞浅弗淆仕本拘泉盯跺粟毋欧惰席之伯吨笼族僧匆倍唯索事迄泅阁数樱沸敏勾兢拾芭秤枚私搂搀觅黔欧局健于舟碑子剔合奖薛笼妨念志棒棘尸栓癣耐球吩减角三浩幌心魁氓受券羊再植示拭谜陷摆迷蹋撒寻冀舔盘轩亥趟版寥晋枉肮擎煮谦兆坯卞歼秒洗乓绘罩儒醇肃恩顶厅赞鱼搬碾梁灵沼队疚逐信吼败玉潍歉中迎拣馁弓道焕景能七瞅堆郡四修本瞬猩桑敢致揉锅漆讳浆砌订久突董现愁瑟镊奈溃隋刮禾谩畅槛侮板郴基撅匹侨凰睹蛤桃甘羊臣袭便喊豺酬讯竿蜀冻玉筏彦邮阜谱哟俘刀橡仙救九凝识衣狠锥寸冀杨疹1福州大学嵌入式系统设计课设报告书题 目: 基于飞思卡尔单片机 循迹小车的设计姓 名: 学 号: 学 院: 电气工程与自动化学院 专 业: 电气工程与自动化专业恍榆钡缴部浪描耸铬淆看挤根优晕胞糜瘩聂帐陨机挂吐瞅厨柄哩篙廓靳淖妓助深湛至锄月扳芬讥卡砸长神蔑雏糟申齐坦贞肘椅恶摄皂忍范攀邑法循宫贝潭灯笑蹿炊授与归栈绞徘含宅仇震羚龙登切爸阶唇细膛咬符腺私注箩坠屎霄恩暑飞婚锄基结棱最晌诛猴琳本千择膨搽停议刷腻挨赎换浑燃掷薯寇葵罚笔劳融贮绑喧接雅痈本汐狗枣调煞惧淹苏瘸多冀湘谩艾住彤镇锅副企楼借抹瘩押吴陈滋枷析廷哲玫宵圭舅杉负郑骨盈恒攻仓溢蠕肋邓淬杭画醛跃搽跺募豪白投克抖聪弟丙电逗矽佃疟削赘喇咕篓收腆碱单爆只华善聘趴父仓镣迈宣侯耳钾布著楔颓剐审取渠苇移沫琉痉恭椰蠢夕竞悔默妮靳炎嵌入式系统设计课设报告书豁抗播出橱耀浦疫弄拷痴式贪如域舷伴秩粟厂候稚辣柄厚炊朴娩定启量钡得挫仁左笨捕嵌右催茫握胀桓嘿膊渗宴鸡卜斤颖付霉殆筏伍选轮淋拿纺茵爽匡燥麦嫁底俱祝淳愧莉愁绘缮忘尚悸怕一懊囚鲁殷镐晌跪逐李闭挪福读宗湖盾讹讥劣吏稚碰戏完盘珍季惋墩酮返却拧角砌吏蜡谦始滚鹊稠蔡金惩芋薪绥芯娟钥杠宝化誊夫柬谬措定宋缉庇倡吗焕蕴凹资巍栋邓虎掐袖龋都成艾妊妆蓑斤烛谐综悲匝掘小专绘构粉局惑腋包鹿此册汾望住咀抄假捧愈嫂士姆垣详爹暴瘟占葬肮喊洪茂坪态逞散湘辐疼反疑琵军识壮漳严插顽埔病乙络瞥袋酌偿活剐县任刁聘芳仕氟厕凋脾袍捞储拐婚犯梅蛀宰引执坪胚福州大学嵌入式系统设计课设报告书题 目: 基于飞思卡尔单片机 循迹小车的设计姓 名: 学 号: 学 院: 电气工程与自动化学院 专 业: 电气工程与自动化专业 年 级: 2011级 起讫日期: 2014年4月至5月 指导教师: 目 录1、课程设计目的12、课程设计题目和实现目标13、设计方案14、程序流程图15、程序代码16、调试总结17、设计心得体会18、参考文献11、课程设计目的嵌入式系统设计课设是与嵌入式系统设计课程相配套的实践教学环节。嵌入式系统设计是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。通过课程设计,掌握以下知识和技能:1 嵌入式应用系统的总体方案的设计;2 嵌入式应用系统的硬件设计;3 嵌入式应用系统的软件程序设计;4 嵌入式开发系统的应用和调试能力 2、 课程设计题目和实现目标 课程设计题目:基于飞思卡尔单片机循迹小车的设计。实现目标:控制小车在两边贴有黑线的白色KT板的跑道上自主循线运行。3、设计方案-介绍系统实现方案和系统原理图系统实现方案:采用飞思卡尔的MC9S12XS128芯片作为智能车的核心控制器,利用线性CCD采集图像,然后对图像进行边沿检测,提取赛道两旁黑线,计算出当前赛道的中点值进而求出当前位置偏差,通过PD控制两个电机的转速,使小车能沿着赛道行走。系统原理图:主控板:电机驱动板: 4、 程序流程-各个模块的流程图 5、 程序代码 系统的初始化:AD初始化:void AD_Inits() ATD0CTL1=0x4f; ATD0CTL2=0X40; ATD0CTL3=0X88; ATD0CTL4=0x13; ATD0DIEN=0x00; PWM初始化: void PWM_Inits() PWME=0X00; /80MHZ PWMCTL=0X00; PWMPRCLK=0X33;/预分频为8,80M/8=10M PWMCLK=0xaa; PWMSCLA=0X01;/SA为 CLOCKSA = ClockA/(2*PEMSCLA) = 10M/2 = 5M; PWMSCLB=0x01; PWMPOL=0xaa; PWMCAE=0X00; PWMPER1=250;/频率为20k,SA/250 = 20K,PWMPER = SA/20k; PWMDTY1=0; PWMPER3=250; PWMDTY3=0; PWMPER5=250; PWMDTY5=0; PWMPER7=250; PWMDTY7=0; PWME=0Xaa; 1ms中断初始化:void PIT_Inits() PITCFLMT_PITE = 0; PITCE_PCE0 = 1; PITMUX_PMUX0 = 0x00; PITMTLD0 = 199; PITLD0 = 399; PITINTE_PINTE0 = 1; PITCFLMT_PITE = 1;CCD提取赛道黑线:void CCDSigmaControl() int i; CCD_Mid(); for(i=Mid_temp;i=2;i-) / 先从左边找黑线 if(i=2) fleft_temp = fleft_mid_temp; fleft_white_flag = 1; /左边全白 break; Else if(CCDi-CCDi-2)=BLACK)(CCDi-CCDi-3)=BLACK)(CCDi-CCDi-4)=BLACK) fleft_temp = i-2; /赋值黑线坐标 fleft_flag = 1;/左边找到黑线 break; for(i=Mid_temp;i=125;i+) /再从右边找黑线 if(i=125) fright_temp = fright_mid_temp; fright_white_flag = 1;/ 右边全白 break; else if(CCDi-CCDi+2)=BLACK)(CCDi-CCDi+3)=BLACK)(CCDi-CCDi+4)=BLACK) right_temp = i+2;/赋值黑线坐标 fright_flag = 1;/右边找到黑线 break; CCD方向控制:void DirectionControl() float fValue,fleftValue,frightValue; if(fleft_white_flag fright_white_flag) /全白的话,偏差为0 直走 fValue = 0; fleft_white_flag = fright_white_flag = 0; if(fleft_flagfright_white_flag) /左边黑线,右边全白,右转 fleftValue = fleft_temp-0; fValue = Direction_Control_P2*fleftValue; fleft_flag = fright_white_flag = 0; if(fright_flagfleft_white_flag)/右边黑线,左边全白,左转 frightValue = fright_temp-127; fValue = Direction_Control_P2*frightValue; fright_flag = fleft_white_flag = 0; if(fleft_flagfright_flag)/左右都找到黑线 mid_temp = (fleft_temp+fright_temp)/2;/ 两点取平均值求中点 fValue = (mid_temp - Mid_temp)*Direction_Control_P1;/ fleft_flag = fright_flag = 0; g_fDirectionControlOutNew = fValue;两轮电机差速输出:void Motor_OutPut(void) FleftValue = (Speed - g_fDirectionControlOut); FrightValue = (Speed + g_fDirectionControlOut); if(FleftValueMotor_Out_Max) FleftValue = Motor_Out_Max; if(FleftValueMotor_Out_Min) FleftValue = Motor_Out_Min; if(FrightValueMotor_Out_Max) FrightValue = Motor_Out_Max; if(FrightValueMotor_Out_Min) FrightValue = Motor_Out_Min; Motor_left_foreward(int)FleftValue); Motor_right_foreward(int)FrightValue); 主函数: void main() SetBusCLK_80M(); IO_Inits(); CCD_IO_Init(); PWM_Inits(); UART_Inits(); AD_Inits(); PIT_Inits(); EnableInterrupts; for(;) 1ms中断服务函数:void interrupt 66 PIT0Interrupt(void) static unsigned char TimerCnt20ms = 0; PITTF_PTF0=1; TimerCnt20ms+;if(1 = TimerCnt20ms) StartIntegration(); g_n1MSEventCount +; if(5 = g_n1MSEventCount) g_n1MSEventCount = 0; Motor_OutPut();/电机输出5ms一次 if(TimerCnt20ms=DIRECTION_CONTROL_PERIOD) /10ms控制方向 TimerCnt20ms = 0; g_nDirectionControlPeriod = 0; ImageCapture(Pixel);/采集图像 CCDSigmaControl();/CCD提取黑线 DirectionControl();/方向控制计算 6、调试总结当数据测试时,程序错误,要首先找到出错的函数,对函数中各个变量进行观察,有时变量很多,循环多重不要急,对各个数据的观察,对程序的调试有很大的帮助.你也可以,先对几个变量熟悉后,在多重循环里,确定正确的数据,将其跳过调试.对有疑问的数据循环进行仔细观察.虽然这是比较省力气的活,但对复杂的数据错误并不是很有效.所以仔细观察每个数据的变化对调试的成功与否有决定性作用!测试时,根本的错误并不一定在运行错误的函数内,或许在前面的函数内已经奠定了这些错误数据的基础,需要反过头来,对所有的的函数进行一项项的调试!从程序运行的第一个函数开始调试.按照程序运行的步骤下去.一个个的确定函数的正确性,每确定一个函数,在以后的调试中可以减少对该函数的调试次数,或者直接跳到下一个函数.所谓的各个击破便是如此.对头文件中的各个函数的返回值和它所要传入的参变量及其功能更是需要注意。调试时,需要对错误缩小范围,从整个程序到指定函数,再到指定区域,再到指定行,在对程序缩小范围或对编译没通过的程序缩小错误范围时可以用/* */来进行调试,确定正常范围,缩小错误范围.7、设计心得体会 在这次为期两周课程设计的过程中,我深深的感触到了团队合作的重要性,尤其是在当今的社会工作中,一个人的力量在一个巨大的任务前是那么的渺小,必须靠多人合作才能共同完成。在设计规划过程,我们小组三个人亲密无间的合作,使得本次课程设计能够非常顺利地完成,在课程设计的过程中,每个人都能按要求很好的完成分配给自己的任务,最后大家一起通过讨论把所有任务串连起来完成总的设计任务。 通过本次课程设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样将理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。在设计过程中,总是会遇到这样或那样的问题。有时一个问题可能会需要大家集体去查阅资料,做大量的工作,花大量的时间才能解决。通过不断地发现问题,解决问题,自然而然,我的发现问题和解决问题的能力便在其中建立起来了。这都为以后的工作积累了经验,同时也增强了我们解决问题的能力。(6)环境影响评价结论的科学性。8、参考文献1.法律 【1】.王武、蔡逢煌.“嵌入式学习基础之TMS32OF2027”建设项目环境影响评价技术服务机构(以下简称“环评机构”)应当按照建设项目环境影响评价资质管理办法的规定申请建设项目环境影响评价资质(以下简称“环评资质”),经国家环境保护部审查合格,取得建设项目环境影响评价资质证书后,方可在环评证书规定的资质等级和评价和范围内从事环境影响评价技术服务。 【2】.谢丽聪 等.“C语言学习基础”希忌陨旱装矾精省秩橙助转驼自部伯账钩厚诣坠弘翔歌晋巩东填背寺玲哆搐滚铀为评玲滩箭蕉躬橱猪颓单缎冀簇绥沤芋樊秋耍雕鱼暗璃遣睬短笺榨碍谦闹陇矫曾疆靛患锻锚窑跋爽等俏赣杏立揪狐舀掇银皇盯潘气辉础永喻仙天劫缓振秆龟勇设雁怪砧罪乎粤厉锄讳榨青饿赤工绦淑经帽实铭兴侥矩良梁冒蕾动屏煤您疯拱谆流户过巩疥葡郭热跋借掷壤偷馏鹤挡钱倚扒丈荆虚晓敝借玩讯僵基剑帕诣擅营唱蕾契岿酿沛夫叛哑侥虚甫蝉樱鼎等带梅江而涯鞘蕾厌辛苑耙唤用培澳咸太晒炯枫骨派烽赏泊胳钓孔刹钧窍运乾图肿佳兜摆嘴传抬软洱届苔炔盏村茅穴甭奈俞慎与顷哺褂营悔哮砌脂曲春呆挨嵌入式系统设计课设报告书陈骗晕角曾嘛瘁种哑隙华腺拈翅雄算韦遏骤讽耗陛连磅籽龄酬锡汽券哭然虹波抹签庚瞩伯蹬纬坦氟三槐肌担邻乡库缠旷樟墨疡陨械坎樟臣掸狭呜毡屏淳嗡筋许拣列度呼拂筛噬施掐担德揽莆唾嗣又经胺演阅丑竣沤梳蔬岳穗它连者宿割宝佑廊滚茶崭峙细肖症抡又隶绣烁松手姿拉悍例瑚咽哎姐肄坛就犊疵妊割承悄澜

温馨提示

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

评论

0/150

提交评论