遥控小车控制系统的设计说明

上传人:无*** 文档编号:100489865 上传时间:2022-06-02 格式:DOC 页数:41 大小:388.50KB
返回 下载 相关 举报
遥控小车控制系统的设计说明_第1页
第1页 / 共41页
遥控小车控制系统的设计说明_第2页
第2页 / 共41页
遥控小车控制系统的设计说明_第3页
第3页 / 共41页
点击查看更多>>
资源描述
.本科毕业设计遥控小车控制系统的设计摘 要智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能电动车就是其中的一个体现。智能遥控技术是指实现对被控目标的遥远控制,在工业控制、航空航天、家电领域应用广泛。而红外遥控也是一种无线、非接触控制技术,但是由于它具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,因此被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。本文介绍了基于红外遥控技术的遥控小车控制系统,以STC89C52RC单片机为核心,利用红外遥控器来控制小车的运行方向和速度。系统的硬件部分主要由单片机最小系统模块、红外发射端的独立式键盘电路、红外发射电路、红外接收端的红外接收电路、控制电路等组成。软件部分使用C语言编程,由红外发射端的主程序、键盘扫描子程序、红外编码子程序、红外接收端的主程序、红外解码子程序、小车控制子程序等组成。当独立式键盘有按键按下时,单片机扫描并确认是哪一个键按下,并将键对应的操作编码后通过红外发射电路发射出去,红外接收电路接收到操作码后,单片机对其进行解码,并将码对应的操作交予控制电路,电机、指示灯开始工作,从而实现对小车的控制。关键词:STC89C52RC单片机 红外发射 红外接收Design of the Control System of Remote Control CarChen Youchao(College of Engineering,South China Agricultural University,Guangzhou 510642,China)Abstract:The intelligent is a direction of developing in the future that as a new modern invent. It can follow the automatic operation in an environment with the pre-set pattern, management without anybody; also can be applied to the use of scientific expiration. Intelligent car is one reflect of its features. Intelligent remote control technology means charged with the target remote control, it widely used in industrial control, aerospace, home appliances field. However the infrared remote control is also a wireless, non-contact control technology, but it has a strong anti-interference ability, reliable information transmission, low power consumption, cheaper easy to implement and other significant advantages. So it widely used in many electronic devices which especially household appliances and more and more applications used into the computer system.This paper introduces the remote control car control system based on infrared remote control technology, with STC89C52RC single-chip microcomputer as the core, the use of infrared remote control to control the direction and speed of the car. The hardware part of the system is mainly composed of single chip microcomputer minimum system module, infrared launch the independent type keyboard circuit, infrared emission circuit, infrared, infrared receiving circuit, control circuit at the receiving end, etc. Used C language programming software part, the infrared emission is the main program, keyboard scanning subroutine, the infrared coding subroutine, ir main program at the receiving end, the infrared decoding subroutine, the car control subroutine, etc. When independent type keyboard has a key press, single chip microcomputer scan and confirm which keys are pressed, and the key corresponding to the coding operation after launch out by infrared emission circuit, infrared receiving circuit to receive after the operation code, single chip microcomputer to decode, and code corresponding operation to control circuits, motors, lights began to work, so as to realize the control of the car.Keyword:STC89C52RC single-chip microcomputerinfrared emissioninfrared receive35 / 41目 录1 前言11.1 设计背景11.2 设计容与意义11.3 单片机概述11.4 红外技术概述21.4.1 红外简介21.4.2 红外遥控22 方案确定与原理分析32.1 设计原理32.2 红外发射端原理32.3 红外接收端原理33 系统设计43.1 单片机最小系统设计43.1.1 STC89C52RC单片机简介43.1.2时钟电路设计63.1.3复位电路设计63.1.4 稳压电路设计73.2 红外发射端设计83.2.1 独立式键盘电路设计83.2.2 红外发射电路设计83.3 红外接收端设计93.3.1 红外接收芯片介绍93.3.2 红外接收电路设计103.3.3 电机驱动芯片介绍103.3.4 电机驱动电路设计113.3.5 指示灯电路设计123.4软件设计123.4.1红外编码介绍133.4.2 红外发射端软件设计143.4.3 红外接收端软件设计154 系统测试174.1 硬件测试174.2 软件测试175 结语18参考文献19附录A 电路原理图20附录B 主要程序代码21致36华南农业大学本科生毕业设计成绩评定表1 前言1.1 设计背景遥控小车是上世纪提出的一种新型小车,是一种智能小车。从小的方面说,遥控小车可以开发幼儿的智力,提高小孩子左右手的协调能力;从大的方面来说,遥控小汽车可以在军事侦察、反恐、防污染等各种高污染高危险的环境代替人的工作,因此它有广阔的应用前景。而且,遥控小车具有成本低,体积小,以与生存能力强等特点。本设计基于单片机控制和无线数据传输技术的设计思想。目前单片机已经渗透到我们生活中的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机网络通信与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以与程序控制玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以与各种智能机械了。无线数据传输技术也迅猛发展并已被广泛应用在各个领域, 如:无线RS485、无线PLC, 电力线无线报警, 工业遥控、遥测, 石油钻井力无线监测, 安防设备无线监控等。1.2 设计容与意义本设计基于单片机控制和无线数据传输技术的设计思想,以STC89C52RC单片机为核心来控制小车,利用红外线遥控器来控制小车的运行方向(前进、后退、左转、右转)和速度(加速、减速)。共分为两个模块,红外接收模块和红外发射模块。红外接收模块主要由单片机最小系统、红外接收电路、控制电路组成;红外发射模块主要有单片机最小系统、红外发送电路、独立式键盘电路组成。通过此课题的研究学习,可以将单片机课程所学的知识应用到实际中,了解单片机的控制方法与无线数据传输技术的运用。此外,通过本次设计,更可以提高自己的动手能力,积累实践的经验。1.3 单片机概述单片机又称为“微控制器MCU”,是把中央处理器CPU(Central Processing Unit)、存储器(Memory)、定时器(Timer)、I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。中文“单片机”是由英文“Single Chip Microcomputer”直接翻译而来的。(王卫星,2009)单片机主要特点如下:(1)集成度高、体积小、可靠性高。单片机把各功能部件集成在一块芯片上,部采用总线结构,减少了各芯片之间的连线,许多信号的通道均在一个芯片,大大提高了单片机的可靠性与抗干扰能力。另外,由于其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。系统软件(如:程序指令、常数、表格)固化在ROM中,不易受病毒破坏,故运作时系统稳定可靠。(2)控制能力强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以与位处理功能。(3)便于扩展。单片机片具有计算机正常运行所必需的部件,片外有很多供扩展用的管脚(总线,并行和串行的输入/输出),很容易组成一定规模的计算机应用系统。外部总线增加了I2C(Inter-Integrated Circuit)与SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。(4)功能强,有着丰富的置资源。(5)实用性好。低功耗、低电压,便于生产便携式产品。1.4 红外技术概述1.4.1 红外简介从光学的角度而言,红外是频率低于红色光的不可见光,在无线光谱的整个频率中占有很小一个频率段,波长为0.75100微秒之间,其中0.753微秒之间的红外光称为近红外,330微秒之间的红外光称为中红外,30100微秒之间的称为远红外。红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。(湘闽,唐宏,继,2004)当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性。(洪明,2000)1.4.2 红外遥控无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。由于无线电容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以与声控式识别正确率低,难度大而未能大量采用。红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。另外,红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以现在很多无线遥控方式都采用红外遥控方式。(戴峻峰,付丽辉,2002)2 方案确定与原理分析2.1 设计原理目前市场上一般采用的遥控编码与解码集成电路。此方案具有制作简单、容易等特点,但由于功能键数与功能受到特定的限制,只适合用某一专用电器产品的应用,应用围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点。(光飞,楼然苗,胡佳文等,2004)本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。当我们按下某一个按键的时候,由单片机识别出该按键后,由CPU向接有红外发射管的端口发射一定频率的脉冲,该脉冲与38KHz左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线,当接收控制系统接收到该红外光后,由单片机定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能,完成整个遥控功能。(恢先,王子菡,穗等,2004)2.2 红外发射端原理红外遥控发射端主要由单片机、单片机最小系统(包括时钟电路、复位电路)、电源、独立式键盘以与红外发射电路等组成。当独立式键盘有按键按下时,发射端单片机扫描并确认是哪一个键按下,并将键对应的操作编码后通过红外发射电路发射出去,这样便完成了一次红外数据的发射。其原理图如图1所示。2.3 红外接收端原理红外遥控接收端主要有单片机、单片机最小系统(包括时钟电路、复位电路)、电源、红外接收电路以与控制电路(包括电机驱动电路、指示灯电路)等组成。红外接收模块接收到红外数据后,接收端单片机对红外数据进行解码,并将码对应的操作交予控制电路,电机、指示灯开始工作,从而实现对小车的控制。其原理图如图2所示。图1 红外发射端原理框图图2 红外接收端原理框图3 系统设计3.1 单片机最小系统设计单片机最小系统通常由单片机、时钟电路、复位电路、电源以与扩展部分组成。3.1.1 STC89C52RC单片机简介STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,主要特性如下:(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。(2)工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)。(3)工作频率围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz。(4)用户应用程序空间为8K字节。(5)片上集成512字节RAM。(6) 通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉, P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。(8) 具有EEPROM功能。(9)具有看门狗功能。(10) 共3个16位定时器/计数器。即定时器T0、T1、T2。(11)外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。(12) 通用异步串行口(UART),还可用定时器软件实现多个UART。(13)工作温度围:-40+85(工业级)/075(商业级)。(14) PDIP 封装。图3 STC89C52RC单片机引脚图3.1.2 时钟电路设计时钟电路用于产生单片机工作所需要的时钟信号。在STC89C52RC单片机芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2.而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,再利用芯片不得振荡电路形成反馈电路,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。时钟电路产生的振荡脉冲经过单片机部的触发器进行二分频以后,才成为单片机的时钟脉冲信号。一般的,电容C1和C2取30pF左右,晶体的振荡频率围是024MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行的速度也就快。STC89C52RC单片机在通常应用情况下,使用的振荡频率为6MHz或12MHz。时钟信号可以有两种方式产生:部时钟方式和外部时钟方式。一般情况下,单片机时钟输入均采用部时钟方式,外接一个振荡电路,本系统采用部时钟方式,其电路如图4所示。图4 时钟振荡电路3.1.3 复位电路设计复位是单片机的一个很重要的操作方式。但是,单片机本身是不能自动进行复位的,必须配合相应的外部电路才能产生复位信号,实现复位操作。复位操作有上电复位和按键复位。(1)上电复位:STC89系列单片与为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。本系统采用按键复位方式,其电路如图5所示。图5 复位电路3.1.4 稳压电路设计考虑到本设计使用的直流电机的工作电压为+12V,而单片机的工作电压为+5V,因此,要为电源设计一个电路使得从+12V电压中分出一个+5V电压提供单片机工作。这样就使得不仅可以单片机正常工作同时直流电机也能够正常使用。经过对电路的整体探究决定基于一个稳压管来设计电源电路。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少电路部还有过流、过热与调整管的保护电路使用起来可靠、方便而且价格便宜。最后决定选用7805稳压管来设计一个稳压电路,其电路如图6所示。图6 7805稳压电路3.2 红外发射端设计红外发射端主要由单片机最小系统、独立式键盘电路、红外发射电路组成。3.2.1 独立式键盘电路设计独立式键盘是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,主要特点是结构简单,易于设计。本设计的独立式键盘由8个独立按键组成,每个按键对应一个独立的操作,即每个按键控制小车的一个状态,其电路如图7所示。当键K1被按下时,对应的操作为“左转”,小车左转、左转灯亮;当键K2被按下时,对应的操作为“前进”,小车前进;当键K3被按下时,对应的操作为“后退”,小车后退;当键K4被按下时,对应的操作为“右转”,小车右转;当键K5被按下时,对应的操作为“停止”,小车停止;当键K6被按下时,对应的操作为“加速”,小车加速;当键K7被按下时,对应的操作为“减速”,小车减速;当键K8被按下时,对应的操作为“前灯”,小车前灯亮。图7 独立式键盘电路3.2.2 红外发射电路设计根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以在硬件设计上,本设计采用38KHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上。红外发送电路单片机发送控制电路和红外发送管驱动输出电路组成,当单片机P1.7口输出为“0”时,发射管不发光,当单片机P1.7口输出为“1”时,红外发送管发出38KHz调制红外线。其电路如图8所示。图8 红外发射电路3.3 红外接收端设计红外接收端主要由单片机最小系统、红外接收电路、电机驱动电路与指示灯电路组成。3.3.1 红外接收芯片介绍SM0038(实物图如图9所示)是一个小型的红外遥控接收器件电路置P/N二极管和前置放大器,采用可红外滤波的环氧树能材料封装。SM0038的解调输出信号可以直接由微处理器解码,本电路的主要特点是可靠性好,不易受环境干扰,并可以防止非控制信号的输出脉冲出现。它的主要特点是置光电检测器和前置放大器,置PCM频率滤波器,置防电场干扰设计,输出电平与TLL和CMOS兼容,输出低电平有效,低功率消耗,不受环境光源干扰,可以连续进行数据发送1200bit/s,输入脉冲串长度=10周期/脉冲串。SM0038红外接收头作为红外接收电路的核心部门,是一种一体化红外接收头。红外接收电路通常被厂家集成在一个元件中成为一体化红外接收头。部电路包括红外监测二极管、放大器、限副器、带通滤波器、积分电路、比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30KHz到60KHz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。红外接收头的种类很多,引脚定义也不一样,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。红外接收头部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。 图9 SM0038红外接收头SM0038电路置带通滤波器、积分器和自动增益控制电路,以抑制各种干扰和噪声,避免产生不希望的非控制脉冲信号输出。数据信号和干扰信号的区别体现在载波频率、脉冲长度、工作周期上。数据信号应满足以下条件:(1)载波频率应尽量接近带通滤波器中心频率;(2)脉冲长度应有300us以上;(3)对于脉冲长度在300us1.8ms的脉冲,脉冲间隙应不小于400us;(4)对于脉冲长度在1.8ms以上的脉冲,脉冲间隙应在脉冲长度的1.3倍以上;(5)每秒钟最多可接受1000个短脉冲信号。3.3.2 红外接收电路设计红外接收电路专门采用集成电路SM0038,SM0038有三个引脚,一个接电源一个接地,另外一个接信号端,它集光电转换,解调和放大于一体。当收到38KHz调制红外线时,SM0038输出为“0”,平时输出为“1”。信号脚接到P3.2脚上,当SM0038收到第一个红外脉冲时,触发INT0产生中断,使单片机退出低功耗状态,进入工作状态,同时使计数器0和定时器1开始工作。其电路如图10所示。3.3.3 电机驱动芯片介绍无刷直流电机一般是小型的电机,采用L298N(实物图如图11所示)驱动,它一般可以同时驱动两电机,如果担心驱动不够就可以采用两个L298N。其部原理是采用H桥式差动放大。L298N是SGS公司的产品,部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。图10 SM0038接收电路图11 L298N驱动芯片3.3.4 电机驱动电路设计L298N可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA、ENB接控制使能端,控制电机的停转。STC89C52RC输出二组PWM波每一组PWM波用来控制一个电机的速度。另外二个I/O口可以控制电机的正反转,控制方法与控制电路都比较简单。即P2.2、P2.3控制第一个电机的方向,输入的PWMl控制第一个电机的速度;P2.4、P2.5控制第二个电机的方向,输入的PWM2控制第二个电机的速度。由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用双电源供电。一组5V电源给单片机和控制电路供电,另外一组5V、12V电源给L298N的+VCC、+VS供电。在控制部分和电机驱动部分之间用光耦隔开,以免影响控制部分电源的品质。其电路如图12所示。3.3.5 指示灯电路设计小车的指示灯设计思想来源于实际生活。现实中,马路上的汽车左转或右转时,都被要求要开左转灯或右转灯以示意其行为。本设计的指示灯电路由四个LED等组成。当小车左转时,代表小车左转灯的一个红色LED灯亮,直到小车进入除左转外的其他状态,左转灯灭。当小车右转转时,代表小车右转灯的另一个红色LED灯亮,直到小车进入除右转外的其他状态,右转灯灭。无论小车在任何一个状态,可通过操作控制小车代表小车前灯的两个黄色LED灯的亮灭。其电路如图13所示。图12 L298N驱动电路图13 指示灯电路3.4 软件设计本设计的软件部分由红外发射端程序和红外接收端程序两个部分组成。红外发射端程序主要由主程序、键盘扫描子程序、红外编码子程序组成,红外接收端程序主要由主程序、红外解码子程序、小车控制子程序组成。3.4.1 红外编码介绍当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,其波形如图14所示。图14 遥控码的“0”和“1”上述“0”和“1”组成的32 位二进制码经38KHz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,SM0038所发射的一帧码含有一个引导码,16位的用户编码和8位的键数据码、键数据码的反码也同时被传送。引导码由一个9ms的载波波形和4.5ms的关断时间构成,它作为随后发射的码的引导,这样当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测与其它各项控制之间的时序关系。编码采脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分“0”和“1”。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。引导码之后,是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码相互干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)与其反码。SM0038最多可以有128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在58.576.5ms之间,输出波形如图15所示。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms 的编码脉冲,这108ms 发射代码由一个引导码(9ms),一个结果码(4.5ms),低8 位地址码(9ms18ms),高8 位地址码(9ms18ms),8位数据码(9ms18ms)和这8 位数据的反码(9ms18ms)组成。如果键按下超过108ms 仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。图15 发射电路输出波形3.4.2 红外发射端软件设计本部分软件主要由主程序、键盘扫描子程序、红外编码子程序组成。当键盘有按键按下时,单片机进入工作状态,键盘扫描子程序确认是哪一个键按下并查询键所对应的操作码,红外编码子程序对操作码进行编码后通过红外发射管发射出去。主程序流程图如图16所示。图16 红外发射端主程序流程图1.键盘扫描子程序当有按键按下时,程序进行消抖后再次确认是否有按键按下,如无,则继续等待按键按下,如有,程序扫描是哪个键按下并转换相应的键值。其流程图如图17所示。2.红外编码子程序程序先发射引导码,从数据缓存区取数据,根据数据位是否为“0”调用“0”发射模或“1”发射模,发射数据直到数据发射完。其流程图如图18所示。图17 按键扫描子程序流程图3.4.3 外接收端软件设计本部分软件主要由主程序、红外解码子程序、小车控制子程序组成。当红外接收端接收到红外数据时,单片机进入工作状态,红外解码子程序对红外数据进行解码,小车控制子程序根据码值对应的操作控制小车进入某一状态。主程序流程图如图19所示。1.红外解码子程序红外解码是红外编码的反编码。红外子程序先接收引导码,后接收32位二进制码,反编码出相应码值,再检测8位操作码取反是否与8位反码一致,若否,则此次接收失败,程序结束,若是,则确定码值。2.小车控制子程序小车控制子程序根据红外解码子程序解出的码值,查询码值所对应的的操作,控制单片机各I/O口,使小车进入相应状态。图18 红外编码子程序流程图N图19 红外接收端主程序流程图4 系统测试4.1 硬件测试系统的硬件测试主要是确定电路设计的可行性、电路焊接的正确性以与系统运行的稳定性。在系统的硬件测试中,首先是经过仿真软件绘制电路图进行仿真,验证系统电路设计的可行性,之后在万用板上焊接电路,焊接后检查电路是否正确,是否存在开路、短路等现象,再检查外围电路是否正确连接,经过这几个方面的反复验证,可确保电路板的准确无误。在本系统的调试过程中,出现过一下几个问题:(1)红外发射模块调试过程中,红外发射二极管有在工作但接收端接收不到信号,经过排查研究,可能原因是发射管的工作电压太低,在电路上增加一个三极管后发射管工作正常,接收端收到红外信号。(2)红外接收模块调试过程中,一开机指示灯便保持常亮、直流电机不工作,经过排查研究,发现是L298外围线路存在短路现象,排除故障之后指示灯正常,直流电机正常工作。4.2 软件测试系统的软件测试相对硬件测试来说更加麻烦,软件测试时可参考的资料不多,更多的是靠自己的想法并在测试过程中不断地摸索出正确的方法。而且在实际硬件电路上调试时如果出现故障时很难确定是硬件故障还是软件故障,所以更多的还是得依靠开发板进行调试。通过在Keil编译器下调试程序,有两种错误:一种逻辑错误,也就是语法错误,是很容易被发现的;另一种是功能错误,是指在没有语法错误的基础上,由于设计思想或算法的问题导致不能实现软件功能的一种错误。调试过程中出现的问题主要是功能上得错误:(1)红外发射模块实际调试过程中,红外发射管正常工作但是接收端收不到红外信号,经过排查研究,原因是定时器的初值设置出现问题,使得发射管发射的信号频率不是38KHz,调整定时器初值后接收端能收到发射端的红外信号。(2)红外接收模块仿真调试过程中,直流电机总是不工作,经过排查研究,原因是主程序中没有把直流电机子程序的调用语句放在合适的位置,把调用语句放在合适的位置后直流电机正常工作。(3)红外接收模块实际调试过程中,直流电机依然不工作,经过排查研究,原因是程序中把直流电机的复位状态设置为“速度为0”,所以在实际运行环境中如果没有先对直流电机进行加速使其速度不为0的话,是观察不到直流电机工作的。5 结语经过查阅资料、思考以与实践,终于完成了毕业设计。作品设计的过程中遇到了很多问题,几度修改方案,成果虽不是非常完美,但还是能比较满意。论文是边做实物设计边整理的,所以写起来还是相对顺利的。本文介绍了基于红外遥控技术的遥控小车控制系统,以STC89C52RC单片机为核心,利用红外遥控器来控制小车的运行方向和速度。系统的硬件部分主要由单片机最小系统模块、红外发射端的独立式键盘电路、红外发射电路、红外接收端的红外接收电路、控制电路等组成。硬件设计简单可靠,结合软件,实现了对小车的远程控制。在设计过程中,比以往更深刻的学习了关于单片机、无线数据传输技术的知识,不仅仅是知识的沉淀,还有在硬件、软件设计过程中得到加强的实践能力。相信这些能力的提升都会对我以后的职业生涯有很大的帮助。参 考 文 献戴峻峰,付丽辉.多功能红外线遥控器的设计J.传感器世界,2002,8(12):16-18洪明.漫谈红外遥控J.电子世界,2000,(1):53光飞,楼然苗,胡佳文等.单片机课程设计实例指导M.:航空航天,2004:168-170湘闽,唐宏,继.学习型红外遥控器J,2004,11(8):33-36王卫星.单片机原理与应用技术M.:中国水利水电,2009:1-21恢先,王子菡,穗等.一种基于单片机的红外遥控软件解码方法J.自动化与仪器仪表,2004,22(2):16-18附录A 电路原理图红外发射端电路图:红外接收端电路图:附录B 主要程序代码红外发射端程序:#include#include #define uint unsigned int#define uchar unsigned charbit irout; /红外管状态sbit ir = P17; /红外发射管控制脚uint count,set_count; /中断计数,设定中断次数bit flag,keyflag; /红外发送标志,按键标志位uchar irsys2 = 0x00,0xFF; /16位系统码uchar ircode,irdata;/*延时1ms函数*/void delay1ms(int ms) uchar y; while(ms-) for(y = 0; y 250; y+) _nop_(); _nop_(); _nop_(); _nop_(); /*按键扫描*/void keyscan(void) uchar keytemp; P2 = 0xff; keytemp = P2 & 0xff; if(keytemp != 0xff) delay1ms(20); keytemp = P2 & 0xff; if(keytemp != 0xff) keyflag = 1; /有按键标志 switch(keytemp) case 0xfe: irdata = 0x42;break; /按键1 case 0xfd: irdata = 0x5e;break; /按键2 case 0xfb: irdata = 0x0c;break; /按键3 case 0xf7: irdata = 0x4a;break; /按键4 case 0xef: irdata = 0x5a;break; /按键5 case 0xdf: irdata = 0x52;break; /按键6 case 0xbf: irdata = 0x18;break; /按键7 case 0x7f: irdata = 0x08;break; /按键8 /*发送8位红外数据*/void sendcode_8(void) uchar i; for(i = 0;i 8;i+) set_count = 28; /发送0.56ms 38K红外波 flag = 1; count = 0; TR0 = 1; while(count set_count); TR0 = 0; if(ircode&0x01) /判断红外编码最低位 set_count = 120; else set_count = 38; flag = 0; count = 0; TR0 = 1; while(count 1;/*发送红外数据*/void sendcode(void) set_count = 575; /发送9ms 38K红外光 flag = 1; count =0; TR0 = 1; while(count set_count); TR0 = 0; set_count = 320; /间隔4.5ms; flag = 0; count = 0; TR0 = 1; while(count set_count); TR0 = 0; ircode = irsys0; /发送16位系统码的前1-8位 sendcode_8(); ircode = irsys1; /发送16位系统码的前9-16位 sendcode_8(); ircode = irdata; /发送8位数据码 sendcode_8(); ircode = irdata; /发送8位数据反码 sendcode_8(); set_count = 575; flag = 1; count = 0; TR0 = 1; while(count set_count); TR0 = 0; set_count = 148; flag = 0; count = 0; TR0 = 1; while(count set_count); TR0 = 0; set_count = 28; flag = 1; count = 0; TR0 = 1; while(count set_count); TR0 = 0; flag = 0;/*定时器初始化*/void init_timer() EA = 1; TMOD = 0x02; /8位自动装载模式 ET0 = 1; TH0 = 0xE6; /定时13us的38K红外波,晶振24M TL0 = 0xE6;/*主函数*/void main(void) init_timer(); count = 0; flag = 0; irout = 0; while(1) keyscan(); if(keyflag) /若有新按键 delay1ms(10); sendcode(); /发送红外编码 delay1ms(500); keyflag = 0; /按键标志清零 /*定时器中断*/void timer0(void) interrupt 1 count+; if(flag = 1) irout = irout; else irout = 0; ir = irout;红外接收端程序:#include#include #define uint unsigned int#define uchar unsigned charsbit IRIN = P32; uchar IRCOM7;uchar keys = 0xff;sbit motor = P20;sbit zheng = P21 ;sbit fan = P22;sbit zuo = P23;sbit you = P24;sbit houzuo = P25;sbit houyou = P27;sbit qian = P26;uchar on = 0;/*延时1ms函数*/void delay1ms(int ms) uchar y; while(ms-) for(y = 0; y 250; y+) _nop_(); _nop_(); _nop_(); _nop_(); /*延时0.14ms函数*/void IRdelay(uchar x) /x*0.14ms uchar i; while(x-) for(i = 0; i13; i+) /*加速程序*/void inc() if(on != 100) on += 10; keys = 0;/*减速程序*/void dec() if(on != 0)on -= 10; keys = 0;/*方向向前*/void go() zheng = 1; fan = 0; zuo = 1; you = 0; houzuo = 0; houyou = 0; keys = 0;/*方向向后*/void back() zheng = 0; fan = 1; zuo = 0; you = 1; houzuo = 0; houyou = 0; keys = 0;/*左转*/void turn_lef() zheng = 0; fan = 1; zuo = 1; you = 0; houzuo = 1; houyou = 0; keys = 0; /*
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!