基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx

上传人:b****3 文档编号:4742673 上传时间:2023-05-07 格式:DOCX 页数:26 大小:564.17KB
下载 相关 举报
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第1页
第1页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第2页
第2页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第3页
第3页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第4页
第4页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第5页
第5页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第6页
第6页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第7页
第7页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第8页
第8页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第9页
第9页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第10页
第10页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第11页
第11页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第12页
第12页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第13页
第13页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第14页
第14页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第15页
第15页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第16页
第16页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第17页
第17页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第18页
第18页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第19页
第19页 / 共26页
基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx

《基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx(26页珍藏版)》请在冰点文库上搜索。

基于单片机的电器遥控器的设计电气工程技术毕业设计论文.docx

基于单片机的电器遥控器的设计电气工程技术毕业设计论文

第一部分设计任务与调研…………………………………………………………1

第二部分设计说明…………………………………………………………………4

第三部分设计成果………………………………………………………………15

第四部分结束语…………………………………………………………………22

致谢…………………………………………………………………………………23

参考文献……………………………………………………………………………24

 

第一部分设计任务与调研

1设计任务和要求

设计一个基于单片机的遥控器、要求如下:

(1)系统分为一个发射器与接收器;

(2)遥控距离不小于3米;

(3)至少可以模拟控制四路电器;

(4)接收器接收到信号时有信息反馈。

2调研

当今社会电子技术飞速发展,新型大规模遥控集成电路不断出现,遥控技术的发展变得日新月异。

遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化的程度大大的提高了。

这些年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中得到了越来越广泛的使用。

常见的遥控方式一般有如下几种类型:

光控方式、声控方式、无线电遥控方式、红外遥控方式等等。

光控方式:

简单的光控电路是利用光敏管受光后内阻发生变化使电子开关的状态发生变化,传感器有光敏二极管、光敏三极管、光敏电阻、光敏电池等。

不同的光敏元件有着不同的光谱。

所以光控光源既可以是可见光,也可以是红外线等不可见光源[1]。

声控方式:

声控就是用声音去控制对象动作完成操作,一般采用驻极体话筒或压电陶瓷片作为传感元件来拾取声音。

一般采用超声波控制和声频控制:

采用超声波控制时可以防止外界音频干扰。

采用超声波控制时大多数用在玩具生产等。

无线电遥控方式:

无线遥控是指实现对被控目标的非接触遥远控制,在工业控制、航空航天、家电领域应用广泛。

无线遥控和无线传输系统与有线和红外设备相比提高了移动自由度。

由此使无线遥控装置和无线传输系统在工业领域的应用越来越多。

相对电缆连线的优点在于安装成本低(无需布线、不用地下工程、没有电缆槽),提高了灵活性并降低了维护成本。

无线电遥控电路较为电路复杂,但它的控制距离很远。

无线电遥控近可以控制零点几米,远则可以超越地球到达太空!

遥控系统一般由发射器和接收器两部分组成。

发射器一般由指令键、指令编码电路、调制电路、驱动电路、发射电路等几部分组成。

接收器一般由接收电路、放大电路、解调电路、指令译码电路、驱动电路和执行电路几部分组成。

当接收机收到发射机发出的无线电波以后驱动电子开关电路工作。

所以它的发射频率和接收频率必须是完全相同的。

随着互联网渗透到各个行业当中,互联网的产品也开始在各个行业中出现如在某手机中出现的遥控器的软件就可以控制很多家电产品,这时手机就变成了一个遥控器。

遥控器是一种用来远控机械的装置现代的遥控器主要是由集成电路电板和用来产生不同讯息的按钮所组成。

随着现代科技的发展,遥控器是一种无线发射装置,通过现代数字编码技术,将按钮信息进行编码,通过红外线二极管发射光波光波经接受器的红外线接收器将收到的红外信号转换为电信号,进处理器进行解码,解调出相应的指令来达到控制机顶盒等设备完成所需要的操作要求。

红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。

所以现在很多无线遥控方式都采用红外遥控方式。

3系统设计思路

本设计采用STC89C52单片机,STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

根据扫描到不同的按键值转至相对应的ROM表读取数据。

确认设备及菜单选择键后STC89C52将从ROM读取出来的值,按照数据处理要求从P2.5输出控制脉冲与T0产生的38KHz的载波(周期是26.3us)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。

红外数据接收则是采用VS1838B一体化红外接收头,内部集成红外接收、数据采集、解码的功能,只要在接收端INT0检测头信号低电平的到来,就可完成对整个串行的信号进行分析得出当前控制指令的功能。

发射模块采用STC89C52单片机作为控制核心,硬件电路组成:

多个物理按键、红外发射电路、电源电路。

遥控编码脉冲信号由引导码、系统码、系统反码、功能码、功能反码等信号组成。

以PPM码(脉冲位置调制码)对红外数据调制在38KHz的载波上。

接收模块采用STC89C52单片机作为控制核心。

硬件电路组成:

采用AV1838B小型一体化红外接收头、电源电路、四路LED开关电路。

 

第二部分设计说明

1方案选择

(一)单片机控制器模块

采用目前比较通用的52系列单片机。

此单片机的运算能力强,软件编程灵活,自由度大,市场上比较多见价格便宜且技术比较成熟容易实现。

(二)38KHz载波实现

利用载波对信号进行调制从而减少信号传输过程中的光波干扰,提高数据传输效率。

载波是指被调制以传输信号的波形,一般为正弦波。

一般要求正弦载波的频率远远高于调制信号的带宽,否则会发生混叠,使传输信号失真。

可以这样理解,我们一般需要发送的数据的频率是低频的,如果按照本身的数据的频率来传输,不利于接收和同步。

使用载波传输,我们可以将数据的信号加载到载波的信号上,接收方按照载波的频率来接收数据信号,有意义的信号波的波幅与无意义的信号的波幅是不同的,将这些信号提取出来就是我们需要的数据信号。

方案:

单片机T0定时产生38KHz载波

电路原理:

STC89C52RC定时器T0产生周期性的26.3us的矩形脉冲,即每隔13us,定时器T0产生中断输出一个相反的信号使输出端产生周期的38KHz脉冲信号[6]。

计算公式如2.1所示,脉冲图如图2.1所示。

T=1/38KHz(2.1)

图2.138KHz载波信号

对于产生38KHz脉冲信号的软、硬件电路的实现进行比较选择,软件实现经济有利于产品开发使用,加密性强,电路板元件少,经济实用,便于产品的推广。

即用软件定时产生38KHz的载波信号。

(三)红外解码电路的选择

方案:

采用单片机软件解码

根据实际情况进行选择,其外围电路简洁,空出的IO口多,利于单片机扩展多路开关电路的设计,而编程就会复杂些。

2方案总结

经过上述方案的分析选择,得出系统硬件由以下部分组成:

红外数据发射电路,红外数据接收电路。

整体设计思路为:

根据扫描到不同的按键值转至相对应的ROM表读取数据。

确认设备及菜单选择键后STC89C52将从ROM读取出来的值,按照数据处理要求从P2.5输出控制脉冲与T0产生的38KHz的载波(周期是26.3us)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。

红外数据接收则是采用VS1838B一体化红外接收头,内部集成红外接收、数据采集、解码的功能,只要在接收端INT0检测头信号低电平的到来,就可完成对整个串行的信号进行分析得出当前控制指令的功能。

然后根据所得的指令去操作相应的用电器件工作,如图2.2

图2.2电路设计整体框图

3硬件设计

3.1单片机的介绍

STC89C52单片机

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52在众多嵌入式控制应用系统中得到广泛应用。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结[8],单片机一切工作停止,直到下一个中断或硬件复位为止。

图2.389C52引脚图

3.2四路按键电路

按键的工作原理:

一个按键与一个LED灯相对应,按一次对应灯亮,再按一次对应灯灭。

再设一个总开关控制所有灯的亮灭。

如图2.4所示。

图2.4四路按键电路图

3.3红外发射器

完成信号的电光变换并向空间发射红外脉冲。

红外发射器的关键部件是红外发光二极管(LED)和相应的驱动电路。

红外LED器件首先要满足其调制带宽大于信号的频谱宽度,保证通信线路畅通。

此外LED的发射波长应与接收器端的光电探测器(一般选用硅光二极管)的峰值响应率相匹配,最大程度地抑制背景杂散光干扰,现阶段一般选用780~950nm的红外波段进行数字信号传输。

由于红外无线通信系统的信噪比与发射器发射功率的平方成正比所以适当提高红外发射器的发射功率,并采用空间分集全息漫射片等可使发射端的光功率在空间均匀分布的措施来降低误码率,提高通信质量。

3.4红外通信的基本原理

红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。

发送端采用脉冲位置调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去,接收端将收到的光脉冲转换成电信号,再经过放大、滤波处理后送给解调电路进行解调,还原为二进制数字信号后输出。

换句话说,红外通信的实质就是对二进制数字信号进行调制和解调,以便利用红外进行传输,红外通信接口就是针对红外信道的调制解调器。

3.5红外通信的组成

红外通信系统采用红外光传输及无线工作机制,其组成结构主要包括:

①发射器部分:

需要传输的信号经数字化(采样及量化)后,一般需要进行基带调制和传输调制,有时还要进行信号源压缩编码,采用所得的电信号驱动电光变换电路来完成红外脉冲发射。

②通信信道:

红外无线数字通信的信道泛指发射器与接收器之间的空间。

由于自然光及人工光源等背景光信号的介入,信号源以及发射/接收端设备中电学或光学噪声的影响,红外无线数字通信在某些场合的通信质量较差,需要采用信道编码技术。

③接收器部分:

信道中的光信号由光接收器部分实现光电变换,为了消除噪声以及码间干扰,需要加入滤波和均衡等环节。

来提高抗干扰能力。

3.6红外接收器

红外接收器包括红外光接收部分以及后续的信号采样、滤波、判决、量化、均衡和解码等。

经济有利于产品开发使用,加密性强,电路板元件少,经济实用,便于产品的推广。

即用软件定时产生38KHz的载波信号。

 

3.7红外发射电路

红外数据射发射电路图如2.5所示。

图2.5红外数据发射电路

3.8红外接收器

红外接收器包括红外光接收部分以及后续的信号采样、滤波、判决、量化、均衡和解码等。

经济有利于产品开发使用,加密性强,电路板元件少,经济实用,便于产品的推广。

即用软件定时产生38KHz的载波信号。

3.9单片机红外接收器的电路设计

硬件电路组成有:

红外接收电路、电源电路、用电器控制电路、四路LED电路。

3.10红外接收电路

VS1838B是用于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0KHz[15]。

抗干扰能力强,低电压工作。

接收器对外只有3个引脚:

OUT、GND、VCC与单片机接口非常方便,如图2.6所示。

图2.6VS1838B外型图

(1)脚接电源(+VCC),

(2)脚GND接系统的地线(0V),(3)脚接脉冲信号输出,经非门U6缓冲与P24的判断信号进行逻辑与使得进入INT0的信号恰好是红外数据发射电路输出端P25的相反相信号,只要检测到INT0信号下降沿从而测出控制指令的功能。

VS1838B内部结构框图

内部电路

图2.7VS1838B内部结构工作流程

VS1838B接收原理

红外线接收是把遥制发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。

这些工作通常由一体化的接收头来完成,输出TTL兼容电平。

最后通过解码把脉冲信号转换成数据,从而实现数据的传输。

图2.7是一个红外线接收电路框图。

图2.8红外接收及控制电路框图

本设计的核心部分在于红外发射、接收功能演示。

其中红线数据接收是对红外二进制脉冲的宽度进行测量,从而获得红外遥控的脉冲信息。

怎样才能实时、准确地对红外二进制脉冲波形进行测量呢?

采用外部中断成为了理所当然的选择,外部中断只有低电平和下降沿触发两种方式,这就使得单片机只能一次性对脉冲的高电平或低电平进行测量,而一连串的脉冲是不可能分开多次测量的,因此,为了解决这一问题,本人将从接收头出来的红外二进制脉冲信号与标志位(P24)进行逻辑或非,然后再输入到INT0(P3.2)引脚,使得输入INT0的信号恰好是红外数据发射电路输出端P25的信号,只要检测到INT0信号下降沿到上升沿的这段时间。

如果相邻的两个中断间隔的时间长度为1.125ms,说明接收到的是“0”;时间长度是2.25ms则为“1”。

因此,脉冲电平的每一次跳变都会形成一次中断,在中断服务子程中即可实现一次性对一连串连续波形的测量,在测量后对0和1的个数据统计从而测出控制指令的功能。

硬件或非门的反应速度是纳秒级的,满足实时要求。

红外接收电路连接图如图2.9所示。

图2.9红外接收电路图

3.11四路LED电路

四路开关电路的实现是本次设计的重点,通过四路开关的功能演示来体现本次多功能红外遥控器的设计思想,其电路图2.10所示。

图2.10四路LED电路

4软件设计

4.1红外发射模块

单片机对红外遥控开关的控制括二个子系统:

红外遥控器指令发射、红外遥控指令接收,二个子系统是有很强的互连性,但各个子系统的软件系统差别较大,下面将分别介绍二个子系统的软件设计。

使用C语言编写程序,调用的库函数多,易于移植,编程简单。

本设计只给出了部分程序。

4.2发射电路主程序流程图

主程序设计是首先是初始化键盘和红外发射端口的参数值,然后让单片机扫描检测键盘,如果有按键按下就让其相应的按键编码通过红外发射管发射出去。

如图2.11所示。

图2.11红外发射主程序流程图

4.3红外发射子程序流程图

子程序设计是让单片机等待按键按下发送编码信号,如果检测到信号就让其按循序发射引导码、系统码、系统反码、数据码、数据反码还有结束标志位。

如图2.12所示。

图2.12红外发射子程序流程图

4.4红外接收模块

4.4.1红外接收电路主程序流程图

主程序是首先初始化红外接收端口,然后检测是否接收红外信号,如果接收到红外信号就调用接收子程序,显示灯亮,如图2.13所示。

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

4.4.2红外接收电路子程序流程图

子程序是首先读取T0定时器的长度,如果是1.125ms就认为是“0”,将其存入缓冲区并且计数器加一,如果是2.25ms就认为是“1”,将其存入缓冲区并且计数器加一。

如果计数器值为32时,就接收结束标志位并且将计数器清0,如果计数器值不为32时,就认为是接收误码,计数器也将清0,此时重新等待读取红外信号。

如图2.14所示。

图2.14红外接收程序流程图

单片机对红外遥控的控制包括二个子系统分别是:

红外遥控器指令发射、红外遥控指令接收。

发射主程序设计是首先是初始化键盘和红外发射端口的参数值,然后让单片机扫描检测键盘,如果有按键按下就让其相应的按键编码通过红外发射管发射出去。

接收主程序是首先初始化红外接收端口,然后检测是否接收红外信号,如果接收到红外信号就调用接收子程序。

单片机控制的红外通信系统具有硬件电路简单、成本低廉、编程方便、通信可靠性高的特点,实现了通信双方非接触式的数据传送。

如将该系统运用到电表抄表系统中,将会大大提高抄表工作的效率,同时这种方案也可用于其它遥控、遥测应用场合。

第三部分设计成果

1、总电路图如图3.1所示

图3.1总电路图

2、仿真调试

首先根据电路原理图利用Proteus软件画出仿真图。

打开Proteus软件,将所有需要用到的元器件添加到左侧的元器件列表DEVICE中。

打开元器件库对话框,输入元器件名称,可以选择所用元器件。

选完后在列表中会显示出来。

按照电路图把仿真图画好,程序编译完成后双击单片机加载程序编译生成的.hex文件,加载好后点击运行。

如图3.2所示。

图3.2仿真图

3、实物展示

实物由两块组成分为红外发送和红外接收,供电采用的都是USB供电,红外发射端有四个按键,一个复位按键,一个LED用来显示发射端的通电状况,发射端上装有两个红外发射二极管,以防出现坏了的情况。

如图3.3所示。

图3.3红外发射实物图

红外接收端也装有复位按键,以防单片机死机,蓝色按键是电源按键,绿色LED表示板子的通电情况,接收端接收到发射端的红外信号,经过红外一体化接收头解码,实现指定LED的亮灭。

接收端实物如图3.4所示。

图3.4红外接受实物图

4、源程序

voidsendirdata()

{

uchars=0,user=0,shuju=0,hc=0;

TR0=1;

/***发送引导码******************************************/

endcount=700;//发送9ms起始码的高电平

p3_7=1;

count=0;

do{}while(count

endcount=350;//发送4.5ms的结果码低电平

count=0;

p3_7=0;

do{}while(count

/***发送系统码*******************************************/

user=system;

for(s=0;s<=7;s++)

{

endcount=30;count=0;//发送公共的0.56ms高电平

p3_7=1;

do{}while(count

hc=user&wy[s];//发送脉冲间距

if(hc==0){endcount=30;count=0;}

else{endcount=120;count=0;}

p3_7=0;

do{}while(count

}

/***发送系统反码******************************************/

user=system;

for(s=0;s<=7;s++)

{

endcount=30;count=0;//发送公共的0.56ms高电平

p3_7=1;

do{}while(count

hc=user&wy[s];//发送脉冲间距

if(hc==0){endcount=120;count=0;}

else{endcount=30;count=0;}

p3_7=0;

do{}while(count

}

/***发送数据码********************************************/

shuju=keyvalue;

for(s=0;s<=7;s++)

{

endcount=30;count=0;//发送公共的0.56ms高电平

p3_7=1;

do{}while(count

hc=shuju&wy[s];//发送脉冲间距

if(hc==0){endcount=30;count=0;}

else{endcount=120;count=0;}

p3_7=0;

do{}while(count

}

/***发送数据反码******************************************/

shuju=keyvalue;

for(s=0;s<=7;s++)

{

endcount=30;count=0;//发送公共的0.56ms高电平

p3_7=1;

do{}while(count

hc=shuju&wy[s];//发送脉冲间距

if(hc==0){endcount=120;count=0;}

else{endcount=30;count=0;}

p3_7=0;

do{}while(count

}

红外编码子程序

//===========================================================

//函数名称:

voidintr0_int()

//函数功能:

外中断0中断服务函数

//===========================================================

voidintr0_int()interrupt0using2//外中断0用于判断脉冲个数

{

if(!

First_INT)//第一次外中断来时设置

{

time=0;

TR0=1;

First_INT=1;

}

else

{

if(time>330)//判断起始码,起始码来时设置&&time<700

{

Star_Flag=1;

CodeNum=0;

time=0;

}

elseif(Star_Flag==0)//没有接收到起始码,放弃

{

First_INT=1;

time=0;

}

if(Star_Flag&&time!

=0)//开始接收

{

if((time>=30)&&(time<60))Code[CodeNum]=0;//计数值设置

elseif((time>=100)&&(time<150))Code[CodeNum]=1;//计数值设置

time=0;//计数值清零,以对下一个脉冲宽度进行计时

CodeNum++;//码字计数器加1

if(CodeNum>=33)//脉冲个数判断,共32个

{

TR0=0;

CodeNum=0;

Star_Flag=0;

First_INT=0;

flag=1;

}

}

}

}

LCD1602初始化程序

//=========================

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2