基于单片机的遥控小车控制
更新时间:2024-03-21 09:28:02 阅读量: 综合文库 文档下载
华东理工大学
毕 业 设 计
题 目 基于单片机的遥控小车控制
英文题目 microcontroller based on the remote control trolleys
学生姓名: 学 号: 专 业: 自 动 化 系 别: 机械工程系 指导老师: 职称 实验师
二零一二年六月
东华理工大学长江学院毕业设计(论文)
摘 要
随着生产自动化的发展需要,机器人已经越来越广泛地应用到生产自动化上,随着科学技术的发展,机器人的传感器种类也越来越多,其中红外传感器已经成为自动行走和驾驶的重要部件。
单片机即单片微型计算机,是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。其中51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域。
红外的典型应用领域为自主式智能导航系统,机器人要实现自动避障功能就必须要感知障碍物,感知障碍物相当给机器人一个视觉功能。智能避障是基于红外传感系统,采用红外传感器实现前方障碍物检测,并判断障碍物远近。
由于时间和水平有限,我暂选最基本的行动与避障功能作为此次设计的目标。
关键词: 单片机、接收、发射、电动小车
Ι
东华理工大学长江学院毕业设计(论文)
ABSTRCT With the development needs of automation, robotics has become increasingly widely used in automation, the development of science and technology with the robot more and more types of sensors, infrared sensors, which have become automatic walking and driving important parts. Single-chip micro-computer single chip that is a CPU, RAM, ROM, timing, counting and multiple interfaces in one microcontroller. SCM 51 SCM is the variety of the most typical and representative of a widely used in various fields.Typical applications infrared intelligent navigation system for autonomous robot to achieve the automatic obstacle avoidance functions must be perceived obstacles, perceived obstacles to the robot a very visual function. Intelligent obstacle avoidance is based on the infrared sensor system that uses infrared sensors to achieve the front obstacle detection, and to judge distance barrier.
Limited due to time and level one, I choose the most basic function of actions and avoidance as the design goal.
Key Word: microcontroller, receiving ,transmitting, electric trolley
Ⅱ 1
东华理工大学长江学院毕业设计(论文)
目 录
摘 要 ................................................................ Ⅰ ABSTRACT ............................................................... Ⅱ 绪 论 .................................................................. 1 第一章 智能小车总体方案设计 ............................................ 2 1.1 系统的设计原则 ..................................................... 2 1.2 系统总体方案设计和工艺要求 ......................................... 2 1.3 系统设计要求 ....................................................... 3 1.4 系统的基本工作原理 ................................................. 3 第二章 硬件设计 ........................................................ 4 2.1 系统的总体结构和框架图 ............................................. 4 2.2 原理图的设计原则 ................................................... 5 2.3 遥控小车部分硬件电路图 ............................................. 5 2.3.1 遥控小车发射板电路图 ............................................. 5 2.3.2 遥控小车接收板电路图 ............................................. 6 2.3.3 电机驱动模块电路图 ............................................... 7 2.3.4 直流稳压电机电路图 ............................................... 7 2.4 部分重要元器件介绍 ................................................. 8 2.4.1 主控芯片介绍 ..................................................... 8 2.4.2 HS0038介绍 ..................................................... 10 2.4.3 光电避障传感器介绍 .............................................. 11 2. 4. 4 发光二极管介绍 .................................................. 12 2. 4. 5 红外发光二极管介绍 .............................................. 13 2. 5 重要元器件的选择 ................................................. 14 2. 5. 1 遥控解码方案的选择 .............................................. 14 2. 5. 2 电机的选择 ...................................................... 14 第三章 系统软件设计 ................................................... 16 3.1 单片机编程的基本原则 .............................................. 16 3.2 编程的语言 ........................................................ 17 3.2.1 汇编语言 ........................................................ 17 3.2.2 C语言 .......................................................... 19 3.3 软件设计 .......................................................... 21 3.4 遥控编码器的原理介绍 .............................................. 22 3.5 系统软件流程图 .................................................... 24 3.5.1 小车发射板主程序流程图 .......................................... 24 3.5.2 小车发射子程序流程图 ............................................ 24 3.5.3 小车接收板主程序流程图 .......................................... 26 3.5.4 小车自动驾驶子程序流程图 ........................................ 27 3.5.5 小车中断接收流程图 .............................................. 28 结 论 ................................................................. 29 致 谢 ................................................................. 30
0
东华理工大学长江学院毕业设计(论文)
参考文献 .............................................................. .31 附录1 程序清单 ........................................................ 32 附录2 硬件连接图 ..................................................... 40
东华理工大学长江学院毕业设计(论文)
绪 论
当今社会,随着科技发展的日新月异,特别是计算机技术突飞猛进的发展,计算机技术带来了科研和生产的许多重大飞跃,同时计算机也越来越广泛的被应用到人们的生活、工作领域的各个方面。单片微型计算机以其其体积小、功能强、速度快、价格低等优点,在数据处理和实时控制等应用中有着无以伦比的优越性,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中。随着微控制技术(以软件代硬件的高性能控制技术)的日益完善和发展,单片机的应用必将导致传统控制技术发生巨大的变化。单片微型计算机的应用广度和深度,已经成为一个国家科技水平的一项重要标志。
在科学探索和紧急中经常会遇到对一些危险或人类不能直接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中进行自动避障是一项必不可少也是最基本的功能。因此,自动避障系统的研发就应运而生。我们的自动避障小车就是基于这一系统开发而成的。
1
东华理工大学长江学院毕业设计(论文)
第一章 智能小车控制系统总体方案设计
在本章中主要介绍了系统的设计原则和总体方案等。
1.1 系统设计原则
1.1.1 安全可靠
首先要选用高性能的AT89C2051单片机,保证在任意的工业环境下能正常运行。其次是设计可靠的控制方案和最优的控制算法,并具有各种安全保护措施,如超限报警、事故处理和不间断电源等。 1.1.2 操作维护方便
操作方便表现在操作简单、直观形象和便于掌握且携带简便,安装简单,基本不会出现故障。 1.1.3 通用性好
系统设计时应考虑能适应不同的设备和各种不同控制对象,按照控制要求灵活构成系统。主要表现在两个方面:一是硬件板设计采用标准总线结构(如PC总线),配置各种通用的模板,以便扩充功能时,只需增加功能模板就能实现;二是软件功能模块或控制算法采用标准模块结构,用户使用时不需要二次开发,只需各种功能模块,灵活地进行控制系统组态。
1.2 系统总体方案设计和工艺要求
1.2.1 系统总体方案
①系统的主要功能、技术指标、原理性方框及文字说明。 ②系统的硬件结构及配置,主要软件的功能、结构框图。 ③保证性能指标要求的技术措施。 ④可靠性设计。 1.2.2 工艺要求 采用的技术主要有:
(1) 通过红外发射装置远程遥控小车; (2) 8051芯片的使用
(3) 红外线光感检测障碍,实现自动避障
2
东华理工大学长江学院毕业设计(论文)
1.3 系统设计要求
1.3.1 硬件电路图用Protel DXP绘制,符合最新制图标准,表达完整,布局合理。
1.3.2 注重系统设计的几大原则(安全可靠,操作维护方便,实时性强,通用性好,在满足使用的前提下,使产品性价比尽可以高)。
1.3.3 系统需求分析完整清楚;系统设计思路清晰,设计方案切实可行;计算正确可靠。避免冗长,反对抄袭。
1.3.4 红外遥控系统是利用红外发射与接收装置远程遥控小车的系统。是一套简易模型车体。包括遥控和自动驾驶两大功能。可以根据现场情况改变其行驶状态。
了解了该系统原理后,可以改装其成为简易机器人的底层动作平台,学习以伺服机为动力的移动平台设计原理及相关程序设计,还可以有其他的应用,凡是需要发单片机控制要想移动的机构都可能有机会使用到它。可以很有效率的设计一些高精密的传动系统。
1.4系统的基本工作原理
1.系统工作原理:
该系统是基于单片机的红外遥控小车系统,该系统包括了红外远程遥控器,2个步进电机,红外检测模块,和单片机的电源设计。
本系统首先是利用了红外发射接收装置容易获得且价格适中,信号较稳定,且不容易发散。小车的驱动和转向是由2个步进电机控制,2个步进电机的正反转可以很好的完成小车的前进,后退,左转,右转。小车在无人控制的情况下可以进行自动驾驶,利用光电检测可以检测到20~30CM内是否有障碍物,可以完成避障。
3
东华理工大学长江学院毕业设计(论文)
第二章 硬件设计
2.1 系统的总体结构和框架图
过程计算机控制系统的设计过程分为总体设计、硬件设计、软件设计和系统调试四个部分。在进行控制系统设计前,应该首先考虑对控制对象进行深入的调查和分析,并熟悉工艺流程,根据生产中提出来的问题,确定系统所需要完成的任务。然后写出论证,选择控制方案,控制方案的好坏,直接影响控制效果、系统投资和系统的经济效益。
用单片机实现的智能小车控制系统如下:
红外发射 单 片 机 键盘输入
图 2-1 遥控小车发射板电路图
4
红外接收 单 片机 自动驾驶提示灯 电机前后控制 避障光电检测 电机左右控制 图2-2遥控小车接收板电路图
东华理工大学长江学院毕业设计(论文)
2.2原理图的设计原则
原理图主要由设计、诊断与检查组成。 原理图的设计要符合以下几点要求:
(1)原理图设计要符合项目的工作原理,连线要正确。
(2)图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。 (3)原理图要完整,CPU,外围器件,扩展接口,输入/输出装置要一应俱全。 原理图的设计、诊断与检查在Protel DXP软件环境下完成。
系统设计完成后,进入印制板制作、器件焊接及软件编程阶段。在印制板设 计时,要仔细考虑印制板的面积、布局及连线长度,以减小对信号的延时和抗干 扰。对加工好的印制板还要进行仔细的检查,最后将器件、插座及元件等逐一焊 接在印制板上。
2.3 遥控小车部分硬件电路图
本系统采用AT89C2051芯片作遥控发射器及接收处理器,汽车前进、后退
与转向分别用2个电机,采用桥式开关电路驱动电机。无线传送用接收∕发射模块完成。小汽车能前进、后退、左转、右转及自动驾驶(遇到障碍时能自动改变行驶方向)。遥控小汽车的电路原理图如下所示。
2.3.1.遥控小车发射板电路图
发射电路板共设有5个按键开关,分别作为汽车左转弯、右转弯、前进、后退及自动驾驶控制用。P1.0和P1.1作为输入口时应接上拉电阻,遥控编码从P3.5脚输出至无线发射模块。该板次采用脉冲个数编码以区别不同的按键功能,具体定义如下.
前进键:按下发2个脉冲,释放发8个脉冲。 后退键:按下发3个脉冲,释放发8个脉冲。 左转键:按下发4个脉冲,释放发7个脉冲。 右转键:按下发5个脉冲,释放发7个脉冲。 自动键:按下发6个脉冲
5
东华理工大学长江学院毕业设计(论文)
图2-3小车发射板电路图
2.3.2 遥控小车接收板电路图
无线接收模块输出的编码脉冲从P3.1口输入,采用中断接收方式处理脉冲编码。电机采用桥式驱动,P1.0、P1.1口作前后驱动电机控制用,P1.2、P1.3口作转向电机控制用。P3.0接前障碍红外线探测头,P3.5接后障碍红外线探测头。P1.4口接一个LED发光管用做自动驾驶指示。
6
东华理工大学长江学院毕业设计(论文)
2.3.3电机驱动模块
表3-1 伺服车控制原理
车子动作 前进 后退 左转 右转 右转的功能。
图2-4小车接收板电路图
左伺服机 正转 反转 反转 正转 右伺服机 正转 反转 正转 反转 如上表所示,利用2个电机控制小车2个后轮实现小车前进、后退、左转、7
东华理工大学长江学院毕业设计(论文)
图2-5电机驱动电路图
2.3.4直流稳压电源电路
本设计中采用4节干电池作为电源。如图所示为1.25~37V可调电源电路。它是可调式三端稳压器的典型应用电路,特点是性能好、工作稳定、体积小、制作安装简单方便,最大输出电流为l.5A,输出电压在1.25~37V之间连续可调。它最适合做实验用电源。图中C3用于滤除RP上的纹波,提高电源输出电压的稳定性。由于某种原因当LM317的输出端与输入端短路时,C2会通过LM317内部放电而损坏芯片,VD6可为C2提供放电回路。C4用来防止输出端产生自激。VD5为保护二极管,用以防止输入端短路时容性负载上积存的电荷向LM317放电。为了保证LM317可靠工作。Rl的阻值一般取120Ω(或240Ω)。 2.1.5 电源电路
电源电路采用干电池供电。4节干电池可以提供6V电压,而单片机的工作电压为5V,所以我添加了一个发光LED二极管作为分压与现实电源灯的作用
8
东华理工大学长江学院毕业设计(论文)
图2-6直流电源电路图
总体硬件图见附录2
2.4 部分重要元器件介绍
2.4.1 主控芯片介绍
本设计中采用单片机作为主控芯片。 1、单片机的特点:
(1) 体积小,重量轻,价格便宜,耗电少。
(2) 根据工控环境要求设计,且许多功能部件集成在芯片内部,其信号通道受外界影响小,故可靠性高,抗干扰性能优于采用一般的CUP。
(3) 控制功能强,运行速度快.其结构组成与指令系统都着重满足工控要求.有极丰富的条件分支转移指令,有很强的位处理功能和I/O口逻辑操作功能。 (4) 片内存储器容量可能不大;引脚也嫌少,I/O引脚常不够用,且兼第二功能以至第三功能.但存储器和I/O接口都易于扩展。 2、单片机的应用:
由于上述单片机特点,可推知其应用最多的领域为
9
东华理工大学长江学院毕业设计(论文)
(1) 因它具有“小,轻,廉,省”的特点,尤其耗电少,又可使供电电源的体积小,重量轻,所以特别适用于“电脑型产品”,在家用电器,玩具,游戏机,声像设备,电子称,收银机,办公设备,厨房设备等许多产品上得到应用。
(2) 适用于仪器,仪表,不仅能完成测量,还具有处理(运算,误差修正,线性化),监控等功能,易于实现数字化和智能化。
(3) 有利于“机电一体化”技术的发展,多用于数控机械,缝纫机械,医疗设备,汽车等。
(4) 广泛应用于打印机,绘图仪等许多计算机外围设备,特别是用于智能终端,可大大减轻主机负担。
(5) 用于各种工业控制,如温度控制,液面控制,生产线顺序控制等。
2.4.1.2 AT89C2051芯片介绍
图2-7 AT8C2051实物图
at89c2051是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大at89c2051单片机可为您提供许多高性价比的应用场合。
主要性能:
.和MCS-51产品兼容;
.2KB可重编程FLASH存储器(1000次); .2.7-6V电压范围; .全静态工作:0Hz-24KHz .2级程序存储器保密锁定 .128*8位内部RAM .15条可编程I/O线 .两个16位定时器/计数器 .6个中断源
10
东华理工大学长江学院毕业设计(论文)
.可编程串行通道
.高精度电压比较器(P1.0,P1.1,P3.6) .直接驱动LED的输出端口
芯片引脚图
图2-8 AT89C2051引脚图
2.4.2 HS00381芯片介绍
随着家用电器、视听产品的普及,自动化办公设备的广泛应用和网络化的不断发展,越来越多的产品具有了待机功能(如遥控开关、网络唤醒、定时开关、智能开关等)。产品的待机功能实现遥控操作,极大地方便了我们的生活,但也浪费了大量的能源。中国节能产品认证中心(CECP)调查显示,全球每个家庭处于待机状态下的家电相当于亮着一个15 W~30 W 的长明灯,仅一台彩电每年在“无用待机状态”下浪费电力近100°,在我国彩色电视机待机一项一年就浪费电力150 多亿度,相当于十几个大型火力发电厂白白发电。澳大利亚电器设备能源委员会新近的研究成果显示,不仅会耗费可观的电能,每月支付数额不小的“冤枉电费”,而且其释放大量有害气体二氧化碳在一定程度上加速了气候的变暖。利用本系统可以良好的达到节能和环保的效果。同时在家庭或工业控制现场,一些手动操作不太方便的场合,可以使用现有遥控器通过设置代替手动操作,比如可以利用家中现有的彩电遥控器,控制其它没有遥控功能的电器(如电灯、计算机、音响、电脑、打印机、饮水机、热水器等),方便生活。
红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。
在本系统中我们采用红外一体化接收头HS0038,该红外接收探头接收红外信号频率为38kHz,周期约26μs 外观图如图2-9 所示。HS0038 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS 电路兼容。HS0038 为直立侧面收光型。它接收红外信
11
东华理工大学长江学院毕业设计(论文)
号频率为38 kHz,周期约26 μs,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚分别是地、+5 V 电源、解调信号输出端。
红外一体化接收头的测试可以利用图2-10 所示的电路进行,在HS0038 的电源端与信号输出端之间接上一只二极管及一只发光二极管后,再配上规定的工作电源(为+5V),当手拿遥控器对着接收头按任意键时,发光二极管会闪烁,说明红外接收头和遥控器工作都正常;如果发光二极管不闪烁发光,说明红外接收头和遥控器至少有一个损坏。只要确保遥控器工作正常,很容易判断红外接收头的优劣。
图2-9 HS0038外观图
1 2 3 图2-10 HS0038原理图
HS0038 图示说明: 1. 接地端 2. 电源端 3. 信号输出端
2.4.3光电避障传感器E18-D80NK 简介:
这是一种集发射与接收于一体的光电传感器。检测距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。数字量
12
东华理工大学长江学院毕业设计(论文)
输出,不需要进行AD转换,可直接接单片机的IO口,通过后面的可调电位器调整距离(3-80CM有效)。如图2-11所示。
电气特性: U:5VDC I:100mA Sn:3-80CM 尺寸: 直径:17MM 传感器长度:45MM 引线长度:45CM
图2-11红外避障传感器E18-D80NK实物图与原理图
2.4.4发光二极管
发光二极管是一种直接能把电能转变为光能的半导体器件。与其它发光器件
13
东华理工大学长江学院毕业设计(论文)
相比,具有体积小、功耗低、发光均匀、稳定、响应速度快、寿命长和可靠性高等优点,被广泛应用于各种电子仪器、音响设备、计算机等作电流指示、音频指示和信息状态显示等。 a.发光原理
光二极管的管芯结构与普通二极管相似,由一个PN结构成。当在发光二极管PN结上加正向电压时,空间电荷层变窄,载流子扩散运动大于漂移运动,致使P区的空穴注入N区,N区的电子注入P区。当电子和空穴复合时会释放出能量并以发光的形式表现出来。 b.种类和符号
光二极管的种类很多,按发光材料来区分有磷化镓(GaP)发光二极管、磷砷化镓(GaAsP)发光二极管、砷铝镓(GaAIAs)发光二极管等;按发光颜色来分有发红光、黄光、绿光以及眼睛看不见的红外发光二极管等;若按功率来区别可分为小功率(HG 400系列)、中功率(HG50系列)和大功率(HG52系列)发光二极管:另外还有多色、变色发光二极管等等。
小功率的发光二极管正常工作电流在10 ~ 30mA范围内。通常正向压降值在1.5 ~ 3V范围内。发光二极管的反向耐压一般在6V左右。
发光二极管的伏安特性与整流二极管相似。为了避免由于电源波动引起正向电流值超过最大允许工作电流而导致管子烧坏,通常应串联一个限流电阻来限制流过二极管的电流。由于发光二极管最大允许工作电流随环境温度的升高而降低,因此,发光二极管不宜在高温环境中使用。 2.4.5红外发光二极管
外形
图2-12红外发光二极管实物图
常用的红外发光二极管如SE303.PH303),其外形和发光二极管LED相似,发出红外光。管压降约1.4v,工作电流一般小于20mA。为了适应不同的工作电压,回路中常常串有限流电阻。
发射红外线去控制相应的受控装置时,其控制的距离与发射功率成正比。为了增加红外线的控制距离,红外发光二极管工作于脉冲状态,因为脉动光(调制光)的有效传送距离与脉冲的峰值电流成正比,只需尽量提高峰值Ip,就能增加红外光的发射距离。提高Ip的方法,是减小脉冲占空
14
东华理工大学长江学院毕业设计(论文)
比,即压缩脉冲的宽度T,一些彩电红外遥控器,其红外发光管的工作脉冲占空比约为1/3-1/4;一些电器产品红外遥控器,其占空比是1/10。减小脉冲占空比还可使小功率红外发光二极管的发射距离大大增加。常见的红外发光二极管,其功率分为小功率(1mW-10mW)、中功率(20mW-50mW)和大功率(50mW-100mW以上)三大类。要使红外发光二极管产生调制光,只需在驱动管上加上一定频率的脉冲电压。
用红外发光二极管发射红外线去控制受控装置时,受控装置中均有相应的红外光一电转换元件,如红外接收二极管,光电三极管等。实用中已有红外发射和接收配对的二级管。
2.5 重要元器件的选择 2.5.1遥控解码方案的选择
为了实现系统整体功能,红外解码部分是核心,红外解码指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。方案一:此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的设置键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是不是设置信号,当确认是设置信号后,启动设置子程序,那么以后接收到的红外信号就是
设置的时间信号了,红外接收头接收到红外信号后再通过放大器将信号传到解码器中,解码器解完码后送到单片机,单片机再通过查表确定这些数值并进行设置,然后按下确认键,红外接收头接收到这个信号并通过放大送到解码器中,解码后再送到单片机中,单片机通过查表确定这是确认操作后,可以通过可控硅控制电源通断。。 方案二:此方案中,我们采用普通的家用电器遥
控器作为控制信号发出装置,当按下遥控器的设置键后,红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,
解码完成后查表确定是不是设置信号,当这个信号是设置信号后,启动设置子程序,那么以后接收到的红外信号就是设置的时间信号了,单片机再对这些信号进行解码,查表判断出数值是多少,然后设置,设置完时间后要进行确认,当遥控器发出确认信号后,单片机收到这个信号并查表判断这是确认信号后,执行确认指令,使设置生效,从而达到控制电源通断的目的。
方案一为硬件解码方案,硬件解码需要使用与遥控器相配套的专用的
15
东华理工大学长江学院毕业设计(论文)
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
(6) C语言允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
生成目标代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10~20%。
(7) C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。 3.2.2.2 缺点
a. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
b. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。 3.2.2.3 C语言的特点
a. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
b. C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
c. C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 d. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
e. C语言文件由数据序列组成,可以构成二进制文件或文本文件。
21
东华理工大学长江学院毕业设计(论文)
综上所述考虑到汇编语言和C语言,结合自身优势,本设计采用汇编语言进行程序编写。
3.3 软件设计
软件设计采用汇编语言,模块化结构设计。包括初始化程序、主程序、键盘扫描程序、红外发射程序等。在软件设计中注意如下几个问题:
(1)抗干扰措施
①为了保证电路的性能,电阻全部采用精密电阻,电容选用高阻抗优质电容,并且进选择配套,印制电路板的绝缘质量好,布线的安排要合理。实践证明,布线的安排对电路的性能影响是明显的。
②采用软件方法消除抖动,即检测出键闭合后执行一个延时程序,产生一个5ms-10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下,当检测到按键释放后,也要给5ms-10ms的延时,待后延抖动消失后才能转入该键的处理程序。
③电桥电源采用专用桥头电源变压器,使桥路有一个稳定的电流。
其他程序见附录1
22
东华理工大学长江学院毕业设计(论文)
3.4 遥控编码原理介绍
1)遥控码的编码格式
该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码。最小为2个脉冲,最大为8个脉冲。为了使接收可靠,第一位码宽3ms,其余为1ms,遥控码数据帧间隔大于10ms,如下图所示
发射2个脉冲前进
发射3个脉冲后退
发射4个脉冲左转
3ms 1ms 10ms 帧间隔 发射5个脉冲右转
发射6个脉冲自动驾驶 图3-2遥控编码发送示意图
23
东华理工大学长江学院毕业设计(论文)
2)遥控码的发射
当某个操作键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,在调成40KHz方波由红外线发光管发射出去。P3.5端口的输出调制波如上图所示。
3)数据帧的接受处理
当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,将对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误码处理。当间隔位的高电平脉宽大于3ms时,接收结束,然后根据累加器A中的脉冲个数,执行相应输出口的操作。下图为红外线接收器输出的一帧遥控码波形图。
10ms 1ms 10ms 停止位 3ms 1ms 图3-3红外线接收器输出的一帧遥控码波形图
24
东华理工大学长江学院毕业设计(论文)
3.5 系统软件流程图
本节内容主要讲述主程序以及各个子程序、中断程序的实现方法和控制算法。为了便于程序分析,以及系统的调试、键按以及软件移植和修改,系统软件采用了结构化模块设计。主程序主要完成初始化工作,设定小车的初始运行状态,最后循环调用键盘扫描程序。中断程序主要是小车接收模块键盘扫描中断。子程序主要包括键盘扫描子程序、红外发射与接收子程序等。
遥控器主程序流程图与键盘扫描子程序流程图如下图所示: 3.5.1小车发射板主程序流程图
主程序开始首先进行初始化工作,设定小车的初始运行状态,最后循环调用键盘扫描程序。如图3-4所示。
开始 初始化 调用键盘子程序 图3-4 单片机发射板主程序
3.5.2小车发射子程序流程图
当开始工作时,初始化,首先判断前进或者后退键是否按下,当有按下时,先判断是前进还是后退,然后开始判断左转或者右转是否按下,当按下时,执行左转后者右转,再判断什么时候取消按键,当取消按键时,给小车一个复位信号,让它执行原来的动作,途中,如果前进或者后退键被取消了,则立刻停止转动,并给予小车一个停止命令。
当前进和后退都没按下时,扫描自动驾驶键,当按下,则给小车自动驾驶命令,否则循环键盘扫描。
25
东华理工大学长江学院毕业设计(论文)
Y P1.2=0? 发7个脉冲(转弯复位) N N Y P1.3=0? 键盘扫描程序 发2个Y 脉冲(前进) 发4个脉冲(左转) Y P1.2=0? N 发5个脉冲(右转) Y P1.3=0? N P1.0=0? N Y P1.0=0? N Y 发7个脉冲(转弯复位) N N Y P1.3=0? P1.2=0? P1.1=0? N 发3个脉冲(后Y 退) 发4个脉冲(左转) Y P1.2=0? N 发5个脉冲(右转) Y P1.3=0? N P1.1=0? Y 发8个脉冲(停止) N P1.4=0? N Y 发6个脉冲(自动) 返 回 图3-5遥控小车发射子程序流程图
26
东华理工大学长江学院毕业设计(论文)
3.5.3小车接收板主程序流程图
主程序开始首先进行初始化工作,设定小车的初始状态,然后对00H标志位进行判定,当00H=0时,程序返回继续对00H进行判定,不断循环。当判定00H=1时,则进入自动驾驶子程序。
开始 初始化 00H=0? N 自动驾驶子程序 Y 图3-6遥控小车接收板主程序
27
东华理工大学长江学院毕业设计(论文)
3.5.4小车自动驾驶子程序流程图
开始工作时,初始化,首先判断前方是否有障碍,若有,则执行倒退并左转,然后判断后方是否有障碍,若有,则返回判断前方是否有障碍循环判断,若无则保持前进状态,期间如果标志位00H为1就返回,退出自动驾驶。
自动驾驶子程序 N P3.0=0? (前障碍) Y 倒退并转弯 N 前进状态 00H=0? Y 00H=0? N Y P3.0=0? (后障碍) N 00H=0? N Y Y 返回 图3-7自动驾驶子流程图
28
东华理工大学长江学院毕业设计(论文)
3.5.5小车中断接收流程图
当小车接收到中断信号时,首先判定第一位低电平脉宽是否大于2ms,如果否,则是干扰,中断退出,程序返回。如果是,则接收该信号,并且对低电平脉冲进行计数,并且判断间隔的高电平脉宽是否大于3ms,如果小于,则说明接收还没结束,返回上一层继续对低电平脉冲进行计数。如果大于3ms,则根据之前计到的脉冲数执行相应的功能,如接收到2个脉冲,则执行前进程序,接收到3个脉冲,则执行后退程序等等,之后中断退出,程序返回。
中断开始 N 低电平脉宽>2ms Y 接收并对低电平脉冲计数 高电平脉宽>3ms? Y 按脉冲个数至对应功能程序 N 中断返回 3-8遥控小车中断接收程序流程图
29
东华理工大学长江学院毕业设计(论文)
结 论
本文 采用双单片机AT89C2051 作为系统控制单元, 辅以适当的软、 硬件资源完成以单片机为核心的红外遥控系统设计 , 实现红外远程遥控。 采用单片机设计的红外遥控系统发挥 了软件的优点, 简化了电路,降低了成本, 提高了可靠性, 且易于维护、 功能可扩展性好。 系统具有电路简单 、 功能强大、 适用范围广等特点, 具有广泛的应用前景 。
经过三个多月时间的毕业设计锻炼,我觉得自己对单片机知识的掌握又进了一层。对单片机硬件结构的研究和软件编程的兴趣增加不少。归纳起来,主要有以下几点:
1、有两年多的时间都是在学习单片机原理知识,并未真正地去应用和实践。平时但是经过这次毕业设计,我接触到了更多平时没有接触到的仪器设备、元器件发现了自己很多不足之处。我还体会到了所学理论知识的重要性:知识掌握得越多,设计得就更全面、更顺利、更好。
2、了解进行一项相对比较大型的科技设计所必不可少的几个阶段。毕业设计能够从理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的全面素质。我经过这次系统的毕业设计,熟悉了对一项课题进行研究、设计和实验的过程。这些在我们在将来的工作和学习当中都会有很大的帮助。
3、毕业设计对以前学过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。
4、毕业设计培养了严肃认真和实事求是的科学态度。而且培养了吃苦耐劳的精神以及相对应的工程意识,同学之间的友谊互助也充分的在毕业设计当中体现出来了。
在本次设计过程中,遇到了许多突发事件和各种困难,设计制作曾一度中断,但通过仔细分析和自我状态调整后解决了问题。在这个过程中我们深刻体会到共同协作和团队精神的重要性,提高了自己解决问题的能力。
30
东华理工大学长江学院毕业设计(论文)
致 谢
感谢东华理工大学这几年来对我的大力栽培。在这里我不仅学习到了很多知识,还学到了很多做人的道理,让我的人生观、世界观、价值观都有了较大的改变!深深的感谢母校!感谢时光飞逝,转眼大学生活即将划上一个句号,而我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持和帮助下,我收获良多,在论文即将完成之际,我谨向他们致以最诚挚的谢意。
本文是在肖静老师的悉心指导和帮助下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从论文选题、框架构思到最后的定稿无不凝结着导师的一片心血。肖静老师抽出她宝贵的时间来与我们共同讨论交流,不仅指导我如何做学问,而且还教导我如何做人,如何处事,师恩如海,我今后定会不断努力,永攀高峰。在此,我谨向尊敬的导师致以诚挚的谢意和崇高的敬意。同时我要也感谢我身边的同学们,他们和我一起讨论一起解决了许多问题,并给我鼓励和支持,有了他们的帮助使我能更加顺利地完成我的论文。
经过了几个月的时间,我终于完成了毕业设计,有一种苦尽甘来,豁然开朗的感觉。回顾大学四年学习和生活上的点点滴滴,我心中充满了感激与怀念,感谢母校!在今后的日子里,我将以最好的姿态,最大的努力去迎接新的挑战。
最后感谢我的母校东华理四年来给予我帮组的同学老师,和各位领导,我会用我最大的努力回报社会,回报母校!
31
东华理工大学长江学院毕业设计(论文)
参考文献
[1] 张培仁. MCS-51单片机原理及应用. 北京: 清华大学出版社, 1998:15-36 [2] 张洪润. 传感技术与应用. 北京: 清华大学出版社, 2000:111-135 [3] 阎石. 数字电子技术基础. 北京: 高等教育出版社, 1997:124-139
[4] 童诗白,华成英. 模拟电子技术基础. 北京: 高等教育出版社, 2000:163-177 [5] 常健生. 检测与转换技术. 北京: 机械工业出版社, 2004:34-43 73-97 [6] 何立民. 单片机应用技术选编. 北京: 北京航空航天大学出版社, 2001 [7] 张伟,王力. Protel DXP入门与提高. 北京: 人民邮电出版社, 2004 [8] 宋家友. 集成电子电路设计手册. 福建:福建科学技术出版社,2002
[9] 何希才. 新型电子电路应用实例. 北京:科学出版社,2005
[10] 李朝清.单片机原理及接口技术.北京航空航天大学出版社,1996.8
[11] Effects of Update Techniques on main MemoryDatabase System Performance [12] Client-server Arehitercture for Accessing Multimedia Andgeographic Databases Within Embedded System [13] INTEGRATED CIRCUITS DATA HANDBOOK 80C51-based 8-bit microcontrollers PHILIPS,1992 [14] Michael Lawrence Smith, Sensors,plaice Control and Fuzzy Logic,IEEE Trans,on Industry Application.1994. [15] DSP Selection Guide:Digital Signal Processor、System Solmions、Development Tools[M],2003
32
东华理工大学长江学院毕业设计(论文)
附录1 程序清单
************************************* ; * * ; * 遥控编码控制器 * ; * * ; * 采用89C2051 * ; ************************************* ;
; P1.0口按纽为前进,P1.1口按纽为后退,P1.2口按纽为左转弯,P1.3口按纽为右转弯,
; P1.4口按纽为自动驾驶,P3.5为编码输出 ;
;************************************* ;* * ;* 主程序和中断程序入口 * ;* * ;************************************* ORG 0000H ;程序执行开始地址 LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址 RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址 RETI ;中断返回(不开中断) ORG 0013H ;外中断1中断入口地址 RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址 RETI ;中断返回(不开中断) ORG 0023H ;串行口中断入口地址 RETI ;中断返回(不开中断)
ORG 002BH ;定时器T2中断入口地址 RETI ;中断返回(不开中断) ;
;************************************* ;* * ;* 初始化程序中的各变量 * ;* * ;*************************************
33
东华理工大学长江学院毕业设计(论文)
CLEARMEMIO: CLR A ;清A DEC A ;A为#0FFH MOV P1,A ; P1口置1
MOV P3,A ; P3口置1 MOV IE,#00H ;关所有中断 RET ;子程序返回 ; ; ;
;************************************* ;* * ;* 主 程 序 * ;* * ;*************************************
START: LCALL CLEARMEMIO ;调用初始化 ; 主体程序
MAIN: LCALL KEYWORK ;调用查键子程序 LJMP MAIN ;转MAIN循环 NOP ;PC值出错处理 NOP NOP
LJMP START ;转START重新启动 ;
;************************** ;* * ;* 键盘工作子程序 * ;**************************
KEYWORK: MOV P1,#0FFH ;置输入状态
JNB P1.0,KEY0 ; 读P1.0口,为0转KEY0 JNB P1.1,KEY1 ; 读P1.1口,为0转KEY1 JNB P1.4,KEY4 ; 读P1.4口,为0转KEY4 KEYOUT: RET ;没键按下,退出 ;
KEY0: LCALL DL10MS ;延时10毫秒消抖 JB P1.0,KEYOUT ;干扰,退出 LJMP KEYFUN00 ;转KEYFUN00 KEY1: LCALL DL10MS ;
34
东华理工大学长江学院毕业设计(论文)
JB P1.1,KEYOUT ; 干扰,退出 LJMP KEYFUN01 ; 转KEYFUN01
KEY2: LCALL DL10MS ; 延时10毫秒消抖 JB P1.2,KEYOUT ; 干扰,退出 LJMP KEYFUN02 ; 转KEYFUN02
KEY3: LCALL DL10MS ; 延时10毫秒消抖 JB P1.3,KEYOUT ; 干扰,退出 LJMP KEYFUN03 ; 转KEYFUN03
KEY4: LJMP KEYWORK1: ;
KEYFUN00: WAIT0: ;
KEYFUN01: WAIT1: ;
KEYFUN02: 回
LCALL DL10MS ; 延时10毫秒消抖 JB P1.4,KEYOUT ; 干扰,退出 KEYFUN04 ; 转KEYFUN04
JNB P1.2,KEY2 ;P1.2口为0转KEY2 JNB P1.3,KEY3 ; P1.3口为0转KEY3 LCALL KEYFUN05 ;调转弯复位子程序 RET ;返回 MOV A,#02H ;发2个脉冲赋值 LCALL REMOTE ;发射2个脉冲(前进) LCALL KEYWORK1 ;调一次转弯查键子程序 JNB P1.0,WAIT0 ;等待按键释放
LCALL KEYFUN06 ;释放时发8个脉冲(停止) RET ;返回 MOV A,#03H ;发3个脉冲赋值 LCALL REMOTE ;发射3个脉冲(前进) LCALL KEYWORK1 ;调一次转弯查键子程序 JNB P1.1,WAIT1 ;等待按键释放
LCALL KEYFUN06 ;释放时发8个脉冲(停止) RET ; MOV A,#04H ;发4个脉冲赋值 LCALL REMOTE ;发射4个脉冲(左转) JNB P1.2,KEYOUT1 ;键按下不放,转KEYOUT1返LCALL DL10MS ;左转键放开,延时10毫秒 JNB P1.2,KEYOUT1 ;为0(干扰),转KEYOUT1
35
东华理工大学长江学院毕业设计(论文)
返回
LCALL KEYFUN05 ;左转键放开发7个脉冲(转弯复位)
RET ;返回 ;
KEYFUN03: MOV A,#05H ;发5个脉冲赋值 LCALL REMOTE ;发射5个脉冲(右转) JNB P1.3,KEYOUT1 ;键按下不放,转KEYOUT1返回
LCALL DL10MS ;右转键放开,延时10毫秒 JNB P1.3,KEYOUT1 ;为0(干扰),转KEYOUT1返回
LCALL KEYFUN05 ;右转键放开发7个脉冲(转弯复位)
RET ;返回
KEYOUT1: LJMP KEYOUT ;跳至KEYOUT返回 ;
KEYFUN04: JNB P1.4,KEYFUN04 ;等待按键释放 LCALL DL10MS ;延时消抖动
JNB P1.4,KEYFUN04 ;P1.4为0,系干扰,转KEYFUN04再等待
MOV A,#06H ;按键释放,发6个脉冲(进入自动驾驶)
LCALL REMOTE ;发射一次 RET ;返回 ;
KEYFUN05: MOV A,#07H ;发7个脉冲程序(转弯复位) LCALL REMOTE ;发射一次 RET ;返回
KEYFUN06: MOV A,#08H ;发8个脉冲程序(停车) LCALL REMOTE ;发射一次 RET ;返回 ; ;
;************************************* ;* *
36
东华理工大学长江学院毕业设计(论文)
;* 编码发送程序 * ;* * ;************************************* ;按A中数值发射脉冲
REMOTE: MOV R1,A ;发射脉数入A LJMP OUT3 ;第一个脉冲处理 OUT: MOV R0,#55H ;1MS脉宽定时值 OUT1: CLR P3.5 ;发低电平脉宽
NOP NOP NOP NOP NOP NOP NOP NOP NOP
DJNZ MOV OUT2: SETB NOP NOP NOP NOP NOP NOP NOP NOP NOP
DJNZ DJNZ LCALL RET OUT3: MOV LJMP ; ; ;
;延时循环(周期约为21微秒) R0,OUT1 ;定时时间未到,转OUT1循环 R0,#55H ;1MS脉宽定时值 P3.5 ;发高电平脉宽
;延时循环(周期约为21微秒) R0,OUT2 ;定时时间未到,转OUT2循环R1,OUT ;脉冲数未发完转OUT再循环 DL10MS ;脉冲发完延时10毫秒 ;返回
R0,#0FFH ;3MS脉宽定时值 OUT1 ;转OUT1红外线发射 37
东华理工大学长江学院毕业设计(论文)
;************************************* ;* * ;* 延时 255 X 2 = 512 us * ;* * ;************************************* DELAY: MOV R2,#0FFH DELAY1: DJNZ R2,DELAY1 RET ;
;************************************* ;* * ;* 延时10ms程序 * ;* (消按键抖动用) * ;************************************* DL10MS: MOV R3,#14H DL10MS1: LCALL DELAY DJNZ R3,DL10MS1 RET
DL500MS: MOV R4,#32H DL500MS1: LCALL DL10MS DJNZ R4,DL500MS1 RET ; ;
END ;程序结束
; ************************************* ; * * ; * 遥 控 接 收 解 码 * ; * 采用AT89C2051 * ; * * ; ************************************* ;
; P1.0-P1.1为电机前后驱动,P1.2-P1.3为左右转弯驱动,P1.4为自动驾驶指示, ; 编码输入从P3.1和p3.2(int0)口,P3.0和P3.5分别为前后红外线探头,在自动
; 驾驶时以控制小汔车前进倒退。
;************************************* ;* * ;* 主程序和中断程序入口 *
38
东华理工大学长江学院毕业设计(论文)
;* * ;************************************* ORG 0000H ;程序执行开始地址 LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址 LJMP INTEX0 ;跳至INTEX0中断服务程序 ORG 000BH ;定时器T0中断入口地址 RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址 RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址 RETI ;中断返回(不开中断) ORG 0023H ;串行口中断入口地址 RETI ;中断返回(不开中断)
ORG 002BH ;定时器T2中断入口地址 RETI ;中断返回(不开中断) ;
;*************************** ;* * ;* 初始化程序 * ;* * ;****************************
CLEARMEMIO: CLR A ;清A MOV P1,A ;P1口置0 DEC A ;A为#0FFH MOV P3,A ;P3口置1 SETB P1.4 ;关自动驾驶指示灯 CLR 00H ;自动驾驶标志位清0 CLEARMEM: MOV IE,#00H ;关所有中断 SETB EX0 ;开外中断 SETB EA ;开总中断允许 RET ;返回 ;
;************************************* ;* * ;* 主 程 序 * ;* *
39
东华理工大学长江学院毕业设计(论文)
;*************************************
START: LCALL CLEARMEMIO ;上电初始化
MAIN: JB 00H,AUTO2 ;00H位标志为1转自动驾驶 LJMP MAIN ;主程序循环 NOP ;PC值出错处理 NOP
LJMP START ;重新上电启动
AUTO2: LJMP AUTO ;至自动驾驶程序 ;****************************** ; ; ; 中断接收程序 ; ; ; ;******************************
INTEX0: CLR EX0 ;关中断
JNB P3.1,READ1 ;P3.1为0转READ1 READOUTT0: SETB EX0 ;干扰,中断退出 RETI ;中断返回 ;
READ1: CLR A ;清A MOV DPH,A ;清DPTR MOV DPL,A ;
HARD1: JB P3.1,HARD11 ;P3.1为高电平时转HARD11 INC DPTR ;低电平脉冲宽度时间计数 NOP ;空操作延时 NOP
AJMP HARD1 ;跳回循环(周期约为8微秒) HARD11: MOV A,DPH ;取DPTR高8位计数值 JZ READOUTT0 ;若为0,则脉宽不足3毫秒退出中断
CLR A ;脉宽大于2MS,是第一个肪冲 READ11: INC A ;脉冲计数加1 READ12: JNB P3.1,READ12 ;低电平等待, MOV R1,#06H ;高电平脉宽判断用
READ13: JNB P3.1,READ11 ;低电平转READ11(脉冲计数) LCALL DELAY ;延时512微秒
DJNZ R1,READ13 ;高电平脉宽小于3MS,转READ13循环
40
东华理工大学长江学院毕业设计(论文)
DEC A ;高电平脉宽大于3MS,计数结束,A减1
DEC A ;再减1
JZ FUN0 ;收到2个肪冲,执行前进功能 DEC A
JZ FUN1 ;收到3个肪冲,执行后退功能 DEC A
JZ FUN2 ;收到4个肪冲,执行左转功能 FUN0: FUN1: FUN2: FUN3: FUN4: AUTO1: DEC A
JZ FUN3 ;收到5个肪冲,执行右转功能 DEC A
JZ FUN4 ;收到6个肪冲,执行自动驾驶功能 DEC A
JZ FUN5 ;收到7个肪冲,执行转弯复位功能 DEC A
JZ FUN6 ;收到8个肪冲,执行停车功能 NOP ;出错处理 NOP ; LJMP READOUTT0 ;退出 SETB P1.0 ;前进状态 LJMP READOUTT0 ; SETB P1.1 ;后退状态 LJMP READOUTT0 ; SETB P1.2 ;左转弯状态 LJMP READOUTT0 ; SETB P1.3 ;右转弯状态 LJMP READOUTT0 ;
CPL 00H ;自动驾驶标志取反 JB 00H,AUTO1 ;00H=1进入自动驾驶
CLR P1.0 ;00H=0时进入遥控驾驶,停车操作 CLR P1.1 ;停车操作 CLR P1.2 ;停车操作 CLR P1.3 ;停车操作 SETB P1.4 ;关自动驾驶灯 LJMP READOUTT0 ;中断退出
CLR P1.4 ;进入自动驾驶,开自动驾驶指示灯 SETB EX0 ;开中断
41
东华理工大学长江学院毕业设计(论文)
RETI ;中断返回
AUTO: JNB P3.0,BL ;自动驾驶控制程序,前有障碍转BL
SETB P1.0 ;前面无障碍,前进状态 CLR P1.1 ;前面无障碍,前进状态 CLR P1.2 ;前面无障碍,前进状态 CLR P1.3 ;前面无障碍,前进状态 JNB 00H,OUT1 ;标志为0转OUT1(转遥控) AJMP AUTO ;为1转AUTO循环 BL: CLR P1.0 ;前面有障碍,后退并左转处理 SETB P1.1 ;置后退状态 SETB P1.2 ;左转状态 CLR P1.3 ;
JNB 00H,OUT1 ;标志为0转OUT1(转遥控) JNB P3.5,AUTO ;后面有障碍物转AUTO(前进处理)
AJMP BL ;后无障碍转BL继续后退循环 OUT1: CLR P1.0 ;自动驾驶退出程序,关闭驱动及转向电机
CLR P1.1 ; CLR P1.2 ; CLR P1.3 ;
SETB P1.4 ;关自动驾驶指示灯 LJMP MAIN ;转回主程序 FUN5: CLR P1.2 ;转弯停止程序 CLR P1.3 ;
LJMP READOUTT0 ;退出中断
FUN6: CLR P1.0 ;遥控停车程序,关闭驱动及转向电机
CLR P1.1 ; CLR P1.2 ; CLR P1.3 ;
LJMP READOUTT0 ;中断退出
;************************************* ;* * ;* 延时程序( 255 X 2 = 513 us) *
42
东华理工大学长江学院毕业设计(论文)
;* * ;*************************************
DELAY: MOV R0,#0FFH ; DELAY1: DJNZ R0,DELAY1 ; RET ; ; ;
END ;程序结束
43
正在阅读:
基于单片机的遥控小车控制03-21
预应力管桩使用必须注意的一些问题07-03
从中国古代监察制度看当前反腐工作305-15
proe5.0 安装说明方法05-12
信贷、财会业务知识竞赛题库04-04
华图数量关系讲义整理-很有用03-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单片机
- 小车
- 遥控
- 基于
- 控制
- 接触网接地线管理办法
- 皮安表使用说明书6487C-900-01(B- Jan 2003)(Users)
- 逻辑学 习题参考答案
- 关于加强“中秋节”、“国庆节”期间安全生产工作的通知
- 2013上半年学前心理学第3阶段测试题
- C语言程序设计期末考试试题(含答案)
- 食品加工卫生控制第2阶段测试题
- “信息检索”课实践题(全部)
- 极度恐惧怎么办
- 最新精选2019高中数学单元测试《平面解析几何初步》完整题(含答
- 维加斯隧道交易方法
- 爱情有关的英文句子
- PEP-人版小学四年级英语(上册)各单元测试题
- 火灾自动报警及消防联动系统施工方案
- 劳动部关于《中华人民共和国劳动法》的若干问题解释
- 2018-2019学年最新数学高考一轮复习(文科)训练题:天天
- 2012级专科第二学期《经济应用写作》复习题
- 地方门户网站策划与运营d - 图文
- DSP控制技术思考题与习题
- 安顺云峰本寨经济状况及发展模式(自动保存的)