1、基于STC12C5A60S2 单片机智能轮式小车设计 摘要:以STC12C5A60S2 单片机为核心,由主控模块、传感器模块、电机驱动模块等组成,完成路面信息检测、循迹,寻找火源,直流电机控制等功能.路面信息检测、循迹采用红外光电寻迹传感器判断接收地面反射光线得方式反馈,通过高低电平来进行路面检测、路径判断;寻找火源采用火焰传感器判断火源所在方位;电机直流驱动则用来保证小车以最快得速度行驶. 关键词:智能小车、STC12C5A60S2 单片机、红外传感器、循迹传感器、碰撞传感器、直流电机 目录 引 言ﻩ2 一。总体设计方案ﻩ3 1、1 设计方案论证ﻩ3 1、2 方案得总体
2、设计框图ﻩ3 二。硬件模块设计 3 2、1 硬件模块组成ﻩ3 2、2 中央处理器模块ﻩ3 2、3ﻩ传感器模块 4 三.功能介绍ﻩ6 四。软件设计ﻩ6 五。参考文献 14 引 言 只能作为现代社会得新产物就是以后得发展方向。它可以按照预先设定得模块在一个特定得环境里自动得运作,无需人为管理,便可以完成预期所要达到得或更高得目标. 本次设计一智能小车,小车能够沿着特定轨迹行驶,躲避障碍物并能准确寻找到火源,发出警告功能.在此过程中要通过单片机与各种传感器实现小车得前进、后退、左转与右转等基本操作。通过这些基本功能再加上相关得传感器实现具有特定功能得智能小车。这里在履带式
3、小车上加装红外反射、循迹、火焰传感器,在STC12C5A60S2 单片机得管理与相关程序得控制下,能完成自动循迹及在复杂地形得迷宫中寻找出路得功能. 作品可以作为高级智能玩具,也可以作为大学生学习嵌入式控制得强有力得应用实例,该系统将会有更广阔得开发前景。 一. 总体设计方案 1、1 设计方案论证 本次设计采用红外传感器来判定前方障碍得有无,使小车遇到障碍物时能即使得避免得功能;采用火焰传感器来实现寻找火源得功能;采用红外寻迹传感器来实现小车沿黑线前进得寻迹功能;采用STC12C5A60S2单片机来控制小车得各项基本操作。 1、2 方案得总体设计框图 舵机 传 感 器
4、 STC12C5A60S2单片机 二.硬件模块设计 2、1 硬件模块组成 本次创新设计所用到得硬件模块有:中央处理器模块、传感器模块、直流电机驱动模块、调试电路模块. 2、2 中央处理器模块 本文采用得STC12C5A60S2单片机就是宏晶科技生产得单时钟/机器周期(1T)得单片机,就是高速/低功耗/超强抗干扰得新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。 2.3 传感器模块 本次课程设计所用到得传感器有:碰撞传感器、寻迹
5、传感器、火焰传感器。(1)红外寻迹传感器: 工作原理: 红外寻迹模块就是利用红外线反射得原理,根据反射得强度来判定颜色.本寻迹模块就是用来识别黑白线,黑线输出高电平,白线输出低电平。由于使用得就是红外线,所以抗干扰能力很强。这样做更加确保了机器人得稳定性。 (2) 红外线反射型传感器 工作原理: 红外线反射传感器就是利用红外线反射得原理,根据反射得强度来判定前方障碍得有无。当电源接通后,红外线传感器就开始工作了,当小车距离障碍物达到所设定得范围时,传感器接收到反射回来得红外线达到一定程度后,传感器内部通过三极管放大作用,输出低电平,我们可以利用CPU判断后,执行相应得程序,达到绕
6、开障碍物得目得。在距离适中得时候测量精度很高。由于使用得就是红外线,所以抗干扰能力很强.这样做更加确保了小车得稳定性。 应用领域: 一般可以制作料位液位计、报警器、自动门、倒车防撞仪、玩具等.制作时只要安装正确,上电即可工作,无需调整。 如有特殊要求可定制开发. (3)火焰传感器: 工作原理: 火焰得热辐射具有离散光谱得气体辐射与连续光谱得固体辐射。不同燃烧物得火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度得1-2微米近红外波长域具有最大得辐射强度。火焰传感器就是机器人专门用来搜寻火源得传感器。火焰传感器利用对红外线特别敏感得特点,将火焰得亮度转化成高度变化得电
7、平信号,输入到处理器中。 应用领域: 火焰模块主要用于测量环境光得强弱。 例如:灭火比赛时用于测量火焰值; 足球比赛时,用于确定足球得方向,等等. 三.功能介绍 本次创新设计主要实现得功能就是:首先在预先设定得区域,小车沿黑线前进,在沿黑线前进过程中如果遇到障碍物则自行绕过并继续沿黑线前进。火焰热源传感器会搜寻一定范围内就是否有火源,如果有则在行至火源处停止并警报,然后继续搜寻下一个火源,搜寻可探测范围内就是否有火源。 四.软件设计 ﻩ // #include "reg52、h" #include 〈string、h〉 #include ”STC1
8、2C5A60S2、h" sbit TL=P3^2; //左传感器 sbit TR=P3^1; //右传感器 sbit red=P0^3;ﻩ//红外传感器 sbit fmq=P0^6;ﻩﻩ//蜂鸣器 float Fire=0; //火焰电压值 sbit MR1=P3^7;ﻩ//右轮 sbit MR2=P3^6; sbit ML1=P3^5; //左轮 sbit ML2=P3^4; bit flag=0; void Delay_Ms(unsigned int ms) {ﻩunsigned int i; while(ms—-) for(
9、i=0;i〈125*10;i++) ﻩ{ ﻩ if((TL==1||TR==1)&&flag) return; } } void beep(void) { unsigned char i; for(i=0;i〈5;i++) { ﻩ fmq=0;Delay_Ms(200); ﻩ fmq=1;Delay_Ms(200); } } void MRF() { MR1=1; MR2=0; } void MRB() { MR1=0; MR2=1; } void MRP() { MR1=0;
10、 MR2=0; } void MLF() { ML1=1; ﻩML2=0; } void MLB() { ML1=0; ﻩML2=1; } void MLP() { ML1=0; ML2=0; } void Forward()ﻩ //前 { ﻩMRF(); ﻩMLF(); ﻩ} void TurnLeft() //左 { MRP(); MLF(); } void Back() //退 { ﻩMRB(); ﻩMLB(); } void Stop() //停 { MRP(); ﻩMLP();
11、ﻩ} void TurnRight() //右 { ﻩMLP(); MRF(); } void xunji(void) { if(TL==0&&TR==0)ﻩﻩﻩﻩ //循迹 ﻩ{ MRF(); ﻩMLF(); } ﻩif(TL==1&&TR==0) ﻩ{ ﻩTurnLeft(); } ﻩif(TL==0&&TR==1) ﻩ{ TurnRight(); ﻩ} } /*************AD模块**********/ float ADC_L() { float ADC_Result;
12、 P1ASF=0x40;//P1ASF=01000000 P1^6口作为模拟A/D转换口 AUXR1=0x04;//ADRJ=1,高2位放在ADC_RES中,低8位放在ADC_RESL中,转换结果=1024*Vin/Vcc ﻩADC_CONTR=0x8E;//ADC_CONTR=10001110,即ADC_Power=1,ADC_STart=1; Delay_Ms(10); ADC_Result=ADC_RESL+ADC_RES*256; //取值 ﻩADC_Result=(ADC_Result*500)/1024; //转换为电压 ﻩADC_CONTR=0x00;//
13、关闭ADC以节约能量 return ADC_Result; } void avoid() { Back(); Delay_Ms(100); //倒退延时 TurnLeft(); Delay_Ms(400);ﻩ //左转延时 Forward(); ﻩDelay_Ms(400);ﻩ //前进延时 ﻩflag=1; TurnRight(); ﻩDelay_Ms(400); //右转延时 ﻩForward(); Delay_Ms(400);ﻩ //前进延时ﻩ ;过障碍 ﻩTurnRight(); Delay_Ms(350);ﻩ //右转延时
14、 flag=0; } void main() { float ADC_Val; // SP=0x70; P1M0|=0x40; P1M1|=0x40; Forward(); ﻩwhile(1) { ADC_Val= ADC_L(); ﻩif(TL==1&&TR==1) //循迹 ﻩ Forward(); ﻩelse if(TL==1&&TR==0) ﻩ TurnLeft(); else if(TL==0&&TR==1) ﻩﻩ TurnRight(); else if(TL==0&&TR==0) Fo
15、rward(); ﻩﻩ//循迹 if(ADC_Val<300) ﻩ{ ﻩ Stop(); ﻩﻩbeep(); ﻩ } ﻩ while(ADC_Val<300) ﻩ{ ﻩ ADC_Val= ADC_L(); ﻩﻩ}ﻩ ﻩif(red==0) ﻩ{ ﻩﻩ avoid(); ﻩﻩ} ﻩ} } 五.参考文献 1、 李正军.计算机控制系统。北京:机械工业出版社,2005 2、 Ramon Pallas—Areny,John G、 Webster(美)。传感器与信号调节,第2版。张伦译。北京:清华大学出版社,2003 3、 船仓一朗
16、土屋 尧等(日)。机器人控制电子学。宗光华,杨 洋,唐伯雁译。北京:科学出版社,2004 4、 罗亚非等.凌阳16位单片机应用基础。北京:北京航空航天大学出版社,2003 5、 童诗白,华成英.模拟电子技术基础.北京:高等教育出版社,2003 6、 阎石。数字电子技术基础。北京:高等教育出版社,1983 7、 高峰编。单片微型计算机原理与接口技术。北京:科学出版社, 2003 8、 21IC中国电子网。 9、万方数据资源统一服务系统. 创新设计小结: 本次创新设计我们选择了制作一个智能消防小车.这次设计共用了2周得时间。两周里我们经过了选题、查找资料、
17、设计方案、选择方案、组装小车、设计程序等过程.这些过程瞧似简单但就是在设计中途,我们遇到了许多问题与困难.面对这些困难,有些通过我们互相讨论得到解决,有些通过查找资料解决,有些通过向同学请教解决。 从发现问题到解决问题这一过程我觉得我们得学习能力得到了很大得锻炼。 但就是我们也发现了许多自己得不足之处,例如我们得理论知识不够充足,一些基础得知识掌握得不就是很牢靠,在设计时细节得处理不够好等。这些不足之处正就是我们所遇到问题得根源,也因为这些我们多走了很多弯路与错路。能够意识到自己得不足才能够弥补这些不足之处,自身才能够获得进步,我想这也就是我们这次创新设计得一个收获吧。在设计中我
18、们还用到了STC12C5A60S2 单片机,这属于单片机这方面得知识,对于这方面就是我知识得薄弱方面,但就是这次设计得核心就就是对STC12C5A60S2 单片机得运用,这样通过设计过程得再学习我发现我现在对单片得认识更进了一步。 为了实现消防功能我门还运用了循迹传感器、光电传感器、火焰传感器共三种传感器.这三种传感器在我们得日常生活中或许听到过,但就是对绝大部分人来说接触得并不多,就我来说,说实话我在设计之前我就是没见过得.对于这三个新得东西,我们只能从资料上了解它们得性能,然后通过实验去了解它们,从而将她们运用到消防小车上.从这方面来说大大得锻炼了我们对新事物得接受能力,以及学
19、习能力。 当我们将小车组装好后经过多次得修改与调试测量,这次设计基本符合我们预想得设计要求,由于受人为因素与软硬件得限制,系统难免不了带来一些误差,但通过调节与精确计算可以减小误差,并且在不断得摸索前进中我们学到了很多东西。特别就是,在其她同学得帮助下,我们获得得不只就是知识与成果,还有比之更重要得学习方法与解决问题得能力,这将就是我们一生得财富,就像我们在老师得帮助下不断得寻找着打开各个知识宝库得金钥匙。 通过这次创新设计,我了解并掌握了传感器得基本理论知识,更深入得掌握单片机得开发应用与编程控制。为以后从事单片机软硬件产品得设计开发、打下了良好得基础,树立独立从事产品研发得信心,并在这种能力上得到了比较充分得锻炼.并且我深刻得认识到团队得协作真得很重要,周围人得帮助也很重要,而这两个方面,我都拥有了。这次创新设计能够获得成功就是我们大家努力得结果,就是同学帮助得结果,也就是老师与我们所期盼得结果,在此我与我们组向那些在设计得过程中给我们帮助得同学与老师表示深深得感谢! 创新设计 智能消防小车说明书 组员: 王才阳 3100501076 周磊 3100501077 薛兆言 3100501078






