红外遥控设计 - 图文

更新时间:2024-06-22 07:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计(论文)

题 目: 红外遥控电路(软件部分) 学 院: 信息工程学院 专业名称: 自动化 班级学号: 学生姓名: 指导教师:

二零一五年六月

一种微功率汽车遥控钥匙(软件部分)

学生姓名:余晶 班级:110443

指导老师:吴国辉

摘要:随着社会的发展,汽车越来越普及,汽车钥匙在汽车行业中也显得尤为重

要,可以为车主提供更方便的操作体验,同时也可以保证汽车的安全。在本次设计中采用红外控制,这种控制具有很强的适用先进性和灵活性而且不容易受到其他信号的干扰。本设计是红外发射部分和红外接收部分这两部分构成。发射部分通过AT89C51单片机来进行编码,接收部分由AT89C51单片机进行解码,然后再进行相应的遥控控制和利用LCD1062显示。本文是一种微功率的汽车遥控钥匙的软件部分的设计,所以本文详细的介绍发射部分编码程序的基本原理和程序框架以及接收部分的解码程序的原理和程序框架,在此过程中介绍显示以及控制操作的程序原理。系统在实际测试以及最后的显示测试中证明可行可靠具有使用的价值。

关键词:AT89C51单片机,红外编码,红外解码, LCD1062液晶

指导老师签名:

A remote of a micro power key for car

(software part)

Student name : yujing Class :11044329 Supervisor : wuguohui

Abstract:With the development of society, automobile is becoming wide spread, car keys are playing a particularly important role in the automotive industry, providing a more convenient operating experience, also can guarantee the automobile safety. Infrared is used control in the design which with highly advanced and applicable and flexible and are not prone to other signal interference. The design includes two parts: receiver and transmitter. Transmitting part based on the single-chip microcomputer AT89C51 to encode, receiving part consists of AT89C51 MCU decoding, and then the corresponding remote control and using lcd1062 display. This paper is the design of a micro power car remote control key part of the software, so this paper detailed introduction emission coding procedure basic principle and program frame and the receiving part of the decoding process principle and program frame. In this process the display and control principle of operating procedure. The system in the actual test and final test proved to be feasible and reliable display has the use value.

Keywords: AT89C51 microcontroller, infrared code, infrared decoder, LCD1062

Signature of Supervisor:

目 录

1 绪论 ....................................................................................................... .1

1.1课题的目的以及意义...................................................................................... .1 1.2设计的基本要求............................................................................................... 2

2 整体方案设计 ...................................................................................... 3

2.1红外遥控软件设计的思路............................................................................... 3

2.1.1红外线的介绍......................................................................................... 3 2.2.2任务设计可行性方案............................................................................. 4

3 硬件的软件操作 .................................................................................. 6

3.1系统主要控制部分:AT89C51单片机 .......................................................... 6

3.1.1 AT89C51单片机简介 ............................................................................ 6 3.1.2 单片机最小系统.................................................................................... 7 3.2 发射部分.......................................................................................................... 8

3.2.1 按键部分................................................................................................ 8 3.2.2 红外发射部分........................................................................................ 9 3.3 接收模块.......................................................................................................... 9

3.3.1 红外接收头............................................................................................ 9 3.3.2继电器控制模块.................................................................................. .10 3.3.3 LCD1602显示模块 ............................................................................................ .11

4 软件设计 ............................................................................................ .15

4.1 红外编码特点............................................................................................... .15 4.2 发射部分软件设计....................................................................................... .16 4.3 接收部分的软件设计................................................................................... .19

4.3.1 主程序设计.......................................................................................... 19 4.3.2 红外解码程序设计............................................................................. .20

4.3.3:LCD1602显示软件设计 ...................................................................................... .22

5 软件调试 ...................................................................................... .23

5.1软件调试........................................................................................................ .24

5.1.1软件的编译.......................................................................................... .24 5.1.1发射部分调试....................................................................................... 24

5.1.2接收部分调试...................................................................................... .24 5.1.3 软件的烧录......................................................................................... .24 5.2 软件调试结果............................................................................................... .25

总结 ......................................................................................................... .27 致谢 ......................................................................................................... .28 参考文献 ................................................................................................ .29 附录 ......................................................................................................... .30

附录1整体硬件电图...........................................................................................30

附录2发射部分软件........................................................................................... 30 附录3接收部分软件........................................................................................... 35

南昌航空大学 学士学位论文

一种微功率汽车遥控钥匙(软件部分)

1 绪论

1.1课题的目的以及意义

科学技术的快速进步,人们对于生活的节奏要求也变得越来越高,因此人们一直在需求更快更方便的生活方式,在后来科学家发明了遥控器,伴随着遥控器的发展慢慢的满足了人们对于快节奏生活的要求,使得人们可以从很远的地方完成操作控制。随着社会科技以及电气的发展,各种无线远距离控制工具便进入了大众的视线。在其中汽车遥控钥匙也是其中一个很重要的组成部分。在现在很多汽车遥控中都是采用对频技术来实现控制汽车的[1]。在1800年科学家威廉.赫歇尔发现了红外线,经过长时间的发展在20世纪70年代红外遥控技术开始慢慢的发展起来。在日常生活中红外线的使用十分普遍,红外线是在一定特定频段的不可见波,在传输过程中室分稳定,不会受其他的信号的干扰。红外发射管发射的有效的距离可以差不多8-10m,可以满足对汽车的控制。而且红外通信控制的功率低,这就增加了遥控器的续航能力。本课题就是对红外线的传输特性进行研究,通过两块单片机实行对红外线的编码发射和解码接收并产生控制的一个过程,在此过程中就实现了两个单片机之间的通讯。在未来的智能社会的发展的趋势中硬件与硬件之间的无线通讯将会在人们的生活中扮演重要的角色。本课题中过单片机外加红外发射管组成一个手持的遥控[2]。利用单片机产生编码发射出去。利用单片机加接收头就可以组成一个接收的模块。在其中具有简单,操作性强,安全等特点。

红外线技术的诞生以及应用对于现在以及未来具有十分重要的意义。红外线被广泛的运用在社会的民用领域,医用领域以及军用领域。在民用领域中主要是各种电器类遥控,在医用领域中红外成像技术起到了十分重要的作用,军用领域中红外制导技术在其中扮演了重要的作用。红外技术在汽车行业中也起到了十分重要的作用比如说红外防撞雷达[3]-[6],红外烤漆等技术,随着红外编码技术电子硬件控制技术的发展,红外传输在生活和工业中的发展也发生巨大改变。自从建立了统一的红外传输标准之后,有力地推动了红外产品的发展。由于建立红外传输的标准在现在个人的移动通信终端的发展和汽车行业的快速发展红外控制得到了极大的发展,汽车的控制很多都利用到了红外通信。因为可以通过红外通信

1

南昌航空大学 学士学位论文

的编码协议可以对红外线进行加密而且采用可编程芯片实现编码解码控制十分容易而且还可以自己自定义密码加密性和自由度将大大提高。在将来物联网的发展,汽车也会并入物联网的范畴中,手机等一些移动终端就可以通过红外通信控制汽车和电器。这样将会极大的推动红外通信和物联网的发展。而且在现在现在电子技术飞速发展的今天各种智能设备层出不穷,比如所智能娃娃,智能家电等其中都将会用到无线控制,在控制过程中通过可控的编码方式可以实现加密并且不同的遥控不会相互干扰,因此来说红外控制技术将是不错的选择。红外通信控制会在未来的社会中扮演十分重要的角色。

本设计就是通过两块单片机实现红外编码,红外解码,使其相互匹配然后实现相对应的操作和显示本设计具有广泛的适用性和可拓展性。

1.2 设计的基本要求

1)在本次的设计中具有5个功能:开启门锁,关闭门锁,进入警报状态,

解除警报状态,后备箱锁(即发射部分可以发射出5种红外编码 信号)。 2)在5个状态下通过LCD1602进行显示出相对应的工作状态。

3)发射部分和接收部分是一一对应的关系。对于其他的设备不产生干扰。 4)门在打开没有人关闭的状态下经过30秒可以自动关闭。

2

南昌航空大学 学士学位论文

2 整体方案设计

2.1红外遥控软件设计的思路

2.1.1红外线的介绍

红外线也称作做红外光波,红外光波按波长范围的不同可以分为近红外、中红外、远红外、极红外4这四种。红外线遥控就是利用波长为0.76um~1.5um 的近红外光来进行传送遥控信号。把近红外线用来作为遥控光源的原因是,是因为红外发射类电子元件(红外发光管)与红外接收类电子元件(光敏二极管、三极管及光电池)的发光与受光峰值波长一般为0.8um~0.94um,在近红外光波段的范围内,二者的光谱可以很好的重合在一起[7],能够很顺利地进行匹配传输效率以及可靠性较高。

2.1.2红外遥控的原理

红外遥控发射部分通过红外红外发射管把单片机调制的电信号转化为近红外线信号发射出去。红外遥控的接收部分是由红外接收管和单片机组成,把发射管的信号接收后传递给后置单片机处理。

发射部分:发射部分由按键电路,指令编码系统系统,信号调制系统和发射电路组成。当我们按下按键时,指令编码系统对应的按键对其进行编码,指令编码信号经过38K载波进行调制,然后再由驱动电路来进行功率放大,再由发射电路把调制后的编码指令信号发射出去(如图2.1所示 )。

按键 编码 信号调制 红外发射 38K载波信号 图2.1红外发射流程

接收部分:接收部分一般由红外接收电路,信号解调系统,信号解码系统,显示电路和操作执行电路组合而成。接收电路把发射电路发射出来已经调制好的

3

南昌航空大学 学士学位论文

指令编码信号进行接收,然后进行信号放大后送给信号解调系统解调,通过信号解码系统把发射信号还原为编码信号。指令译码器将会把编码指令信号进行译码,最后再由驱动电路来执行控制电路实现与各种指令相对应的操作控制(如图2.2)。

接收 信号解调 信号解码 执行控制

图2.2红外接收部分流程

2.2任务设计可行性方案

方案一:利用红外编码芯片以及发射电路来实现红外遥控的编码,再经过38K 的载波信号调制后将编码信号发射出去。因为本次设计是从事软件部分,所以可以直接购得这种基于红外编码芯片的遥控器,再来查的其里面的编码信号。然后再来用单片机操作系统实现解调和操作执行的过程(如图2.3所示)

红外编码芯片 单片机解码系统 红外信号发射 红外接收 控制电路

图2.3可行性方案一

方案二:利用按键。单片机编码系统和发射电路构成一个红外信号发射电

路。通过单片机来检测按键高低信号的变化,来实现相对应的编码,产生控制脉冲信号。然后再通过发射电路来发射出去。然后再来用单片机操作系统实现解调和操作执行的过程(如图2.4所示)

4

南昌航空大学 学士学位论文

按键控制电 路 单片机红外编码系统 红外发射 红外接收 单片机红外译码系统 控制电路

图2.4可行性方案二

通过以上两种方案来说,第一种方案直接用编码芯片,所以做软件部分本设计只用完成接收部分的系统控制。但是发射部分没有用到单片机编码数量过于有限。对于相同的接收部分容易产生干扰。不便于汽车的控制。第二种方案直接利用单片机进行编码可以从0x00到0xFF。操作范围广操作程序便于改动适用性特别强,也利于汽车遥控的安全性。

综上所述采用第二种方案。通过单片机检测按键的信号状态来实现对应的编码,再经由单片机模拟产生38K的载波信号的调制后由红外发射模块发射出去。接收模块的红外接收管接收发射模块发射的指令编码信号[8]。经过解调后由单片机译码系统来进行译码。当译码指令与发射的指令编码信号相一致的时候便执行继电器的开合以及由LCD1602完成相应的操作显示。

5

南昌航空大学 学士学位论文

3 硬件的软件操作

3.1系统主要控制部分:AT89C51单片机

3.1.1 AT89C51单片机简介

AT89C51单片机是一种40个引脚。具有4K的快速闪存储存器,128B的RAM.4组IO口的微型处理器。4组IO口具有输入输出的作用.具有定时器和计数器。可以完成相应的中断和计数操作。其中通过20号引脚接在电源地,40脚接在电源正极。其中18脚和19脚接晶振,提供一个单片机工作脉冲。AT89C51具有低功耗、处理速度高、使用方便等特点。被广泛的应用于生活和工业中。AT89C51引脚图如图3.1所示

图5.1 AT89C51引脚

3.1.2 单片机最小系统

单片机最小系统由5V的电源电路。复位电路和晶振电路构成。在其中5V的电源电路接单片机的40脚和20脚。复位电路接单片机的9脚,当复位时会有持续2US的高电平信号便可以使得单片机系统重新复位。晶振电路接在单片机

6

南昌航空大学 学士学位论文

的18脚和19脚。一般采用晶振为11.0592M的晶振。晶振就像单片机的“心脏”。单片机内部的每条指令的运行都是按照机器周期来来执行的,实际上一个机器周期就是由12个晶振周期组成的。单片机的正常运行就是建立在最小系统的基础上的。

图3.2单片机最小系统

7

南昌航空大学 学士学位论文

3.2 发射部分

3.2.1 按键部分

在本次课题设计中。采用5个按键开关,按键的一端接地一端接单片机的P1^0到P1^4端口(如图3.2.1).在开始的时候给此处的I/O口至于高电平状态,然后让单片机一直处于扫描这些I/O口是否发生电平变化。当按键按下此处的I/O口便与地相连形成一个低电平。单片机的扫描程序一旦检测到I/O变为低电平就说明有按键被按下,于是就执行相应的指令操作。在软件的编写的过程中首先用sbit分别定义K1=P1^0,K2=P1^1,K3=P1^2,K4=P1^3,K5=P1^4。然后用if语句。例如if(K1=0)来检测P1^0到P1^4端口的电平状态来判断按键操作。

图3.3按键接口电路图

由于使用的是机械按键所以在按下按键和释放按键的操作过程中发生瞬间的机械抖动的现象(如图3.2.2所示)。抖动的时间和按键的机械特性有关一般抖动时间在5~10ms之间。按键的机械抖动对于单片机读取一次按键操作有巨大的干扰。假如产生一次较大的机械抖动单片机就会认为完成了一次按键操作,然而实际并没有。所以要采取消抖的措施。一般采用软件延时。AT89C51是一个12个时钟周期等于1个机器周期的单片机,如果使用的晶振是11.0592M的话,执行一条单指令的 NOP 需要 12*(1/11.0592M)=1.09us的时间。所以设置一个延时的子函数。采用两个for语句来延时。这样大概就是延时了xms;设置xms为5~10之间的一个数值便可以完成消抖操作。

8

南昌航空大学 学士学位论文

for(i=xms;i>0;i--) for(j=110;j>0;j--)

图3.4按键信号抖动状态

3.2.2 红外发射部分

本次的设计中红外发射电路接在单片机的P2^2口,单片机将经过调制的编码指令信号通过P2^2口经由三极管放大过后由红外发射管发射出来正如图3.5所示。

图3.5红外发射图

3.3 接收模块

3.3.1 红外接收头

此次设计的红外接收头为VS1838B,信号输入脚接单片机的P3^2口,当VS1838红外接收管接收到经过调制的红外编码信号的时候,这时候VS1838B红

9

南昌航空大学 学士学位论文

外接收管将38K的载波信号过滤掉。然后再将红外编码信号传给单片机处理

图3.6红外接收

3.3.2继电器控制模块

继电器分别接在P1^5,P1^6,P1^7这三个端口上。分别用来控制车门开关。后备箱开关和报警器这三个状态。开始将这三个继电器接在单片机上的三个端口置于高电平的状态,继电器的另一端也是接在电源的正极。当译码正确时就将对应的端口取反。于是就使得继电器导通[13]-[15]。在编写程序时需要利用sbit 分别定义S1= P1^5,S2= P1^6,S3= P1^7.然后再使得S1=S2=S3=1于是就可以使得将三个端口置为高电平。假如在译码时相匹配时就利用S1=!S1语句来把状态置反。于是继电器就闭合。在S1=!S于是继电器又断开[9]。就是利用置反来操作继电器的通断,如图3.7所示

图3.7继电器控制电路

10

南昌航空大学 学士学位论文

3.3.3 LCD1602显示模块 3.3.3.1 LCD1602基本介绍

LCD1602内置了128个字符ASCII字库。这种显示器可以显示两行。每行

可以显示16个字符。显示器一共有16个管脚[12],其通信方式为并行通信。显示器如下图所示。

图3.7.1LCD1602实物图

图3.8 LCD16022管脚图

11

南昌航空大学 学士学位论文

3.3.2.2 LCD1602基本操作时序:

LCD1602存在四个状态,分别为读状态,读数据,写指令。写数据。在其中都是通过设置RS,R/W,E的电平状态来完成对状态字和数据的读写操作。基本的操作时序如下表格3.1所示。操作时序图如图3.9所示。 读状态 读数据 写指令 写数据 表3.1

输入:RS=0:R/W=1;E=1 输入:RS=1;R/W=0;E=1 输入:RS=0;R/W=0;E=高脉冲 D0~D7=指令码 输入:RS=1;R/W=0;E=高脉冲 D0~D7=数据 输出:D0~D7=状态字 输出:无 输出:D0~D7=数据 输出;无

图3.9LCD1602读操作的时序图

12

南昌航空大学 学士学位论文

图3.10 LCD602的写操作

3.3.3.3 RAM地址映射以及数据指针的设置

在单片机的内部带有80B的RAM缓冲区,图3.3.3就可以反映出对应关系。

图3.11液晶地址图

当我们向其中的00~0F,40~4F中的任何一处地址写入显示数据的时候都可以显示出,当我们写入数据到10~27或者50~67地址中的时候我们都必须通过移屏指令将他们移植到可显示的区域才可以实现显示。 3.3.3.4 LCD1602操作

在对液晶LCD1602进行写命令操作和写数据操作之前我们需要首先进行液晶的初始化的操作。那该如何来进行初始化呢?第一步我们应该设置液晶的显示方式,包括格式显示光标的显示。第二部来一个大约5ms~10ms的延时,为了显示器的稳定。第三步进行显示缓存的清理,让显示清0.还有数据指针清0.。第四步进行设置显示的模式。以上四步操作便完成了液晶的初始化的操作。然后就可以进行液晶的读写操作了。分别利用写命令操作的函数和写数据操作的函数来完成在进行写数据的时候一定要有一个短暂的延时大约5ms因为这样可以保证写

13

南昌航空大学 学士学位论文

数据的稳定性。时间太短不稳定,太长了显示速度太慢。在写到第二行的时候需要重新进行定位数据指针,利用0x80+地址来进行定位第二行的数据指针。

14

南昌航空大学 学士学位论文

4 软件设计

4.1 红外编码特点

红外编码信号构成是:引导码+客户码1+客户码2+操作码+操作反码 引导码:如下图4.1所示其中的9ms高电平与4ms低电平组成引导码,当单片机检测到这个引导码的信号就会准备 接收后面的数据。

图4.1引导码

客户码:客户码就是每个红外设备的特征,使得不同的设备不会产生干扰。 操作码:操作码就是与操作执行相匹配的指令。可以让执行电路有不同的操作的指令编码。

操作反码:操作码的反码,当接收到操作码时将操作码取反,然后与操作码进行比较,然后确定是否相等。可以提高传输信号觉得准确度。 客户码,客户反码,操作码和操作反码都是有8位的二进制编码

我们知道二进制编码都是用0,1来表示的,在红外编码中利用0.565ms的高电平信号+0.565ms的低电平信号组合来表示二进制中的0,利用0.565ms的高电平信号+1.685ms的低电平信号来表示二进制中的1(如图4.2所示)。

图4.2 红外编码中的0,1状态

利用红外编码的0和1就可以进行编码了。一个完整的红外编码格式(如图4.3所示)。

15

南昌航空大学 学士学位论文

图4.3红外编码格式

4.2 发射部分软件设计

发射程序由按键扫描程序,编码发送程序和主函数构成。在主程序开始后就开始对程序进行初始化,然后就调用按键的扫描程序,假如检测到按键按下然后就完成对应的编码发送操作(如图4.4)。

开始 初始化 调用扫描按键程序 是否按下按键 NO YES 执行红外编码程序发送编码

图4.4发射部分主程序

在发送的过程中首先发送9ms高电平+4.5ms低电平的引导码。当发送完成时便开始发送客户码1和客户码2.。最后发送操作码和操作反码(红外编码以及发送程序流程图如图4.5所示)最后还发送一个9ms高电平和4.5ms的低电平,

16

南昌航空大学 学士学位论文

然后将标志位置于初始状态,为下一次的发射做好准备。在发送前调用定时器0.通过定时器0来产生38KHZ的信号[10]。当检测到红外发送的标志位为1,然后就发送38KHZ的方波信号作为作为载波信号。在发射编码信号的时候编码经过38K的载波信号调制而后发射出去。在其中通过设置定时器0工作在2的方式下。也就是设定TMOD=0x02,然后再来设定TH0=0xFF; TL0=0xE6。这样我们就可以通过计算得到一次计时为13us,在检测到红外发射标志位为1的时候就对载波信号取反。就是13us的高电平和13us的低电平,于是就可以求到载波信号的频率为38.5KHZ大约为38KHZ的载波信号,于是编码信号就通过载波信号的调制后发射出去。

17

南昌航空大学 学士学位论文

开始 发送9MS高电平信号 开始 开定时器 等待引导码发送完毕 延时等待0.565MS高电平信号发送完毕 发送4.5MS低电平信号 等待结果码发送完毕 NO 是否发送完毕 YES 发送客户码1 发送客户码2 发送1.695MS低电平信号 发送操作码 NO 是否发送8位 发送操作反码 YES 结束 发送重复码 8位红外编码软件流程

发送完毕 发送红外编码软件流程

图4.5红外编码流程图

18

南昌航空大学 学士学位论文

4.3 接收部分的软件设计

4.3.1 主程序设计

接收部分的软件主要有两部分构成解码部分和操作执行部分。操作执行部分的软件有LCD1602显示部分和继电器控制部分。在进入主程序进行定时器和中断的初始化,然后就准备来接收引导码[11]。假如已经成功的接收到引导码那就进入红外解码。当完成了红外解码就开始进入操作执行的部分通过控制继电器来完成对汽车的控制。同时利用LCD1602来进行显示控制的状态。主程序的软件流程图如图4.3.1所示。

开始 初始化 是否接收完引导码 NO YES 接受客户码,操作码,操作反码 是否完整接收客户码,操作码操作反码 NO YES 驱动电路执行和显示

图4.6红外接收主程序流程图

19

南昌航空大学 学士学位论文

4.3.2 红外解码程序设计

红外指令编码由引导码,客户码1,客户码2,操作码和操作反码构成。所以在接收的时候也是按照这个顺序。定时器和中断初始化完成后解码程序就等着引导码的出现,通过延时来判断是否为是否为引导码。等待9ms的引导码的结束。再来等待4.5ms的结果码。假如完成则进入高电平等待。假如高电平的时间超过0.565ms则储存1否则保存0.然后再来判断接收的位数。假如接收完了8位则可以进入接收操作码和操作反码。最后来判断操作码和操作反码是否相匹配,假如相匹配红外线则接收完成,红外线接收流程如图4.7所示。在其中利用定时器来计时。通过定时器来判断信号的时间的长度从而来判断传来的信号是0还是1。

20

南昌航空大学 学士学位论文

红外接收子程序 等待引导码出延时判断是否为引导码 等待引导码结束 等待结果码结束 等待进入高电平状态 NO 是否大于0.565ms YES 保存为“1” 保存为“0” NO 是否接收完8位 YES NO 是否接收完操作码,操作反码 YES NO 操作反码的反码是否为操作码 YES 退出 接收无效 图4.7 红外译码子程序

21

南昌航空大学 学士学位论文

4.3.3 LCD1602显示软件设计

在对LCD1602进行读写操作之前需要对LCD1602进行初始化操作,首先设

置液晶的显示的模式的设置,再来读取忙信号状态,调用写入地址的函数,然后便可以把需要显示的数据写入。最后液晶内部读出字的字符型点阵并显示出来。整体的操作流程如图4.8所示。

开始 开始 设置显示的方式 初始化 延时5ms 设置显示地址 清理显示缓存 写入显示字符 设置显示模式 结束 结束 LCD1602初始化流程 LCD1602显示操作流程

图4.8LCD1602操作流程

22

南昌航空大学 学士学位论文

5 软件调试

5.1软件调试

软件调试的过程主要通过利用KEIL单片机编译软件来行程序编译。当编译结束时加载完了就可以进入调试了。然后就可以把代码编译成汇编代码,然后按照指令执行顺序去执行指令,在此过程中可以看到变量的数据的变化。通过调试的过程可以矫正程序,发现程序中的不合理的部分,然后进行修改,使得程序更加正确。而且通过调试的这个过程可以很直观的看到程序是如何执行的,加深自己对于整个软件的了解。在调试发现代码无误就可以产生HEX文件烧录到单片机中,通过加载到硬件的平台上,通过与预期的功能进行对比,在从这个过程中来不断调试来达到预期的效果。 5.1.1发射部分调试

在设置按键消抖的过程中开始设置的调用延时的函数,设置的延时时间为

图5.1发射部分调试结果

5ms。但是设置的效果并不好。然后设置为10ms效果较为理想,在此过程中并不能产生精确38K的方波信号。所以会造成发射的效果并不是特别理想。这是由于单片机本身的频率决定的。当然也不会影响基本功能的实现。在开始完成按键操作没有延时立马进行红外编码发射的操作。发射的效果很差。所以在红外编码发射的时候需要一个简短的延时。发射部分的调试结果如图5.1所示

23

南昌航空大学 学士学位论文

5.1.2接收部分调试

在开始的时候在液晶进行写程序的时候并没有延时,于是就会出现液晶在开始显示的时候会有些不稳定。在加入了一个短暂的延时后效果好很多。还有在接收编码指令的时候也是。当接收完了操作码执行操作显示和控制的时候也需要做一个延时。接收部分软件调试的结果如图5.2所示

图5.2接收部分调试结果

5.1.3 软件的烧录

在编译完软件调试时生成了HEX文件时,然后就需要利用烧录软件将软件烧录在单片机中。利用stc-isp进行软件的烧录,首先找到与单片机进行通信的端口。设置合适的波特率,然后打开程序文件,就可以点击下载了。有一个问题需要注意的是:在烧录完程序的时候需要将单片机立马断电。然后再打开单片机运行程序,这是为了保护单片机,反之烧录程序过程和软件在单片机运行的那瞬间产生冲突。软件烧录的截图如图5.3所示。

24

南昌航空大学 学士学位论文

图5.3软件的烧录

5.2 软件调试结果

按键K1,K2车门的锁定和开锁。实际效果如图5.4所示。

图5.4软件调试结果

按键K3车子处于报警状态,实际结果如图5.5所示。

25

南昌航空大学 学士学位论文

图5.5软件调试结果

按键K4,K5后备箱的锁定解锁。实际的结果如图5.6所示

图5.6软件调试结果

在按下按键K1的时候就是车门锁上,当按下按键K2于是就完成解锁。当车门处于开的状态的时候,当过了30秒后车门会自动锁上。当按下按键K3的时候车子就处于报警的状态。当按下按键K4的时候后备箱便打开。当按下按键K5的时候后备箱就锁上。每当完成一个操作的时候液晶便会完成相应的显示。

26

南昌航空大学 学士学位论文

总结

毕业设计是学校在即将毕业之际对学生在大学的最后一次检验,从某种程度上来说也是对我们大学四年所学的一次考核。在本次的选题的过程中我选择了自己比较感兴趣的课题,无线控制这一块。因为大学是自动化专业。本专业并没有接触过无线控制,在无线控制中红外控制又是最常见的。所以就选择了吴国辉老师课题下的一种微功率的汽车遥控钥匙(软件部分)

在本次的设计中首先对红外线有一个整体的介绍。然后再来选择不同的方案对比找出最适合的方案。然后就这这个方案来说明软件控制的方法,首先从硬件层的控制来说,解释说明每个硬件是如何通过软件来工作的。最后就整体的来介绍红外发射部分和红外接收部分是如何通过软件来控制整个系统工作的。

本次毕业设计可谓是收获颇丰。因为开始并没有接触过红外通信,在选了这个课题后到处找资料。首先从硬件层去了解。了解红外发射管,红外接收管和LCD1602液晶。当对这些硬件有了一个了解后就开始学习红外线的知识,然后就去了解红外通信的指令编码组成的相关知识。最后利用学习开发板来进行红外通信的学习和调试来完整的了解这个操作的过程。通过以上知识最后来完成自己设计。

通过本次设计使得自己对于单片机有了一个更加深入的认识。同时也使得自己对于以前从未接触的红外控制有了了解。在设计中感受到实践和理论还是有很大的差别的。实践基于理论,但是又高于理论。所以我们学习需要打好扎实的理论基础然后再去实践提高,在本次设计中存在很多的不足。通过和老师和同学们的探讨慢慢修正了一些不足。让自己的综合运用能力得到提高

27

南昌航空大学 学士学位论文

致谢

在本次的毕业设计是在吴国辉老师的悉心关怀和精心指导下完成的。在课题开始吴国辉老师首先就给我细心讲解课题设计的整体方案。针对本课题的软件设计该如何进行以及如何写后期的论文。在毕业设计进行的过程中吴国辉老师也进行着指导。对课题提出看法。他待人随和工作严谨的态度使得这次的毕业设计完成的很愉快。本次的毕业设计中灌注了老师的大量心血和汗水。老师渊博的知识,为人师表的作风,科学严谨的做学态度让我以他为榜样。在此对我的毕业设计指导老师表示深深的感谢

顺利完成学业和父母的关怀和支持是分不开的。在学习的道路上父母一直以一个好的榜样激励着我鼓励着我追求知识。在此对父母表示深深的感谢 同时也对在大学四年里所有对我传授知识的老师学长们和同学们表示诚挚的感谢。

28

南昌航空大学 学士学位论文

参考文献

1 郭天祥,新概念51单片机C语言教程:入门,提高,开发,拓展全攻略,北京:电子工业出版社,2008.

2 胡汉才,单片机原理及其接口技术,第2版,北京:清华大学出版社,2003.

3 肖景和,赵健 ,红外线热释电与超声波遥控电路/无线电爱好者丛书,北京,人民邮电出版社2003.

4 李军,51系列单片机高级实例开发指南,北京:北京航空航天大学出版社,2003 5 谭浩强.,C程序设计教程[M].北京:清华大学出版社,2007.

6 咸俊伟; 陈波; 梁书旺,基于AT89C51的红外遥控电子密码锁的设计,《科技信息》20087年29期(P567-569.)

7 陈永甫,红外探测与控制电路,北京,人民邮电出版社,2005.

8 聂诗良, 李磊民. 采用单片机发送并接收红外遥控信号的方法[J]. 信息技术, 2004, 28(2):21-23. .

10 吴爱萍, 朱晓春. 基于AT89S51的多功能红外遥控器设计[J]. 仪表技术与传感器, 2008, (8):78-80.

11 qi Z Y. Use Mcs51 MCU Receive and Decode Infrared Remote Control Signal[J]. Computer

Knowledge & Technology, 2006..

12 Liu T, Feng-cai F. Decoding Technology for Infrared Remote Control Launching Code Based

on AT89S51[J]. Journal of Guangxi Teachers Education University, 2009.

13 Mizukata , Tsunemi . Microcomputer-Assisted CCD Driver System for General Use[J]. Japanese Journal of Applied Physics, 2015, 27(10):2015.

14 Jisheng L, University B J. Single chip microcomputer principle teaching reform and

practice[J]. China Modern Educational Equipment, 2014.

15 Jie W, Xiang-bing Z, Wen-liang H. Switch power module based on single-chip

microcomputer[J]. Electronic Design Engineering, 2013..

9 凌志斌, 邓超平, 郑益慧等. 红外遥控技术及其解码方案[J]. 微处理机, 2003, (6):59-62.

29

南昌航空大学 学士学位论文

附录

附录1:整体硬件电路图

.

附录2:发射部分软件

#include

sbit IR=P2^2; //红外发射管控制脚 sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4;

unsigned int count, set_count; //中断计数,设定中断次数 bit IRflag,keyflag; //红外发送标志位,按键标志位 unsigned char IRsys[]={0x66,0x66}; //16位用户码 unsigned char IRdata,IRcode; //发送的红外数据 void delay(unsigned int a) {

unsigned char i; while(--a!=0) for(i=125;i>0;i--); }

30

南昌航空大学 学士学位论文

void keyscan() //按键扫描 {

if(k1==0)

{ delay(10); if(k1==0)

{ keyflag=1;

while(!k1); IRdata=0x11; } }

if(k2==0) {

delay(10); if(k2==0)

{

keyflag=1;

while(!k2); IRdata=0x22; } }

if(k3==0) {

delay(10); if(k3==0)

{ keyflag=1; while(!k3); IRdata=0x33; } }

if(k4==0) {

delay(10); if(k4==0)

{

keyflag=1; while(!k4); IRdata=0x44; }

31

南昌航空大学 学士学位论文

}

if(k5==0) {

delay(10); if(k5==0) {

keyflag=1; while(!k5); IRdata=0x55; } } }

void IR_sendbyte() //红外发送一个字节数据 { unsigned char i;

for(i=0;i<8;i++) //发送8位数据

{ set_count=35; //发送编码中的0.56ms高电平 IRflag=1; // 启动红外发射二极管发射 count=0; //中断计数先清零 TR0=1; //开启定时器0

while(count

if(IRcode&0x01) set_count=130; //判断最低位,若为1则1.69ms的低电平 else set_count=35; //为0则0.565ms的低电平 IRflag=0; //低电平则不发射 count=0; //中断计数清零 TR0=1; //开启定时器0 while(count

IRcode=IRcode>>1; //将数据右移,即从低位到高位发送 } }

void IR_send() {

set_count=672; //发送编码中的引导码(9ms高电平+4.5ms低电平) IRflag=1; //启动红外发射二极管发射 count=0; //中断计数清零 TR0=1;

while(count

set_count=336; //发送编码中的4.5ms低电平

32

南昌航空大学 学士学位论文

IRflag=0; count=0; TR0=1;

while(count

IRcode=IRsys[0]; //发送16位用户码的前8位 IR_sendbyte();

IRcode=IRsys[1]; //发送16位用户码的后8位 IR_sendbyte();

IRcode=IRdata; //发送8位数据码 IR_sendbyte();

IRcode=~IRdata; //发送8位数据反码 IR_sendbyte();

set_count=35; //发送编码中的0.56ms高电平 IRflag=1; count=0; TR0=1;

while(count

delay(23); //延时23ms(编码中的23ms低电平)

set_count=670; //发送编码中的引导码(9ms高电平+4.5ms低电平) IRflag=1; count=0; TR0=1;

while(count

set_count=336; //发送编码中的4.5ms低电平 IRflag=0; count=0; TR0=1;

while(count

set_count=35; //发送编码中的0.56ms高电平 IRflag=1; count=0; TR0=1;

while(count

void timer0_init() //定时器初始化 {

33

南昌航空大学 学士学位论文

EA=1;

TMOD=0x02; //定时0 8位自动重装模式 ET0=1;

TH0=0xF3; //定时26us,38K红外矩形波 TL0=0xE6; }

void main() {

timer0_init(); //初始化定时器 count=0; //中断清0 IR=0;

IRflag=0; //红外标志位设置为0 while(1) {

keyscan(); //键盘扫描

if(keyflag) //判断是否完成按键操作 {

delay(10);

IR_send(); //发送红外编码指令 delay(500);

keyflag=0; //将按键标志位设置为0 delay(100); } } }

void timer0() interrupt 1 {

count++;

if(IRflag==1) //假如开始发射红外编码指令 IR=~IR; //有发射标志,则发射38khz的矩形波 else IR=0; }

34

南昌航空大学 学士学位论文

附录3:接收部分软件

#include #include

#define uint unsigned int

sbit IR=P3^2; //红外接口标志

sbit led1=P1^5; //第一个led是和P1^0口连接的。 sbit led2=P1^6; sbit led3=P1^7; sbit RS = P1^0 ; sbit RW = P1^1 ; sbit EN = P2^5 ; sbit STA7 = P0^7;

typedef unsigned char uint8;

unsigned char code word1[]={\ //对应5个按键的五个显示 unsigned char code word2[]={%unsigned char code word3[]={%unsigned char code word4[]={%unsigned char code word5[]={%unsigned char code word6[]={\/*------------------------------------------------0 00 全局变量声明

------------------------------------------------*/

unsigned char IRtime;//红外用全局变量

bit IRpro_ok,IRok;

unsigned char IRcord[4]; unsigned char IRdata[33];

/*----------------------------------------------- -------------lcdxianshi-----------------------*/ /**

* 等待繁忙标志 */

void wait(void) {

P0 = 0xFF; do { RS = 0; RW = 1; EN = 0; EN = 1;

35

本文来源:https://www.bwwdw.com/article/xcd3.html

Top