1、1.进一步熟悉和掌握单片机的结构及工作原理2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术5. 培养查阅资料,独立思考问题的能力四.设计小组成员 110640209蔡祥、110640220李国红、110640238吕赟 分工:蔡祥负责电路图和程序设计;李国红负责课程设计相关文件整理修改;吕赟负责程序流程图五.指导老师涂立副教授、刘德峰博士六.设计课题基于单片机红外线控制的智能寻迹避障小车设计七.基本思路及关键问题解决方法1.基本思路1
2、.1如果发射出去的红外线检测到两边都没有障碍物,继续匀速前进1.2如果发射出去的红外线检测到左侧有障碍物,那么右轮停止旋转,左轮继续旋转,0.2s之后右轮恢复旋转,小车继续匀速前进1.3如果发射出去的红外线检测到右侧有障碍物,那么左轮停止旋转,右轮继续旋转,0.2s之后左轮恢复旋转,小车继续匀速前进1.4如果发射出去的红外线检测到两边都有障碍物,那么两轮反向旋转0.5s后,即小车后退0.5s后,右轮停止旋转,左轮继续旋转,0.2s之后继续发射红外线2.关键问题解决方法2.1 当红外线接收信号为0时,我们视它为遇到障碍2.2 当遇到障碍时我们为了在转弯时不遇到障碍设置转弯时间为0.2秒2.2 当
3、检测到左右两端的信号都为0时,为了避免车太接近障碍物而无法转弯,我们将小车倒退0.5秒后再右转再循环检测八.流程图以及所需软件、硬件的使用1.元件清单表表1. 基于单片机的智能寻迹避障小车设计元件清单表名称参数数量型号价格厂商单片机3.8V,20mA1 AT89C51Rc25FUJITSU 排阻28V TBLOCK-M63开关2电动机220V,1.1A MOTOR 导线若干晶振 12MHz CRYSTAL电容 10pf CC0603CRNP42.流程图 图1.流程图 3.Proteus 7 Professional的使用以及电路图 3.1运行ISIS 7 Professional如下图:图2.
4、运行ISIS 7 Professional 3.2点P按钮选用电路所需的元件,如下图:图3.选取所用元件 3.3设计出电路图,如下图:图4.电路图4.keil软件的使用4.1在桌面上打开keil软件4.2新建工程:选择菜单栏的project中的new project4.3在弹出的对话框里,写好工程名和选择好保存路径后保存4.4选择菜单栏中file中的new新建4.5单击保存快捷按钮,并在弹出的对话框里把名字的扩展名改为.c,再点击保存,如图5所示 图5.更改扩展名4.6在右边框中右击source group后选择add File to Group source Group 1如图6所示图6.添
5、加程序文件4.7选择你所命名的文件单击add然后在单击close,如图7所示。图7.添加4.8开始编程,4.9编程好了之后在project中选择如图8所示。图8.设置程序选项4.10在target中设计好使用的晶振频率如图9所示。图9.设置晶振4.11在output中勾选create Hex file如图10所示。图10.设置“Creat HEX File”4.12再单击快捷工具栏中的得到hex文件。九.出现的问题及相应解决办法1.小车当离障碍物太近时,而无法转向。我们通过倒退0.5s再右转0.2s继续循环检测。2.实验时,为了避免实验元件损坏对实验造成影响,实验前,我们先对元件进行检测。3.
6、为了提高课程设计的效率,我们先统一做好需求分析,再分工做好其他工序。十.课程设计心得体会通过此次课程设计,我们了解到了团队的力量,意识到了知识的乐趣,也感觉到了当知识运用于实践的时候是一件多么令人快乐的事情,并且更加深刻的体会到理论联系实际的重要性。当然,从这次的课程设计中,我们也发现自己的知识功底还太浅薄,因此,在以后的学习中我们会更加努力,在尽量牢固掌握理论知识的基础上,努力提高自己的动手能力。十一.源程序#include#define uint unsigned int#define uchar unsigned charsbit y1=P10;sbit y2=P11;sbit z1=P
7、12;sbit z2=P13;/控制车轮转动sbit p1=P20;/左边障碍物sbit p2=P21;/右边障碍物void delay(uint z);/延时函数void keyscan();/检测障碍物void init();void qian() /向前 z1 = 1; z2 = 0; y1 = 1; y2 = 0;void hou() /向后 z1 = 0; z2 = 1; y1 = 0; y2 = 1;void zuo() /向左转 void you() /向右转void main() init(); while(1) keyscan(); void init() y1=0; y2=
8、0; z1=0; z2=0; p1=1; p2=1;void delay(uint z)/延时函数 uint x,y; for(x=z;x0;x-) for(y=120;yy-);void keyscan()/检测障碍物 if(p1=0&p2=1)/左边有障碍物 you(); delay(200); if(p1=1&p2=0)/右边有障碍物 zuo();p2=1)/两边无障碍物 qian(); p2=0)/两边有障碍物 hou();参考文献:1 郭天翔主编.新概念51单片机C语言教程.北京:电子工业出版社,2008.2美 Richard Anderson, Chris Blexrud著.ASP
9、3高级编程M.刘福太,张立民,金慧琴,梁发麦等译.北京:机械工业出版社,2000:408-458.3 玉德等编.MCS51单片机原理与应用.北京:机械工业出版社,2002.4 李华主编.MCS51系列单片机实用接口技术.北京:北京航空航天大学出版社,2000.5 马骏.车站售票大厅智能排队叫号系统的设计和开发.科技情报开发与经济. 2010.Vol .6 杨彦、王霖、张凤荔、刘丽萍. 基于RS485 和单片机的排队机控制系统设计. 中文核心期刊微计算机信息(测控自动化)2008 年第24 卷第1-1 期.7 张忠安 齐俊传. 门诊排队叫号系统设计. 医疗卫生装备2006年第27卷8 张毅刚.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社.9 闫玉德 俞虹.MCS-51单片机原理与应用(C语言版).机械工业出版社.2003.10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1