77范文网 - 专业文章范例文档资料分享平台

基于单片机智能电动消防车毕业论文

来源:网络收集 时间:1970-01-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

智能电动消防车

摘要

本智能电动消防车以有机玻璃为车架,以STC12C5A60S2单片机为控制核心,配合LTH1550-01的红外循迹模块、L298N电机驱动模块以及火焰传感器,合理的利用了整个芯片以及各个部件的综合性能,采用火焰传感器对蜡烛进行探测,在数码管上可以显示出实时采集到的反馈的信息,利用风扇能够顺利的将其按要求吹灭。本系统完成了题目要求的全部基本要求和发挥部分要求,在整体上保证了设计任务的超额完成。

关键字

单片机,智能电动消防车,灭火。

1.引言

1.1设计任务与要求

该任务是让设计制作一个电动消防车,能到消防场地任意地点进行灭火作业。以蜡烛模拟火源,火源随机分布在场地中,能够达到以下要求: 1、基本要求

(1)在场地中随机放置一只蜡烛。消防车从车库启动,计时开始,消防车同时发出出库声音提示。消防车从车库出口驶出车库,自动行走到距离火源10cm以内区域,发出火警声音提示,停车3秒钟。

(2)消防车执行灭火工作,灭火完毕后,发出火灭声音提示。

(3)消防车经由车库出口自动返回到车库,停稳后,发出返库声音提示,计时结束。

(4)上述过程用时尽可能少。 2、发挥部分

(1)在场地中随机放置三只蜡烛。消防车从车库启动,计时开始,消防车同时发出出库声音提示。消防车从车库出口驶出车库。

(2)消防车能够找到一个火源,并自动行走到距离火源10cm以内区域,发出火警声音提示,停车3秒钟。然后消防车执行灭火工作,灭火完毕后,发出火灭声音提示。

(3)再寻找下一个火源,重复过程(2),直到三个火源都被扑灭。

(4)扑灭三个火源后,消防车经由车库出口自动返回到车库,停稳后,发出返库声音提示,计时结束。

(5)上述过程用时尽可能少。 1.2目的意义

通过这次任务的完成,学生通过努力完成题目的各项要求,使得学生可以得到问题的解决方法和策略,从实践中学习很多知识,能够对待问题多方法处理,多角度处理,不仅增强了动手实践能力和团队协作精神,更懂得了联系实际的重要性,对以后的学习和工作气到了极大地促进作用。

在现实生活中电动消防车除具有火灾扑救的主要功能外,还兼具消防巡逻、消防宣传等功效于一身,其小巧的身形和多样化的功能,为小街道防、灭火工作

发挥重要作用,增添了科技含量和技术指标。更加方便、快捷,保持了救火工作的有效性和持续性。消防车外观小巧灵活、机动性强。电动消防车的优点是节能环保,行驶成本低,车型小可以迅速到达一些狭窄的街道,在大的消防车到达之前对火势进行控制可以说是灭火在萌芽状态,这一点相比传统燃油消防车优势十分明显。电动消防车行驶时噪音小,零排放符合环保要求。

1.3主要方法与工具

主要利用的是STC12C5A60S2单片机,结合了电源模块、LTH1550-01的红外循迹模块、检测火焰模块、电机驱动模块、利用超声波的避障模块、利用蜂鸣器的声音模块以及灭火模块和显示模块构成了整个智能电动消防车。

2.方案的设计与论证

2.1控制模块的选则

利用STC12C5A60S2单片机,STC12C5A60S2单片机是一款增强型的51单片机,加密性强、无法解密,超强抗干扰能力,可以及时的防止外界环境对整个小车的不良影响,速度快,1个时钟/机器周期,可用低频晶振,超低功耗,尤其掉电模式可由外部中断唤醒,适用于像智能电动消防小车电池供电的系统,输入/输出口多,在系统可编程,无需仿真器,可远程升级,也便于后续的小车的升级,实物图见附录二。

2.2电机驱动模块

方案1:利用L298N驱动步进电机,L298N工作电压高,工作电压可达46V;输出电流大,最大电流可达3A,只需工作电流为2A;额定功率25W。该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

方案2: 利用ULN2003驱动步进电机,ULN2003是达林顿驱动器阵列,是个集电极开路输出的反向器,最大驱动电流可以达到500mA。由于最大输出电流小于1.2A,因此需要多片并联增加输出电流,增加了设计难度。 综上所述,电机驱动模块采用方案1,实物图见附录二。 2.3电源模块

方案1:采用7805、7806、7812等78系列稳压芯片,用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。但稳压后电压不稳定。 方案2:采用LM2596T-ADJ,LM2596系列是美国国家半导体公司生产的3A电流输出降压开关型集成稳压芯片,它内含固定频率振荡器和基准稳压器,并具有完善的保护电路:电流限制、热关断电路等。利用该器件只需极少的外围器件便可构成高效稳压电路。提供有:3.3V、5V、12V及可调(-ADJ)等多个电压档次产品。具有输出最大电流高、转化效率高等优点。 综上所述,电源模块采用方案2,实物图见附录二。 2.4红外循迹模块

方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此,考虑其他更加稳定的方案。

方案2:用LTH1550-01红外对管进行循迹。此传感器包括一个红外线发光

二级管和接收管。LTH1550-01红外对管为非接触式开关,对于直接PCB板或者双列直插式插座安装,开关速度快。

综上所述,红外循迹模块选择方案2,实物图见附录二。 2.5检测火源模块

方案1:用温度传感器如热电偶,热电偶在工业应用上十分广泛。但是热电偶感应的范围太广,而且由于火焰只是周围温度稍高且范围较窄。试验验证用热电偶检测火焰精度不高。 方案2:用紫外传感器检测火焰。紫外火焰传感器主要应用于火灾消防系统,用来监测火焰的产生。紫外线火焰传感器的灵敏度高,相应速度快,对明火特别敏感。但是紫外传感器检测的范围太大,不适用于本系统。

方案3:用火焰传感器实现探测火焰,远红外火焰传感器检测距离远,线性度好,检测准确,且体积比较小巧,并且可以检测火焰或者波长在760纳米~1100纳米范围内的光源,探测角度为60度左右,对火焰光谱特别灵敏,灵敏度可调节,性能稳定,工作电压为5伏,数字量模拟量双输出。

在实际运用中,我们将安装五个火焰传感器,中间位置的火焰传感器用黑色硬卡纸包住,经实验验证,这样处理过可以使火焰传感器只能检测到一个方格距离的火焰,而对远距离的火焰没有反应。

综上所述,检测火源模块利用方案3,实物图见附录二。 2.6避障模块

方案1:用超声波传感器进行避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器接收。然后将这信号放大后送入单片机。超声波传感器在避障的设计中被广泛应用。并且可以测试出车体与障碍物的距离。

方案2:用红外光电开关进行避障。光电开关的工作原理是根据投光器发出的光束,被物体阻断或部分反射,受光器最终据此做出判断,是利用被检测物体对红外光束的遮光或反射,由同步回路选通而检测物体的有无,当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。但是红外光电开关只能单纯的进行避障,不能测试出与障碍物的距离。

综上所述,避障模块采用方案1,实物图见附录二。 2.7发声模块

利用蜂鸣器当火焰传感器检测出火焰时,小车上的单片机给蜂鸣器一个频率为f1的信号,使其报警。当在0.1m以内时,小车上的单片机给蜂鸣器一个频率为f2(f2>f1)的信号,及时发出声音报警。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,考虑到为了电路简单、容易搭建且造价非常便宜我们选择用蜂鸣器作为声音模块起到报警作用,实物图见附录二。

2.8显示模块

方案1:采用12864液晶屏。该液晶屏可以两行显示数字、汉字,也可以实现绘图功能。但是由于占用单片机引脚数目有限,但是由于小车是在不停 的运动中,使用液晶屏在远距离观测时显示不易观察,并且液晶屏要求的外界因素比较苛刻,占用引脚数较多故放弃此方案。

方案2:用8位数码管进行显示小车走过的路程,灭火时间和数目。由于车载显示模块只是用来显示路程、时间和灭火数目,都为一些数字,这就为数码管的使用变成了可能。数码管显示亮度高,远程观测也比较醒目。

综上所述,显示模块采用方案2,实物图见附录二。

2.9整体方案的确定

经过反复论证,我们最终确定了如下方案:

(1) 采用STC12C5A60S2单片机作为主控制器。 (2) 采用专用芯片L298N作为电机驱动芯片。

(3) 采用10节1.2V镍氢充电电池供电,采用LM2596T-ADJ稳压芯片使电

压达到所需电压值,供电给智能消防小车各个部分。

(4) 采用LTH1550-01光电对管起到红外循迹的作用。 (5) 采用火焰传感器实现探测火焰。 (6) 采用超声波传感器进行避障。 (7) 采用蜂鸣器及时发出声音。

(8) 在检测出火焰之后,用风扇将其吹灭。

(9) 采用8位数码管进行显示小车走过黑条数目、障碍物的数目、检测到

蜡烛到吹灭过程中小车走过的步数、小车距蜡烛的距离。 系统结构框图如图1所示:

电源模块红外循迹模块检测火源模块电机驱动模块控制模块声音模块避障模块灭火模块显示模块

图1 系统结构图

3.原理分析与硬件电路图

3.1硬件电路设计

整个智能电动消防小车由控制模块、电机驱动模块、电源模块、红外循迹模块、检测火源模块、避障模块、声音模块、灭火模块以及显示模块九个模块组成其硬件电路。

3.1.1控制模块的设计

STC12C5A60S2单片机是一个增强型的51单片机,我们所设计的51最小系统操作简单,使用方便,图2是STC12C5A60S2单片机的电路图:

图2 STC12C5A60S2单片机的电路图

3.1.2电机驱动模块的设计

将IN1,IN2,IN3,IN4引脚分别接入单片机的某个端口,输出连续的脉冲。信号频率决定了电机的转速。改变绕组脉冲的顺序即可实现正反转。出于对力矩、平稳、噪音及减少角度等方面考虑,往往采用八拍工作方式。

表一:二相八拍工作模式时序图 输入 第一步 第二步 第三步 第四步 第五步 第六步 第七步 第八步 返回 IN1 IN2 IN3 IN4 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 返回 返回 返回 返回 如图3为电机驱动模块的电路图。

图3电机驱动模块的电路图

3.1.3电源模块

供电系统原理图如图4:

图4 供电系统原理图

调节输出电压的电阻R1、R2要靠近LM2596的4脚,实际电路由三个上图的模块组成,其中R2是一个可调节的电阻,可以实时的调节输出电压的大小。

3.1.4红外循迹模块

小车的设计中我们使用的是一体反射式红外对管,工作原理就是接收管接收到的信号是发射管发出的红外光经过反射物的反射后得到的。图5为红外循迹电路的原理图:

图5 红外循迹电路的原理图

3.1.5检测火源模块

采用的火焰传感器可以检测火焰或者波长在760纳米~1100纳米范围内的光源,工作电压为3.3V-5V,模块在环境红外光强小于设定阈值时,DC口输出高电平,当超过设定阈值时,模块DC输出低电平;输出口DC可以与单片机任意IO口,通过单片机来检测高低电平变化,由此来检测环境的零度变化;真正比赛时传感器会和火焰保持一段距离,图6为检测火源模块的电路图:

图6 检测火源模块的电路图

3.1.6超声波避障模块

本模块的尺寸为45mm*20mm*1.6mm,电路板上有两个半径为1mm的机械孔,模块上有两个接口,即模式选择跳线和5Pin接口,模式选择跳线的间距为2.54mm,当插上跳线帽时为串口模式,拔掉时为电平触发模式。在电平触发模式下,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一个高电平,可根据此高电平的持续时间来计算出距离,图7为US-100测距时序图:

图7 US-100测距时序图

3.1.7发声模块

采用ULN2003和74HC14N驱动蜂鸣器,ULN2003是高耐压、大电流达林顿陈列,有七个硅NPN达林顿管组成。具体原理图如图8:

图8 发声模块原理图

3.1.8显示模块

显示模块中,数码管与按键用ZLG7289进行驱动,,ZLG7289有很宽的工作电压范围,可以直接驱动8位数码管或64只独立的LED;能够管理多达64只按键,自动消除抖动,具有左移、右移、闪烁、消隐、段点亮等强大功能;具体原理图如图9:

图9 显示模块原理图

3.2软件设计

图10为总体流程图:

开始 按键选择一根蜡烛模式三根蜡烛模式吹灭蜡烛并回库结束 图10 总体流程图

4.系统的测试与误差分析

4.1测试仪器及设备 表2 测试仪器设备清单 仪器名称 PC机 数字万用表 秒表 蜡烛 测试用跑道 型号 联想 y460 VICTOR VC9801A+ 用途 调试及下载程序 测量各电路工作情况 记录时间 火源 进行灭火小车实际测试 数量 1 1 1 3 2 4.2功能测试方案 1、在仅随机在场地放置一支蜡烛的情况下对小车进行测试,检测小车是否能沿指定路线运动,并找到火源,将之熄灭。并按竞赛要求发出提示音。记录完成时间。

2、在场地随机放置三支蜡烛的情况下对小车进行测试,检测小车是否能沿指定路线运动,并依次找到火源,将之熄灭。并按竞赛要求发出提示音。记录完

成时间。

4.3功能测试结果

1、在场地中随机放置一根蜡烛。 小车从车库启动,发出出库提示音。之后小车能够顺利循迹行走并且找到蜡烛,此时,蜂鸣器发出找到火源的火警声音提示。小车按照预定路线将蜡烛熄灭后,蜂鸣器发出灭火声音提示。测试所用时间。之后小车循迹返回仓库,停稳后,蜂鸣器发出返库声音提示。测试整个过程的时间。

2、在场地中随机放置三根蜡烛,小车能够顺利循迹并且依次找到蜡烛且将火熄灭。

找到第一根蜡烛时,蜂鸣器发出找到火源的火警信号。小车按照预定路线将第一根蜡烛熄灭后,蜂鸣器发出灭火信号。测试完成这些动作所用时间。

找到第二根蜡烛时,蜂鸣器发出找到火源的火警信号。小车按照预定路线将第二根蜡烛熄灭后,蜂鸣器发出灭火信号。测试完成这些动作所用时间。

找到第三根蜡烛时,蜂鸣器发出找到火源的火警信号。小车按照预定路线将第三根蜡烛熄灭后,蜂鸣器发出灭火信号。测试完成这些动作所用时间。

之后小车循迹返回仓库,停稳后,蜂鸣器发出返库声音提示。测试整个过程的时间。

5.结论

测试表明,小车能够较好的完成题目要求的基本要求和发挥部分。另外,本组的额外发挥部分为数码管显示部分。

在现实生活中电动消防车除具有火灾扑救的主要功能外,还兼具消防巡逻、消防宣传等功效于一身,其小巧的身形和多样化的功能,为小街道防、灭火工作发挥重要作用,增添了科技含量和技术指标。更加方便、快捷,保持了救火工作的有效性和持续性。消防车外观小巧灵活、机动性强。电动消防车的优点是节能环保,行驶成本低,车型小可以迅速到达一些狭窄的街道,在大的消防车到达之前对火势进行控制可以说是灭火在萌芽状态,这一点相比传统燃油消防车优势十分明显。电动消防车行驶时噪音小,零排放符合环保要求。

参考文献

[1]郭天祥.新概念51单片机C语言教程[M]北京:电子工业出版社,2009。 [2]谭浩强.C语言程序设计(第三版)[M]北京:清华大学出版社,2005。 [3]阎石.数字电子技术基础(第五版)[M]北京:高等教育出版社,2006.10。 [4]华成英.模拟电子技术基础(第四版)[M]北京:高等教育出版社,2006.06。 [5]邱关源.电路(第五版)[M]北京:高等教育出版社,2006.05。

附录

附录一:元器件

模块名称 元器件(数量) 控制模块 USB(1);PL2303(1);STC12C5A16S2(1);晶振12mHz(2);排针(2,2,6,8,8,8,8);电阻(10k:13;1k:2;1M:1;220K:2;22R:2);电容(1nF;100nF:5;100uF;20pF:2;10uF:2;22pF:2);LED(1);二极管(1); 电机驱 动模块 电源模块 L298N(1);IN5819续流二极管(8);排针(4,4);排针插座(3) LM2596(3);瓷片电容(7);电容(100uF:8);SS14二极管(3);电感(3);AMS1117-3.3(1);电阻(2k:3);排针(2,2,2,3,3,4,4,5,5,5,5,5,5);可调电阻(3) LM358(3);LTH1550-01(5);电位器(5);LED(5);贴片电阻(151:5;152:5;103:5);排针(7) LM393(1);电位器(1);火焰传感器(1);瓷片电容(2);LED(2);贴片电阻(103:2);排针(4) 超声波发送接收器(2);驱动芯片(1);瓷片电容(14);贴片电阻(21);排针(2,5);晶振3200Hz(1) 72HC14N(2);ULN2003(1);蜂鸣器(1);直流电机(1) 7289BS(1);瓷片电容(4);贴片电阻(221:9;103:2;104:8);数码管(2);电容(100uF:1);晶振12mHZ(1);排针(6);按键(8) 红外循 迹模块 检测火 源模块 避障模块 声音模块 显示模块 附录二:各个模块实物图: 1.控制模块:

2.电机驱动模块:

3.电源模块:

4.红外循迹模块:

5.超声波避障模块:

6.火焰探测模块:

7.显示模块:

8.发声模块:

附录三:小车全部程序

#include #include

#define uint unsigned int #define uchar unsigned char

//******************************************

sbit CS = P4^2; P2.0为CS功能 */ sbit CLK = P4^1;

定P2.1为CLK功能 */

/* 设定

/* 设

sbit DIO = P4^0; /* 设定P2.2为 DIO功能 */ sbit KEY = P4^5; /* 设定P2.3为KEY功能 */

#define CLK_SET() CLK = 1 /* 将CLK设置为1 */

#define CLK_CLR() CLK = 0 /* 将CLK设置为0 */

#define CS_SET() CS = 1 /* 将CS设置为1 */

#define CS_CLR() CS = 0 /* 将CS设置为0 */ #define DIO_SET() DIO = 1 /* 将DIO设置为1 */

#define DIO_CLR() DIO = 0 /* 将DIO设置为0 */

/********************************************************************************************************* 可以供外部使用的函数申明

*********************************************************************************************************/

extern void zlg7289Cmd(unsigned char cCmd); /* 执行ZLG7289 纯指令 */

extern void zlg7289CmdDat(unsigned char cCmd, unsigned char cDat); /* 执行ZLG7289 带数据指令 */

extern void zlg7289Download(unsigned char ucMod, unsigned char cX, unsigned char cDp, unsigned char cDat); /* 下载数据 */

extern char zlg7289Key(void); /* 读按键值 */

extern void zlg7289Init(void); /* ZLG7289 初始化 */

extern void zlg_7289_DisNum(unsigned long Dis_num); extern void Dis_KeyNum(void);

/********************************************************************************************************* ZLG7289用户指令集

*******************************************************************************

**************************/

#define zlg7289Reset() zlg7289Cmd(0xA4) /* 复位(清除)指令 */

#define zlg7289Test() zlg7289Cmd(0xBF) /* 测试指令 */

#define zlg7289SHL() zlg7289Cmd(0xA0) /* 左移指令 */

#define zlg7289SHR() zlg7289Cmd(0xA1) /* 右移指令 */

#define zlg7289ROL() zlg7289Cmd(0xA2) 左移指令 */

#define zlg7289ROR() zlg7289Cmd(0xA3) 右移指令 */

#define zlg7289Flash(cX) zlg7289CmdDat(0x88, (cX)) */

的8个位对应数码管的8个位 */

闪烁 1:不闪烁 */

#define zlg7289Hide(cX) zlg7289CmdDat(0x98, (cX)) 制 */

的8个位对应数码管的8个位 */

消隐 1:显示 */

#define zlg7289SegOn(cSeg) zlg7289CmdDat(0xE0, (cSeg)) 指令 */

数码管被看成64个独立LED */

cSeg: 0 ~ 63 */

#define zlg7289SegOff(cSeg) zlg7289CmdDat(0xC0, (cSeg)) 令 */

数码管被看成64个独立LED */

cSeg: 0 ~ 63 */

unsigned char ucKey = 0;

/* 循环 /* 循环 /* 闪烁控制 /* cX /* 0: /* 消隐控 /* cX /* 0: /* 段点亮 /* 8个 /* /* 段关闭指 /* 8个 /*

unsigned char signal_display;

/*********************************************************************************************************

** Function name: __delayNuS ** Descriptions: 延时N个微秒 ** input parameters: iTime: 延时时间 ** output parameters: 无 ** Returned value: 无

*********************************************************************************************************/

//****************************************** sbit zuo_a=P2^0; sbit zuo_b=P2^1; sbit zuo_c=P2^2; sbit zuo_d=P2^3; //左右电机4线位声明 sbit you_a=P2^4; sbit you_b=P2^5; sbit you_c=P2^6; sbit you_d=P2^7;

//****************************************** sbit fireyou=P1^0;

sbit firezhong=P1^1; //火焰探测器位声明 sbit firezuo=P1^2;

sbit firezuo_bian=P4^4; sbit fireyou_bian=P4^3;

//***************************************** sbit zuo_1=P1^7; sbit zuo_2=P1^6;

sbit zhong=P1^5; //5个红外对管位声明 sbit you_2=P1^4; sbit you_1=P1^3;

//****************************************** //****************************************** sbit TX_zhong=P0^2; //超声波 sbit RX_zhong=P0^3; sbit TX_zuo=P0^4; //超声波 sbit RX_zuo=P0^5; sbit TX_you=P0^6; //超声波 sbit RX_you=P0^7;

//****************************************** sbit fengshan=P0^0;

//****************************************** sbit beep=P0^1;

//****************************************** sbit kaiguan=P3^7; sbit kaishi=P3^6;

//****************************************** void ceju();

void delay_20us(); void delay_(uint z); void delay_dis(uint dis); void go();

void go_(uint go); void turn_zuo(uint a);

void turn_big_zuo(uint big_zuo); void turn_you(uint b);

void turn_big_you(uint big_you); void back(uint back_num); void init();

void delay(uint r); void chuli(); void cm10();

void display(uint ct_num1,uint ct_num2,uint ct_num3,uint ct_num4,uint ct_num5,uint ct_num6,uint ct_num7,uint ct_num8); void delaylong(uchar k); void zlg7289Init (); void guiji(); void cout(); void fanhui(); void ceju_zuo(); void ceju_you(); void min();

void you_back(); void zuo_back(); void xian13(); void huiku(); void huiku12(); void huiku10(); void huiku8(); void huiku13(); void huiku15(); void huiku16(); void huiku17(); void huiku18(); void huiku19(); void teshu(); void huiku40();

void huiku41(); void huiku21(); void moshi(); void huiku1(); void huiku5(); void huiku3(); void huiku7(); void three(); void guiji1(); void guiji2();

//******************************************

uchar code date[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99};//前进码

uchar code date_zuo[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};//小左转码 uchar code date_big_zuo[]={0x19,0x38,0x2c,0x64,0x46,0xc2,0x83,0x91};//大左转码 uchar code date_big_you[]={0x91,0x83,0xc2,0x46,0x64,0x2c,0x38,0x19};//大右转码 uchar code date_you[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//小右转码 //****************************************** uint xdata

c,small_zuo,small_you,turn_zuo_delay,turn_you_delay,time,juli_shi,juli_ge,heixian_shi,heixian_ge,s; uint

ceju_flag,ooo,cm_10,cm10_flag,miehuo_flag,rem_num,rem_num_shi,rem_num_ge,s_zuo,juli_zuo_shi,juli_zuo_ge;

uchar code shuzi[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0f};

uchar ceju_flag_zuo,chaosheng_flag,ceju_flag_you,s_you,juli_you_shi,juli_you_ge,fire_moshi; uchar xdata rem[100]; uchar

warn,s_min,bizhang_flag,duiqi,guai_num,zhi,y,jixian1,jixian2,zhi_finish,key,key_flag,flag4,end,end1,end2,end3,end4; int heixian_num; void main() { init(); moshi(); while(1) { cout(); } }

void cout() { if(key==0||key==1||key==2||key==3||key==4) { guiji();

}

if(key==7||key==8) { guiji2(); }

if(key==5||key==6) { guiji1(); }

if(fire_moshi==10) { }

if(fire_moshi==0) { if(firezuo==0||firezhong==0||fireyou==0||firezuo_bian==0||fireyou_bian==0) { cm_10=0; } }

if(fire_moshi==1) { if(firezuo==0||firezhong==0||fireyou==0) { cm_10=0; } }

if(fire_moshi==2) { if(firezuo==0||firezhong==0||fireyou==0||firezuo_bian==0) { cm_10=0; } }

if(fire_moshi==3) { if(firezuo==0||firezhong==0||fireyou==0||fireyou_bian==0) { cm_10=0; } }

if(fire_moshi==4) { if(firezhong==0||fireyou==0||fireyou_bian==0)

{ cm_10=0; } } cm10(); display(juli_shi,juli_ge,10,rem_num_shi,rem_num_ge,10,heixian_shi,heixian_ge); }

void init() { c=50; small_zuo=35; small_you=35; turn_zuo_delay=50; turn_you_delay=50; time=10000; s=20; TMOD=0x01;

TH0=(65535-30)/256; TL0=(65535-30)%6; EA=1; ET0=1; TX_zhong=0; TX_zuo=0; TX_you=0; chaosheng_flag=0; ceju_flag_zuo=0; ceju_flag_you=0; s_zuo=0; s_you=0; juli_you_shi=0; juli_you_ge=0; juli_zuo_shi=0; juli_zuo_ge=0; zlg7289Init(); delaylong(5); juli_shi=0; juli_ge=0; fengshan=1; beep=1;

{ go(); } if(zhong==1&&zuo_1==0&&zuo_2==0&&you_1==0&&you_2==0) { go(); } if(zhong==0&&zuo_1==1&&zuo_2==0&&you_1==1&&you_2==0) { go(); } if(zhong==1&&zuo_1==1&&zuo_2==1&&you_1==1&&you_2==1) { go(); } if(zhong==0&&zuo_2==0&&you_2==1) { turn_zuo(4); } if(zhong==1&&zuo_2==0&&you_2==1) { turn_zuo(4); } if(zhong==0&&zuo_2==1&&you_2==0) { turn_you(4); } if(zhong==1&&zuo_2==1&&you_2==0) { turn_you(4); } //;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; }

void min() { s_min=s; warn=4; if(s_min>s_zuo) { s_min=s_zuo; warn=5;

} if(s_min>s_you) { s_min=s_you; warn=6; } }

void xian13() { if(end3==0) { end3=1; ceju(); while(!warn); juli_shi=s0/10; juli_ge=s; juli_zuo_shi=s_you0/10; juli_zuo_ge=s_you; juli_you_shi=s_you0/10; juli_you_ge=s_you; display(juli_zuo_shi,juli_zuo_ge,10,juli_shi,juli_ge,10,juli_you_shi,juli_you_ge); ceju_zuo(); while(!warn); juli_shi=s0/10; juli_ge=s; juli_zuo_shi=s_you0/10; juli_zuo_ge=s_you; juli_you_shi=s_you0/10; juli_you_ge=s_you; display(juli_zuo_shi,juli_zuo_ge,10,juli_shi,juli_ge,10,juli_you_shi,juli_you_ge); ceju_you(); while(!warn); juli_shi=s0/10; juli_ge=s; juli_zuo_shi=s_you0/10; juli_zuo_ge=s_you; juli_you_shi=s_you0/10; juli_you_ge=s_you; display(juli_zuo_shi,juli_zuo_ge,10,juli_shi,juli_ge,10,juli_you_shi,juli_you_ge);

min();

if(s_min<28) { if(bizhang_flag==2) { } { bizhang_flag=1; } warn=0; turn_big_zuo(9); while(zhong) { turn_big_zuo(2); } go_(40); turn_big_you(30); heixian_num=140; zhi=1; while(zhi) { back(2); if((zuo_1==0&&you_1==1)||(zuo_1==1&&you_1==0)) { if(zhi_finish==0) { if(zuo_1==0) { zhi_finish=1; while(you_1) { if(zuo_1==1) { break; } you_back(); } zhi=0; } } if(zhi_finish==0)

{ if(you_1==0) { zhi_finish=1; while(zuo_1) { if(you_1==1) { break; } zuo_back(); } zhi=0; } } zhi_finish=0; } if(zuo_1==0&&you_1==0) { zhi=0; } go_(8); } } else warn=0; } }

void huiku17() { heixian_num=-4; turn_big_zuo(9); while(zhong) { turn_big_zuo(2); } while(bizhang_flag) { go(); if(zuo_1==0||you_1==0||(zuo_1==0&&you_1==0)||(zuo_1==0&&zuo_2==0&&zhong==0&&you_2==0&&you_1==0))

{ }

heixian_num++; if(duiqi==0) { if((zuo_1==0&&you_1==1)||(you_1==0&&zuo_1==1)) { if(zhi_finish==0) { if(zuo_1==0) { zhi_finish=1; while(you_1) { if(zuo_1==1) { break; } turn_zuo(guai_num); } } } if(zhi_finish==0) { if(you_1==0) { zhi_finish=1; while(zuo_1) { if(you_1==1) { break; } turn_you(guai_num); } } } zhi_finish=0; } }

go_(20);

heixian_shi=heixian_num/10; heixian_ge=heixian_num;

display(juli_shi,juli_ge,10,rem_num_shi,rem_num_ge,10,heixian_shi,heixian_ge);

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机智能电动消防车毕业论文在线全文阅读。

基于单片机智能电动消防车毕业论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/272599.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: