89c52的单片机自动往返电动小汽车设计报告.doc
《89c52的单片机自动往返电动小汽车设计报告.doc》由会员分享,可在线阅读,更多相关《89c52的单片机自动往返电动小汽车设计报告.doc(39页珍藏版)》请在沃文网上搜索。
1、1. 设计任务:设计并制作了一个自动往返小汽车,其行驶路线满足所需的要求。1.1 要求:1.1.1 基本要求:(1)分区控制:如(图1)所示:(图1) 车辆从起跑线出发(出发前,车体不得超出起跑线)。在第一个路程CD区(36米)以低速行驶,通过时间不低于10s;第二个路程DE区(2米)以高速行驶,通过时间不得多于4秒;第三个路程EF区(36米)以低速行驶,通过时间不低于8s。 1.1.2发挥部分(1)自动记录、显示一次往返时间(记录显示装置要求安装在车上)。(2)自动记录、显示行驶距离(记录显示装置要求安装在车上)。(3)其它特色与创新。2. 方案设计:根据设计任务要求,并且根据我们自己的需要
2、而附加的功能,该电路的总体框图可分为几个基本的模块,框图如(图2)所示:LCD显示模块测速模块AT89S51控速模块路面检测555定时器 (图2)2.1 路面检测模块: 路面黑线检测模块采用反射式红外发射-接收器,在车底的前部和中部安装了两个反射式红外传感器.2.2 LCD显示模块:采用1602LCD,由单片机的总线模式连接。为节约电源电量并且不影响LCD的功能,LCD的背光用单片机进行控制,使LCD的背光在小车行驶的过程中不亮,因为我们不必看其显示;在其它我们需要看显示的内容的时候LCD背光亮。2.3 测速模块:采用采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速
3、度的作用。霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车速测量。其原理图接线如(图3)所示:(图3)2.4 控速模块:采用由双极性管组成的H桥电路。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。其电路原理图如(图4
4、)所示:(图4)3. 程序框图:单片机主程序框图、速度感应程序框图和铁片感应程序框图分别如(图7)所示。全速行驶开始第3条黑线限速模块设定速度第4条黑线全速行驶第5条黑线第6条黑线限速模块刹车刹车限速模块停10s,交替显示路程,时间停止,交替显示往返时间,路程全速倒车第10条黑线刹车限速模块第11条黑线刹车限速模块第9条黑线刹车第8条黑线全速行驶 (图5)4系统的具体设计与实现:4.1 路面检测模块:路面黑线检测模块采用反射式红外发射-接收器,在车底的前部和中部安装了两个反射式红外传感器.原理图如图6. 图6 4.2 LCD显示模块:采用1602LCD,由单片机的总线模式连接。为节约电源,LC
5、D的背光用单片机进行控制。4.3 测速模块:通过霍尔元件感应磁铁来产生脉冲(当霍尔元件在离磁场较近时输出会是高电平,其它时候是低电平),一个车轮均匀放四个小磁铁,计算一秒所得的脉冲数,从而计算出一秒小车轮子转动圈数,再测量出小车车轮周长即可计算出小车当前速度,累加可得到当前路程。4.4 控速模块:考虑到元器件的缺少以及我们所用的电路的驱动电机的电路原理图和和小车自带的电路的电机驱动原理图一样,所以暂时使用小车自带的电机驱动电路图。4.5 复位电路模块:单片机的复位电路通过手动来实现,复位电路图如(图7)所示。(图7)4.6 脉冲产生模块:脉冲产生电路采用555定时器.原理图如图.(图8)5最小
6、系统图: 该系统主要用到的是单片机,所以主要的部分是最小系统图,该最小系统图如图9. (图9)6系统程序:按照预定的功能,系统实现预定的功能的程序如下所示:#include #include /* 宏定义区*/*- LCD模块 -*/#define LCD_RW P2_6 /读写控制端#define LCD_RS P2_7/数据命令选择端#define LCD_E P2_5/执行使能端#define LCD_DataP1 /P1口#define Write0x00/低电平写入#define Read0x01/高电平读出#define Data0x01/高电平选择数据#define Cmd0x0
7、0/低电平选择命令#define Enable0x00/跃变到低电平时执行命令#define Disable0x01 #define True0x01#define False0x00#define LCD_Init0x38/初始化模式#define LCD_DispCtr 0x0C/开显示及光标设置#define LCD_CloseCtr0x08/关显示#define LCD_CLS 0x01/清屏幕#define LCD_EnterSet 0x06/显示光标 #define BusyP1_7/忙信号/*- 测速/测距/测时模块 -*/#define CircleLength0.132/小车
8、转一轮的长度为.132m/*- 控速模块 -*/#define P03P0_3 /后电机#define P04P0_4 /后电机#define P01 P0_1 /前电机#define P02P0_2 /前电机#define P31P0_5 /控制液晶背光#define P33P3_3/*- 菜单选择模块-*/#define Normal0x00/0 代表正常速度#define Low0x01/1 代表低速#define High0x02/2 代表高速/* 全局函数声明区 */*- LCD模块 -*/void LCDInit(void);/LCD初始化void SetWriteCmd(void
9、);/设置写命令模式void SetReadCmd(void);/设置读命令模式void SetWriteData(void);/设置写数据模式void WriteCmd(char cmd);/写命令void WriteData(char ddata);/写数据void ExecuteCmd(void);/执行命令void SetXY(char x,char y);/定位显示地址void DisplaySingleChar(char x,char y,char cchar);/显示单个字符void DisplayString(char x,char y,char *str); /显示一段字符串
10、void Delay(unsigned int time);/延时主程序void DelayUs(unsigned int time);/延时子程序bit IsBusy(void);/判断忙标志函数void DisplayTime(void);/显示时间void DisplayAVGSpeed(void);/显示平均速度void DisplayDistance(void);/显示路程/*- 测速/测距/测时模块 -*/ void INTInit(void); /所有中断初始化void SpeedINT(void); /测速中断void ComputeTime(void);void Comput
11、eSpeedANDDistance(void);/计算速度和距离/*- 控速模块 -*/void CtrSpeedINT(void); /控速中断void Time0INT(void); void Time1INT(void); /控速单位时间中断void Clock0_Init(void);/时钟中断初始化void Clock1_Init(void); /时钟中断初始化void CtrSpeed(void);/* 全局变量区*/float SpeedCount = 0; /测速计数脉冲float Speed = 0.0;float Distance = 0.0; char Time1INTC
12、ount=0;/T1中断时间计时float PassTime=0.00;/小车行走的时间short IsT0INT=1;bit IsT1INT;/判断T1是否已经响应中断short IsT0INT2=1;char Thx5=0xf4,0xf4,0xc5,0xf4,0xff; /3ms,3ms,15ms,3mschar Tlx5=0x48,0x48,0x68,0x48,0xff;char Thx0=0xd8;char Tlx0=0xf0;char Thx1=0xb1; /20mschar Tlx1=0xe0;short Round=0;short Back=0;short Back0=0;bit
13、 Backid;bit Stop=0;char Area0=0;char Area1=0;/区域变量char LowSpeedArea1StartTime;char LowSpeedArea1EndTime;char HighSpeedAreaEndTime;char LowSpeedArea2EndTime;char LowSpeedArea1PassTime=0; /第一个低速区通过时间char HighSpeedAreaPassTime=0;/高速区通过时间char LowSpeedArea2PassTime=0;/第二个低速区通过时间char ReadyToGo=4;/倒计时char
14、flag;bit Roundid=0;char Nocurve=0; char ChangeFlag;char Mode; bit Running;bit SelectedAll;/速度是否选择完毕标志bit IsSelectingSpeed;/速度选择标志bit Next;/Next键标志bit SpeedSelected;/已经被选中的速度方案标志char SelectedSpeed;/速度选择是否完毕标志bit ChoosingDisplay;/人工选择菜单开始标志bit SelectedShow;/显示选择标志bit SelectedReturn;/返回选择标志bit Selected
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 89 c52 单片机 自动 往返 电动 小汽车 设计 报告
