智能循迹小车车加看门狗是用来干啥用

&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&毕业设计
&&&&&&&&&&&&&&&&&&&&&&&&&&
(计算机与软件学院)
&&&&&&&&&&&&&&&&&&&&
设计课题:循迹小车
&&&&&&&&&&&&&&&&&&&&
专业班级:嵌入式0902
&&&&&&&&&&&&&&&&&&&&
学生姓名:梁川
&&&&&&&&&&&&&&&&&&&&
学生学号:7
&&&&&&&&&&&&&&&&&&&&
指导老师:张胜洪
&&&&&&&&&&&&&&&&&&&&&摘要
80C51 单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。本系统以毕业设计题目的要求为目的,采用 80C51
单片机为控制 核心,利用红外传感器检测道路上的障碍,控制电动小汽车的自动避障,自动循迹,自动转向,
以及自动停车,并可以自动记录时间、里程和速度等功能。整个系统的
电路结构简单,可靠性能高。实验测试结果满足要求,本文着重介绍了该系统的硬件设 计方法及测试结果分析。 采用的技术主要有:
(1)通过编程来控制小车的速度;
(2)传感器的有效应用;
(3)新型显示芯片的采用。
关键词 :80C51 单片机;红外传感器;PWM 调速;电动小车
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
...............................................................................................................................
&1.1 本课题研究的背景和意义
.......................................................................................
&1.2 智能循迹小车设计原理
..............................................................................................
& &2 方案设计与证
......................................................................................................
2.1 直流调速系统
.........................................................................................................
&2.2 检测系统
.....................................................................................................................
&3智能寻迹小车模块设计
.........................................................................
3.1 总体方案
.................................................................................................
3.2 传感检测单元
.............................................................................................................
3.2.1 小车循迹原理
...............................................................................................
&3.2.2 传感器的选择及检测电路设计
........................................................................
3.2.3 传感器的安装
...........................................................................................
3.3.1 单片机选型及程序流程
...........................................................................................
3.3.2 车速的控制
...............................................................................................................
3.3.3 电机驱动单元
...........................................................................................................
3.3.4 蜂鸣器电路设计
.......................................................................................................
3.3.5 稳压电源设计
..........................................................................................................
3.3.5显示单元……………………………………………………………………………………………………………..
.........................................................................................................................
...............................................................................................................................
........................................................................................................................
........................................................................................................................................
小车控制程序源代码(C)PCB图,仿真图
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
本课题研究的背景和意义随着嵌入式电子产品的迅速发展,关于嵌入式的研究也就越来越受人关注。全国电子大赛和
省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研
究。可见其研究意义很大。本设计就是在这样的背景下提出的,指导教师已经有充分的
准备。本题目是结合科研项目而确定的设计类课题。设计的智能循迹小车应该能够实时
显示时间、速度、里程,具有自动寻迹、避障功能,可程控行驶速度、准确定位停车。
根据题目的要求,确定如下方案:在循迹小车底盘的基础上,加装红外传感器实现对电动车的速度、位置、运行状况的实时测量,并将
测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对小车的 智能控制。
&这种方案能实现对小车的运动状态进行实时控制,控制灵活、可靠,精度高,可
满足对系统的各项要求。本设计采用 MCS-51 系列中的 80C51 单片机。以 80C51 为控制
核心,利用红外传感器检测道路上的障碍以及黑色路迹,控制小车的自动避障,快慢速行驶,
以及自动停车,并可以自动记录时间、里程和速度,自动寻迹功能。80C51 是一
款八位单片机,它的易用性和多功能性受到了广大使用者的好评。它是第三代单片机的 代表。
&第三代单片机包括了 Intel 公司发展 MCS-51 系列的新一代产品,如 8xC152、
80C51FA/FB、80C51GA/GB、8xC451、8xC452,还包括了 Philips、Siemens、ADM、
Fujutsu、OKI、Harria-Metra、ATMEL 等公司以 80C51 为核心推出的大量各具特色、与80C51
兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以 实现 Microcomputer
完善的控制功能为己任,将一些外部接口功能单元如 A/D、PWM、 PCA(可编程计数器阵列)、WDT(监视定时器)、高速 I/O
口、计数器的捕获/比较逻辑等。 这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单
片机应用系统设计提供了更加灵活的方式。Philips 公司还为这一代单片机 80C51 系列 8 xC592
单片机引入了具有较强功能的设 备间网络系统总线----CAN(Controller Area Network BUS)。
&新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下了良好 的基础。
计算机科学与技术 本设计就采用了比较先进的 80C51 为控制核心,80C51 采用 COMS 工艺,功耗很
低。该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是 在足球机器人研究方面具有很好的发展前景。
1.2智能循迹小车设计原理
这里的循迹是指小车在地板上循黑线行走,通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在
小车行驶过程中不断地向地面发射红外光,当红外光遇到非黑色纸质地板时发生漫反射,
反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接
收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的
行走路线。红外探测器探测距离有限,一般不超过3m.
1.3 智能循迹小车设计要求
(1)自动寻迹小车从安全区域启动。
(2)小车按指定路线运行,自动区分直线轨道和弯路轨道,在指定弯路处拐弯,实现灵
活前进、转弯、倒退等功能,在轨道上划出设定的地图
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2 方案设计与论证
根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,
实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处
理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可
满足对系统的各项要求。
2.1 直流调速系统
方案一:串电阻调速系统。
方案二:静止可控整流器。简称 V-M 系统。
方案三:脉宽调速系统。
旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流调节发电机的励磁电流即可改变其输出电压,从而调节电动机的转速。改
变励磁电流的方向则输出电压的极性和电动机的转向都随着改变,所以 G-M 系统的可逆
运行是很容易实现的。该系统需要旋转变流机组,至少包含两台与调速电动机容量相当
的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不方便等 缺点。且技术落后,因此搁置不用。
V-M 系统是当今直流调速系统的主要形式。它可以是单相、三相或更多相数,半波、 全波、半控、全控等类型,可实现平滑调速。V-M
系统的缺点是晶闸管的单向导电性, 它不允许电流反向,给系统的可逆运行造成困难。它的另一个缺点是运行条件要求高,
维护运行麻烦。最后,当系统处于低速运行时,系统的功率因数很低,并产生较大的谐 波电流危害附近的用电设备。
采用晶闸管的直流斩波器基本原理与整流电路不同的是,在这里晶闸管不受相位控
制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管
关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。
脉冲宽度 调制(Pulse Width Modulation) ,简称 PWM。脉冲周期不变,只改变晶闸管的导通时间,
即通过改变脉冲宽度来进行直流调速。 与 V-M 系统相比,PWM 调速系统有下列优点:
1)由于 PWM 调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动 很小的直流电流, 电枢电流容易连续,
系统的低速运行平稳, 调速范围较宽, 可达 1: 10000 左右。由于电流波形比 V-M
系统好,在相同的平均电流下,电动机的损耗和发热都比较 小。
&2)同样由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,
因此快速响应性能好,动态抗扰能力强。
&3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。
根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本 设计采用了 H 型单极型可逆 PWM 变换器进行调速。
脉宽调速系统的主电路采用脉宽调制式变换器,简称 PWM 变换器。
脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。为顺利实 现电动小汽车的前行与倒车,本设计采用了可逆 PWM
变换器。可逆 PWM 变换器主电 路的结构式有 H 型、T 型等类型。我们在设计中采用了常用的双极式 H 型变换器,它是 由 4
个三极电力晶体管和 4 个续流二极管组成的桥式电路
2.2 检测系统
检测系统主要实现光电检测,即利用各种传感器对小车的避障、位置、行车状态 进行测量。
1) 行车起始、终点及光线检测: 本系统采用反射式红外线光电传感器用于检测路面的起始、终点(2cm 宽的黑线) ,
玩具车底盘上沿黑线放置一套,以适应起始的记数开始和终点的停车的需要。本系统共设计四个红外传感器,分别放置在小车
头的左、中、右以及右轮旁边,用来控
制小车的行驶方向、前方障碍物以及小车行驶的速度和距离,仅当左侧红外接收管接收到红外光照射时,单片机控制转向电机向右转;仅当右侧红外接收管接收到红外光照射时,单片机控制转向电机向左转;仅当左、右两侧光电管都受到光照时,
单片机控制直
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&循迹小车的方向检测电路
行车方向检测电路(见图)采用反射接收原理配置了 一对红外线发射、接收传感器。该电路包括一个红外发光二极管、一个红外光敏三极管
及其上拉电阻。红外发光二极管发射一定强度的红外线照射物体,红外光敏三极管在接
收到反射回来的红外线后导通,发出一个电平跳变信号,此信号经过三极管放大后传入CPU来进行控制。
此套红外光电传感器固定在底盘前沿,贴近地面。正常行驶时,发射管发射红外光
照射地面,光线经白纸反射后被接收管接收,输出高电平信号;小车经过黑线时,发
射端发射的光线被黑线吸收,接收端接收不到反射光线,传感器输出低电平信号后送 80C51 单片机处理,判断执行。
哪一种预先编制的程序来控制玩具车的行驶状态。前进时,驱动轮直流电机正转,进 入减速区时,由单片机控制进行 PWM
变频调速,通过软件改变脉冲调宽波形的占空比,实 现调速。前行与倒车是有程序控制。
&&&&&&&&&&&&&&&&&&&&
3 智能寻迹小车模块设计
3.1 总体方案
整个电路系统分为检测、控制、驱动三个模块。首先利用红外对管对路面信号进行
检测,经过检测放大之后,送给软件控制模块进行实时控制,输出相应的信号给驱动 芯片驱动电机转动,从而控制整个小车的运动
检测(黑线)
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
&智能循迹小车系统框架图
2 传感检测单元
3.2.1 小车循迹原理
该智能小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不
同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、 应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在
小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射
光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收 不到信号。
3.2.2 传感器的选择及检测电路设计
市场上用于红外探测法的器件较多, 可以利用反射式传感器外接简单电路自制探头, 也可以使用结构简单、
工作性能可靠的集成式红外探头。 系列集成红外探头价格便宜、 ST 体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了
TCRT500 反射传感器 作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,其中TCRT5000
的实物与内部结构如下,
检测电路如下
TCRT5000 采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式 TCRT的检测距离很大,
一般为950毫米左右,经过多次测试、比较,发现把传感器安装在距离检 测物表面 15 毫米时,检测效果最好。 R1
限制发射二极管的电流,当红外接收管检测到有红外光照射时,红外接收管导通,经三极管放大后送入单片机控制。
3.2.3 传感器的安装
左红外对管
右红外对管
&正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方
法也是循迹电路好坏的一个重要因素。从简单、方便、可靠等角度出发,同时在底盘装 设 2
个红外探测头,进行两级方向纠正控制,将大大提高其循迹的可靠性,具体位置分布如下
2 3.3单片机选型及程序流程
方案1:可采用 AT89C51,AT89C51 是一款带 4K 字节 FLASH 寄存器的低电压、 高性能 CMOS 8
位微处理器 128&8 位内部 RAM, 32 可编程 I/O 线两个 16 位定时器/计数器, 个中断源, 5
电路简单,编程也比较容易,资料齐全,芯片很便宜,也很容易买到,适合入门级, 由于 I/O
不足,一旦数据量很大、涉及复杂运动控制等内容时, AT89C51 就力不从心了。运算的速度和效率低也是 AT89C51 的一个
方案 2:采用美国 ATMEL 公司资源丰富的 ATmegal128 产品作为主 控芯片进行设计。ATmegal128 为基于
AVR RISC 结构的 8 位低功耗 CMOS 微处理器,具有快速、灵活、集成度高、加密性强和易实现等
诸多优点。ATmegal128 具有 128KB 的系统内可编程 FLASH、4KB 的 SRAM、35 个中断、53 个通用 I/O
口线、32 个通用寄存器、实时 时钟 RTC、4 个灵活的具有比较模式和 PWM 功能的定时器/计数器 (T/C) 2 个
USART、 面向字节的两线接口 TW1、 8通道 10 位 ADC、具有片内振荡器的可编程看门狗定时器、SPI 串行端口、与
IEEE 1149.1 规范兼容的 JTAG 测试接口,以及 6 种可以通过软件选择的省 电模式。 总的来说,CPU
构架不同,虽然都是 8 位的,但指令集不同, ATmega128 是用 RISC 的,哈佛结构的总线;AT89C51 是用 CISC,
冯诺衣曼结构的总线。
从总体来说,AT89C51系列的芯片结构比较简单,价格比较便宜,对功能不是很高的设计者来说AT89C51比较适合,于是我采用的是方案1。
3.3.2 车速的控制
本机主要采用PWM来调速,PWM调速只要是针对功率较小的电机,具有较高的定位和精度,低速性能好,稳速精度高,调速范围宽等优点,同时价格比较便宜适合范围小的场合。
其中各种转向方式的PWM 占空比分配如下
左轮PWM的占空比
-40(反转)
右轮PWM的占空比
3.3.3 电机驱动单元
电机的选择
方案一:采用步进电机作为该系统的驱动电机。步进电机体积大
价格高昂,且它的输出力矩较低,随转速的升高而下降,且在较高轿速时会急剧下降,其转速较低,不适合于小车等有一定速度要求的系
统。综合考虑比较,我们放弃了此方案,
方案 2:采用直流电机。直流电机转动力矩大,体积小,重量轻,电路简单,使用方便。由于其内部由高速电动机提供原始动力,可以
产生大力矩。能够较好的满足系统要求,方向可用于控制前轮转动角度,可实现避障、循迹和寻光功能。因此我们选择此方案。
方案 1:采用直流电机驱动芯牿MC338886,驱动电流可达 2A,外 围器件简单,贴片封装体积尿 但调速时 MC338886
发热量很大,寿臿 MC338886 皿FS 引脚置位,从而使其不工作,特别是采用反向制动 后置这这只这种情况更严重
方案 2: 采用直流电机驱动芯片
L298N,驱动电流总和可达4A,它可以驱动二相和四相步进电机的专用芯片,我们利用它内部的双H(如图
1)桥式电路来驱动直流电机,这种驱动电路可以 很方便实现,直流电机的四项运行,分别对应正转,反转,反转制动,正转制动
,控制电路简单,电路也简单,我们选择此方案。其电路图如下
3.3.4 蜂鸣器电路设计
本设计的报警器采用的是有源蜂鸣器,其特点是结构简单,焊接和对其控制也比较简单,采用PNP
三极管对其放大电流来增大蜂鸣器的声音。在蜂鸣器想的同时,对应的LED 也会亮, 其电路图如下
3.3.5 稳压电源设计
电源部分一个系统中至关重要的部分,没有电源整个部分就不能工作,同时,电压过高过低对整个硬件能否正常工作也至关重要,本系统的CPU芯片正常工作的电压为5V,于是可有以下几种方案可选
方案一:采用4节1.5V的干电池相连,然后用稳压芯片降压,优点是方便价格便宜,便于更换。缺点是耐用时间短。
方案二:采用蓄电池5V电池供电,缺点是价格贵,随着电池的供电,电量会下降,电压也会下降,各系统可能不能正常工作
本系统为简单的循迹系统,在价格要求低的情况下,我采用的是方案一,其稳压芯片为 7905,输出端为5V电压。
3.3.6显示单元
采用的是1602LCD,有单片机的总线模式连接,为了节约电源,LCD背光采用单片机进行控制,1602显示如下
&&&&&&&&&5
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本糿统能实现如下功能:自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直
道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物,从无障碍
区通过。小车通过障碍区后,能够自动循迹
,自动检测停车线并自动停车,从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能
稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,我相信如果实验条件和时间的允许下我肯定能解决这一问题,
通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使 我在人生上又进了一步。也认识到很多的不足。
&&&&&&&&&&&&&&&&&&&&&&&
本设计能够顺利完成,还承蒙嵌入式学习群里面的高手的指导和帮助。在
设计过程中,那些网友们给予了悉心的指导,最重要的是给了我解决问题的思路和方法,在此,我对他们衿
示最真挚的感谢!感些评阅老师百忙之中抽出时间对本论文进行评阅!
王秋爽,曾兆龙的《单片机开发基础与经典设计实例》北京机械工业出版社出版
吴锤红的 《MCS-51微机原理与接口技术》 厦门大学出版社
十天学会单片机视频教程
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
////IRL2检测右边车体是否偏离轨道
////IRL3 检测车前是否有障碍物*******
/////////////////
#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0;
sbit e=P2^2;
sbit rw=P2^1;
sbit ENA=P1^2;
sbit ENB=P1^3;
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit Speaker=P2^7;
sbit Run=P1^7;
sbit s1=P3^6;
sbit s2=P3^4;
sbit s3=P3^5;
static uchar idata count=0;
char idata miao=50,shi=23,fen=59;
static char idata F
static char idata InitF
uchar Turn_Left[]="&--TurnLeft";
uchar Turn_Right[]="TurnRight--&";
uchar Running[]="Distance is: ";
uchar Time[]="&&
Time:23:59:50";
DesignerName[][12]={"Graduation","Project","DesigenedBy","LiangChuan"};
void keyscan();
uint idata num=0;
static uint idata CircleN
void delay(uint z)
for(x=z;x&0;x--)
&&&&&&&&&&
for(y=110;y&0;y--);
void SpeakerAlert(uchar AlertTime)
& int Time=0;
for(;Time&AlertTTime++)
Speaker=~S
delay(100);
void write_com(uchar com)
delay(2);& //延时2ms
void write_date(uchar date)&
void InitLCD1602()&
write_com(0x38); //功能设置,8位数据接浚2行显示&#点阵显示
write_com(0x0c);& //设置显示,开显示?闪烁关
write_com(0x06); //输入方式设置,读数据,画面不移动
write_com(0x01);//清屏
void InitTime_External_Interrupt()
TMOD=0x01;//
TH0=()/256;
& // EA=1;
EX0=1;& // 选择中断方式0
IT0=1;&& // 选择下降沿触发方式
void DisplayDisgner()
&& uchar idata
& while(1)
&& if(CircleNum==0)
while(i&4)
write_com(0x80);
for(j=0;j&sizeof(DesignerName[i]);j++)
&&&&&&&&&&
write_date(DesignerName[i][j]);
&&&&&&&&&&
delay(1000);
write_com(0x80);
for(j=0;j&13;j++)
&&&&&&&&&&&
write_date(Running[j]);
&&&&&&&&&&&&
void StartLCD1602AndMotor()
write_com(0x80+0x40);//向第二行写数据
for(num=0;num&16;num++)
&&&&&&&&&&
write_date(Time[num]);
&&&&&&&&&&&&&&&
&&&&&&&&&&
P2=0X28;DisplayDisgner();
void Write_SFM_Distance(uchar Add,uchar Num)
uchar idata Hundred,Ten,S
Hundred=Num/100;
if(Hundred&0)
Ten=Num/10;
Ten=Num/10;
write_com(0x80+Add);
if(Add==0x0d)
write_date(0x30+Hundred);
write_date(0x30+Ten);
write_date(0x30+Single);
void write_sfm(uchar add,uchar date)
uchar shi,
shi=date/10;
write_com(0x80+0x40+add);
write_date(0x30+shi);
write_date(0x30+ge);
void init()
InitTime_External_Interrupt();
&& InitLCD1602() ;
StartLCD1602AndMotor();
DisplayDisgner();
char ScanButton()
& Flag=P1;
if(InitFlag&(1&&7)==0x80)
if(Flag&(1&&7)==0x80)
&&&&&&&&&&
&&&&&&&&&&
void ScanLine()
& uchar idata i=0;
& Flag=P1;
& if((Flag&0X10)==0x10)
//IRL1高电平,向右偏离轨道
{&&&&&&&&&&&&
//调整车方向向左进入轨道
if((Flag&0X10)==0x10)
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
SpeakerAlert(3);&&&&&
&&&&&&&&&&
write_com(0x80);
&&&&&&&&&&
for(;i&11;i++)
&&&&&&&&&&&
&&&&&&&&&&&&&
write_com(0x80+i);
&&&&&&&&&&&&&
write_date(Turn_Left[i]);
&&&&&&&&&&&&&
&&&&&&&&&&&&
if((Flag&0X20)==0x20) //IRL2高电平,向左偏离轨道
{&&&&&&&&&&&&&&&&
//调整车方向向右进入轨道
if(Flag&0X20==0x20)
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&&&&
SpeakerAlert(3);
if((Flag&0x40)==0x40)
&&&&&&&&&&&
if((Flag&0x40)==0x40)//车前有障碍物,车子停
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
SpeakerAlert(3);
&&&&&&&&&&&&&&
&&&&&&&&&&
P1=0x0f;&&
//没有越线没有障碍物,下车继续行驶
&&&&&&&&&&
void main()
init();&&&&&&
P1=0x0f;//初始状态没有异常
ScanLine() ;
keyscan();
void Timer0Interrupt() interrupt 1 //定时器中断 1
TH0=()/256;
if(count==20)
&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
if(miao==60)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
if(fen==60)
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(shi==24)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
Write_SFM_Distance(0x40+8,shi);
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
Write_SFM_Distance(0x40+11,fen);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
Write_SFM_Distance(0x40+14,miao);
void ExternalInterrupt1()interrupt 0
&& CircleNum++;
Write_SFM_Distance(0x0d,CircleNum);
void keyscan()
if(s1==0)&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&&&&&
while(!s1);
&&&&&&&&&&&&&&&
if(s1num==1)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+14);
&&&&&&&&&&&&&&&&&&&&
write_com(0x0f);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
if(s1num==2)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+11);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
if(s1num==3)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+8);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
if(s1num==4)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
write_com(0x0c);
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
if(s1num!=0)
&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
while(!s2);
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==1)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(miao==60)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(14,miao);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+14);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==2)
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(fen==60)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(11,fen);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+11);
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==3)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(shi==24)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(8,shi);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+8);
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
while(!s3);
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==1)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(miao==-1)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(14,miao);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+14);
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==2)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(fen==-1)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(11,fen);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+11);
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&
if(s1num==3)
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(shi==-1)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_sfm(8,shi);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
write_com(0x80+0x40+8);
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 四路循迹小车程序 的文章

 

随机推荐