单片机-隧道探测系统的设计.doc_第1页
单片机-隧道探测系统的设计.doc_第2页
单片机-隧道探测系统的设计.doc_第3页
单片机-隧道探测系统的设计.doc_第4页
单片机-隧道探测系统的设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用课程设计报告单片机原理与应用课程设计报告题 目: 隧道探测系统的设计 专 业: 电气工程及其自动化 班 级: 学 号: 姓 名: 指导教师: 自动化工程系2015年 7月 1 日25目 录一、设计目的1二、设计任务及要求1三、可供选择的仪器和设备1四、总体设计2五、具体步骤8六、设计小结23七、相关问题23八、参考资料24课程设计题目十六 隧道探测系统的设计一、设计目的1. 掌握相应传感器的使用方法。2. 利用宝贝车实验机器人更具体的了解单片机工作原理和应用3. 熟练掌握C语言编程。4. 通过系统整体的概念,设计并实现要求的功能,完成设计报告。5. 掌握正确的单片机调试方法。二、设计任务及要求1、 电路上电后,机器人能够躲避一般障碍物。2、 查阅资料,论述基本原理,并画出相关电路图。论述本次设计中所涉及到的所有相关知识概念及原理,设计相应的电路原理图。3、 根据所提供的设备,正确选择传感器、电阻等相关元件。4、 按照电路原理图搭建电路并进行调试。5、 软件设计流程及描述,并设计和调试源代码。6、 软硬件结合验证,并调试,直到测试正确。给出实验结果并进行分析。7、 回答相关问题8、 设计报告包括以下主要内容: 设计目的及要求 设计使用的仪器和设备 完整的系统设计方案 相关知识及原理 电路原理图的设计 源程序代码设计及描述(要有注释) 硬件、软件实验步骤 整体设计验证 小结 参考资料三、可供选择的仪器和设备1、 计算机 、AVR系统开发软件;2、 WINAVR编译器、MFILE软件、ISP下载软件、串口软件等;3、 宝贝车机器人(AVR单片机版);4、 光敏电阻传感器,红外线传感器,蜂鸣器,led指示灯等。5、 基本电路器件:试验主板1块,AT89S52芯片1个,ISP下载线1跟,RS232串口线1根,连续旋转伺服马达2套,机器人运动底盘(带后轮)1套,电池盒(带五号电池4节)1个,驱动轮2个,线路板连接柱子4根,盘头螺钉30颗,螺母20颗,沉头螺钉4颗,螺钉4颗,十字螺丝刀1把,尖嘴钳1把,跳线1袋,绿色LED1个,排针一排,电阻220k4个,电阻470k10个,电阻1k4个,L-1L1红色LED灯2个,1938红外探测器4个,两对IR LED套管,三极管4个,LCD模块一个,一个470 电阻;扬声器1个;导线若根。 四、总体设计(一) 完整的系统设计方案1、 硬件电路设计及描述图 4-1红外线导航电路图图 4-2光敏电阻电路图图 4-3扬声器电路图图 4-4 指示灯电路图 图4-5 总电路图 图4-6隧道探测系统的接线图首先在宝贝车进入隧道后发出蜂鸣声,在通过隧道的过程中指示灯亮起。同时在宝贝车行走过程中,如果前方有障碍物,红外线感应接收装置接收到红外线遇到障碍物返回信号,对应的PC1,PC0输入为低电平。导航程序需要接受这些输入信息,判断它的意义,调用一系列使宝贝车倒退、旋转并朝不同的方向行走的动作子函数。宝贝车用它的红外光探测障碍物,当遇到障碍物时它会知道。一旦红外光探测到障碍物,红外光接收装置接收到返回的红外光,第六章中的导航程序和子程序将使小车倒退和旋转。然后宝贝车再重新向前行走直到遇到另一个障碍物。宝贝车在通过隧道后指示灯灭。2、软件设计流程及描述 图4-7程序流程图1 ) 调零程序:#include#includeint main(void)usta_Init();printf(Program Running!); DDRC|=_BV(PC2);/设置PC2为输出口DDRC|=_BV(PC3);/设置PC3为输出口while(1)PORTC|=_BV(PC2);/设置PC2输出高电平 delay_nus(1500);/延时1.5msPORTC&=_BV(PC2);/设置PC2输出低电平delay_nms(20);/延时20ms PORTC|=_BV(PC3);/设置PC3输出高电平 delay_nus(1500);/延时1.5msPORTC&=_BV(PC3);/设置PC3输出低电平delay_nms(20);/延时20ms2) 源程序代码#include#includeint PC0_state(void)return (PINC&0x01)?1:0;int main(void)usta_Init();printf(Program Running!);DDRD|=_BV(PD6)|_BV(PD7); for(uint16_t counter=1;counter=6000;counter+)/开始/复位信号 PORTD|=_BV(PD7);delay_nus(166);PORTD&=_BV(PD7); delay_nus(166);int irDetectLeft;while(1)for(uint16_t counter=0;counterMain Fime name”将打开如图5-3所示的对话筐,将文本框中的main改为12020217,点击“OK”即可。完成图如5-6所示。3、修改MCU(MicroControllerUnit)type:选择菜单“Makefile-MCU type-ATmega-ATmega8”即可。如图5-7和5-8所示4、修改编程器类型:选择菜单“Makefile-Programmer-stk200”即可。如图5-9和5-10所示图5-5 主文件名修改对话框图5-6 主文件名修改对话框完成图图5-7 修改MCU之后的界面图5-8 修改MCU之后的界面完成图图5-9 修改编程器类型之后的界面图5-10 修改编程器类型之后的界面的完成图5、修改编程端口:选择菜单“Makefile-port-lpt1即可”。 如图5-11和5-12所示图5-11 修改编程端口之后的界面图5-12 修改编程端口之后的界面的完成图6、选择菜单“File-Save as”将文件保存在源程序所在的目录即可。如图5-13所示。图5-13 文件保存在源程序所在的目录7、输入源程序并保存,文件名为:“12020217.c”。如图5-14显示。图5-14 保存文件名为:“12020217.c”8、打开WINAVR软件,“ File”New”Project” 如图5-15和5-16所示图5-15图5-169、 下载程序,编译源程序:选择Programmers Notepad WinAVR的菜单“Tools-Make all”,当源程序中没有错误时,将如图5-17,5-18,5-19,5-20显示。图5-17 下载程序图5-18 编译源程序10、在桌面上点击图标选择相关文件“12020217.hex”打开,如图5-21所示。图5-21 选择相关文件11、把宝贝车和电脑连接好,点击宝贝车上的复位并把电源开到1档编程点击编程,在完成次数上显示1即可,如图5-22所示。图5-22 宝贝车和电脑连接与编程(三) 设计整体验证宝贝车与PC机连接把程序链接完成之后,将宝贝车放在如上图所示的障碍物处,小车根据触须装置能够躲避障碍,在此过程中,根据小车的灵敏程度进行调试程序直到成功。调试程序宝贝车前右行走:#include#includeint PC0_state(void)return (PINC&0x01)?1:0;int PC1_state(void)return (PINC&0x02)?1:0;void Forward(void)PORTC|=_BV(PC3);delay_nus(1700); PORTC&=_BV(PC3);PORTC|=_BV(PC2);delay_nus(1300);PORTC&=_BV(PC2);delay_nms(20);void Left_Turn(void) for(uint16_t i=1;i=26;i+)PORTC|=_BV(PC3);delay_nus(1300); PORTC&=_BV(PC3);PORTC|=_BV(PC2);delay_nus(1300);PORTC&=_BV(PC2);delay_nms(20);void Right_Turn(void) for(uint16_t i=1;i=26;i+)PORTC|=_BV(PC3);delay_nus(1700); PORTC&=_BV(PC3);PORTC|=_BV(PC2);delay_nus(1700);PORTC&=_BV(PC2);delay_nms(20);void Backward(void) for(uint16_t i=1;i=65;i+)PORTC|=_BV(PC3);delay_nus(1300); PORTC&=_BV(PC3);PORTC|=_BV(PC2);delay_nus(1700);PORTC&=_BV(PC2);delay_nms(20);int main(void)usta_Init();printf(Program Running!);DDRD|=_BV(PD7)|_BV(PD2)|_BV(PD3);DDRC|=_BV(PC2)|_BV(PC3);for(uint16_t counter=1;counter=6000;counter+)/开始/复位信号 PORTD|=_BV(PD7);delay_nus(166);PORTD&=_BV(PD7); delay_nus(166);while(1)if(PC0_state()=0)&(PC1_state()=0)PORTD = 0x0c;Backward();/向后Left_Turn();/向左Left_Turn();/向左else if(PC0_state()=0)PORTD = 0x04;Backward();/向后Right_Turn();/向右 else if(PC1_state()=0)PORTD = 0x08;Backward();/向后Left_Turn();/向左else PORTD = 0x00;Forward();/向前六、设计小结通过本次课程设计,结合ATmega系列单片机原理及应用和宝贝车机器人相关的知识,对利用红外线导航躲避障碍物进行了设计,更加明确了红外线导航系统的原理。本次课程设计调试终端显示时并不成功,进行一系列的检查:检查电路的搭建是否正确;宝贝车程序是否无误;排查了触须是否能正常触发,最终达到预期效果。在实验中遇到的主要问题在程序的编写与调试,尤其是宝贝车在运行时探测灯光干扰的问题。宝贝车机器使用光敏电阻作为感测隧道装置,当小车进入隧道时,对应的LED灯亮,蜂鸣器响。从而AVR控制器据此作出判断。本次课程设计调试终端显示时并不成功,进行一系列的检查:检查电路的搭建是否正确;宝贝车程序是否无误,最终达到预期效果。最后感谢老师的耐心指导。七、相关问题1.为什么要制作Makefile文件呢?答:因为任何一个源文件包含的只是运用C语言写成的语句,这些语句命令并不能直接被CPU(即我们的AVR单片机)识别。它必须先被编译成.obj文件(我们称之为目标文件)然后生成.hex文件(我们称之为可执行文件)才能被CPU识别,生成.hex文件是要经过一个很复杂的定义与编程过程。但是我们现在只需先通过WinAVR中的MFile编辑器软件修改几个参数由系统自动生成每个源文件的Makefile文件,就能轻松搞定。Makefile文件中包含包括编译生成.hex文件时所须的全部指令(有兴趣的朋友可以参考生成的Makefile文件)。它通常以文件名Makefile保存在源程序所在的目录中。编译时系统将自动调用Makefile文件来生成.hex文件以及其他的一些必要文件。2. .机器人红外线探测器如何导航? 答:我们在宝贝车机器人上建立的红外物体探测系统在许多方面就像汽车的前灯。当汽车前灯的射出的光从障碍物体反射回来时,你的眼睛发现障碍物体,然后你的大脑处理这些信息,并据此控制你的身体引导汽车。宝贝车机器人使

温馨提示

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

评论

0/150

提交评论