收藏 分享(赏)

智能小车系统说明书.doc

上传人:dreamzhangning 文档编号:2970578 上传时间:2018-10-01 格式:DOC 页数:17 大小:187.50KB
下载 相关 举报
智能小车系统说明书.doc_第1页
第1页 / 共17页
智能小车系统说明书.doc_第2页
第2页 / 共17页
智能小车系统说明书.doc_第3页
第3页 / 共17页
智能小车系统说明书.doc_第4页
第4页 / 共17页
智能小车系统说明书.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、智能小车系统说明书作品简介:设计灵感来源: 机动车交通事故的频发,一直是困扰整个人类的问题。特别在如大雾等天气状况不好的情况下,驾驶员的感官受到一定的影响,致使交通事故的增多。我们的作品以降低机动车的交通事故为主要目的,运用简单的单片机技术控制电动小车的速度,以来模拟机动车的运行状况,达到小车智能检测前方车辆,能够进行测量出与前方车辆的距离和相对速度,并能够达到智能刹车的目的。作品名为智能小车系统,采用直流电动机带动小车前进,传动装置用齿轮。电动机的速度可由单片机输出 PWM 来实现。小车刹车时用单片机控制电动机,使其停止运转。 利用霍尔元件装置,测定小车的自身车速。采用步进电机来控制小车转弯

2、,并于小车的前端安装多个红外或超声波的发射接收装置,将接收到的数据通过单片机软件的处理,达到显示出前方车辆方位的目的。使用液晶显示车速和障碍物于前方的距离。硬件说明:此作品主要分单片机处理系统,直流电机驱动模块,步进电机驱动模块,红外发射接收蔽障模块,霍尔元件测速模块,超声波测速测距模块,液晶显示模块等;其核心处理器采用廉价易得的 AT89S52单片机,直流电机也很便宜,车身为木板自制而成,车轮采用瓶盖,材料简单易得;所以此车成本低,易推广使用。但其软件控制部分的稳定性较高。步进电机使用 5V4 相的电机,其驱动板使用 2003,输出稳定。红外处理采用直径为 3 毫米的发射和接受对管,发射采用

3、改变发射脉冲占空比来增大发射功率,主要使用的是 NE555 集成芯片,接收管接收到信号后输出到 LM324 运放进行电压放大,以便单片机引脚识别。液晶采用 1602 型经济实惠。部分电路图见附件;软件说明: 此次软件主要采用单片机识别的 C 语言编写而成,仍然采用分模块来实现,实现不同步骤的紧密结合,连贯有序。具体见后面附件。小车运作状况:在无遇到障碍物时小车正常通行;在遇到障碍物时,距离其 50 厘米时开始减速,当距离其 20 至 40厘米时,进一步减速,此时都是超声波模块工作,但极近距离时,红外模块开始工作,当左红外接收管遇障碍物时小车右转一定角度,并后退一定距离,之后继续前进,并还原所转

4、角度;当右红外接收管遇障碍物时小车左转一定角度,并后退一定距离,之后继续前进,并还原所转角度;当左右都遇障碍物时,小车后退一定距离后,转弯,继续前进。所行过程中液晶显示小车速度和障碍物相对距离,遇障碍物时,程序进入转弯程序,速度和距离显示则不再进行处理。红外接收管的有效距离大约几厘米,速度上限在 100 厘米每秒左右。附件部分电路图示意000102030120 21 22 23 24 25 26 272021222324252627000001002000001002000203XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.

5、2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89S52X112.0MH

6、zC133p C233pGND1B1 1C 162B2 2C 153B3 3C 144B4 4C 135B5 5C 126B6 6C 117B7 7C 10COM 9U2ULN2003A+88.8GND+5V+5VD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCDLM016LGND+5VGND+5VRV110kQ1NPN9014Q2NPN8050R5560Q3PNP8550Q4NPN8050 Q5PNP8550Q6NPN9014R6560C30.1uFR72kR82kGND+5VC 程序:/*连接线图:|DB0-P2.0 DB4-P2.4

7、RW-P3.4 |DB1-P2.1 DB5-P2.5 RS-P3.6 |DB2-P2.2 DB6-P2.6 E-P3.5 |DB3-P2.3 DB7-P2.7 VLCD 接 1K 电阻到 GND|红外检测接口;P1_0,P1_1;直流电机接口:P1_2,P1_3;步进电机接口:P3_0-P3_3;接线:模块 TRIG 接 P1_4 ECH0 接 P1_5霍尔元件接 P1_6h,k 为转向恢复计数 */#include #include #define RX P1_5#define TX P1_4#define LCM_RW P3_4 /定义 LCD 引脚#define LCM_RS P3_6#

8、define LCM_E P3_5#define LCM_Data P2#define HUO P1_6#define Busy 0x80 #define uchar unsigned char#define uint unsigned intuchar i,x,h,k,RW,E,RS,dd=0;uchar code CCW8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; uchar code CW8=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; void LCMInit(void);void DisplayOneChar

9、(unsigned char X, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,Buys

10、C);void delaynms(int aa);void delay(int cc);void jiansu(int j);void jiasu(int );void Conut(void);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code juli =“juli“;unsigned char code sudu =“sudu“;/unsigned char code Cls = “ “;unsigned char code ASCII17 = 0,1,2,3,4,5,6,

11、7,8,9,.,-,M,C,/,S, ;static unsigned char DisNum = 0; unsigned int time=0;long J=0;S=0;SD=0;bit flag =0;unsigned char disbuff4= 0,0,0,0,;unsigned char disbuffm4 = 0,0,0,0,;/写数据void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; LCM_E = 0; LCM_E =

12、1;/写指令void WriteCommandLCM(unsigned char WCLCM,BuysC)if (BuysC) ReadStatusLCM();LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;/读数据unsigned char ReadDataLCM(void)LCM_RS = 1; LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);/读状态unsigned char ReadStatusLCM(void)LCM_Data

13、= 0xFF; LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data return(LCM_Data);void LCMInit(void) LCM_Data = 0;WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x0

14、1,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0x0F,1); /按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y X if (Y) X |= 0x40; X |= 0x80; WriteCommandLCM(X, 1); WriteDataLCM(DData); void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)un

15、signed char ListLength;ListLength = 0;Y X while (DDataListLength0x19)if (X 0;j-);/主函数void main(void) int a,ff;unsigned char TempCyc,p=2;char jj;Delay400Ms();LCMInit();Delay5Ms(); DisplayListChar(0, 0, juli);DisplayListChar(0, 1, sudu);for (TempCyc=0; TempCyc30) /距离小于 40cm 则减速 1 a=500; while(a-) P1_2

16、=1;delay(1);P1_2=0;delay(3);a=1000;if(S20) / 距离 da 于 20cm 则减速 2 while(a-) P1_2=1;delay(1);P1_2=0;delay(2);/红外检测模块/ RW=LCM_RW ;E=LCM_E;RS=LCM_RS; if(P1_1=1 P1_3=0; delaynms(3000);if(P1_0=1P1_3=0;h=1;k=0; delaynms(10);if (P1_0=1) P1_2=1;P1_3=0; while(P1_0=1) P1_2=1;P1_3=0; delaynms(1700);P1_3=0;P1_2=0; p=2; for(jj=0;jj65000) break;TR1=1;while(!HUO)if(ff+65000) break;while(HUO)if(ff+65000) break;TR1=0;Sonut();delayms(80); /80MS / */P1_3=0;P1_2=0;while(-h)k=0; for(jj=0;jj65000) break;TR1=1;while(!HUO)if(ff+65000) break;while(HUO)if(ff+65000) break;TR1=0;Sonut();delayms(80); /80MS /结束

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报