基于单片机的红外遥控系统设计.doc
《基于单片机的红外遥控系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的红外遥控系统设计.doc(25页珍藏版)》请在冰点文库上搜索。
天津理工大学
课程设计
基于单片机的红外遥控系统设计
学院:
计算机与通信工程学院
专业:
通信工程
班级:
通信11-3班
姓名:
学号:
摘要
本设计采用51单片机作为遥控发射接收芯片,HS003B作为红外一体化接收发射管,在此基础上设计了一个简易的智能红外遥控系统。
系统包括接收和发射两大部分,发射部分有16个按键,接收部分含有8盏彩色LED灯、一片二位数码管和蜂鸣器系统。
发射部分通过键盘扫描判断哪个键被按下,经过单片机编码程序进行编码,控制红外发射电路发送信号。
接收部分解码信号,实现相应的输出。
本设计方案结合红外遥控设计简单、作方便、成本低廉等特点。
关键字:
红外遥控信号调制编码解码
目录
摘要 II
1.绪论 1
1.1课题目的和意义 1
1.2红外线简介 1
1.3红外遥控系统简介 1
2课题方案和设计思路 2
2.1总体方案 2
2.2红外发射器设计 3
2.2.1红外发射器原理 3
2.2.2红外编码 3
2.3红外接收端设计 4
3硬件结构设计与介绍 5
3.1AT89C51系列单片机功能特点 5
3.1.1主要特性 5
3.1.2管脚说明 5
3.1.3基本电路 7
3.2红外发射电路 8
3.3红外接收电路设计 9
3.3.1红外接收模块 9
3.3.2数码管 9
3.3.3彩灯系统 10
3.3.4蜂鸣器系统 11
3.3.5红外接收端电路图 12
4软件设计 12
4.1定时/计数器功能简介 12
4.2遥控码的发射 13
4.3红外接收 14
5.课程设计总结和心得 15
参考文献 16
附录 17
附录1Proteus仿真图 17
附录2发射程序 17
附录3接收程序 20
21
课程设计
1.绪论
1.1课题目的和意义
随着科技的发展,人们生活的节奏也越来越快,随之人们对方便,快捷的要求也随之不断增高。
遥控器的出现,在一定程度上满足了人们这个要求。
遥控器是由高产的发明家RobertAdler在五十年代发明的[1]。
而红外遥控是20世纪70年代才开始发展起来的一种远程控制技术,其原理是利用红外线来传递控制信号,实现对控制对象的远距离控制,具体来讲,就是有发射器发出红外线指令信号,有接收器接收下来并对信号进行处理,最后实现对控制对象的各种功能的远程控制。
红外遥控具有独立性、物理特性与可见光相似性、无穿透障碍物的能力及较强的隐蔽性等特点。
随着红外遥控技术的开发和迅速发展,很多电器采用该项技术,使人们的生活更加便捷。
本小组通过红外遥控技术来控制多盏彩灯的亮灭情况,实现各种花型以及数码管的数值显示。
通过本课题的设计,更好的理解红外线的编码解码方式及其红外遥控系统的其他工作原理。
1.2红外线简介
红外线又称红外光波,在电磁波谱中,光波的波长范围为0.01um~1000um。
根据波长的不同可分为可见光和不可见光,波长为0.38um~0.76um的光波可为可见光,依次为红、橙、黄、绿、青、蓝、紫七种颜色。
光波为0.01um~0.38um的光波为紫外光(线),波长为0.76um~1000um的光波为红外光(线)。
红外光按波长范围分为近红外、中红外、远红外、极红外4类。
红外线遥控是利用近红外光传送遥控指令的,波长为0.76um~1.5um。
用近红外作为遥控光源,是因为目前红外发射器件(红外发光管)与红外接收器件(光敏二极管、三极管及光电池)的发光与受光峰值波长一般为0.8um~0.94um,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性。
1.3红外遥控系统简介
红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成,遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。
遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。
使用遥控器作为控制系统的输入,需要解决如下几个关键问题:
如何接收红外遥控信号;如何识别红外遥控信号以及解码软件的设计、控制程序的设计。
红外遥控是单工的红外通信方式,整个通信中,需要一个发射端和一个接收端。
发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。
红外接收端普遍采用价格便宜,性能可靠的一体化红外接收头接收红外信号,它同时对信号进行放大、检波、整形,得到TTL。
2课题方案和设计思路
2.1总体方案
红外遥控系统一般由红外发射装置和红外接收设备两大部分组成,图2为所示为结构框图。
VCC
INTO
AT89C51
GND
+5V
红外接收器(一体化接收器)
Vcc
红外发射电路
(遥控键盘)
OUT
图2-1系统结构框图
红外发射装置又由键盘电路、红外编码芯片、电源和红外发射电路组成。
红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。
2.2红外发射器设计
2.2.1红外发射器原理
由于指令数据时间周期较长,信号频率很低,直接发射传送效率和距离受限,抗干扰性差,因此,必须采用二次调制方式,将指令数据通过载波信号进行调制,形成较高频率的复合信号,在通过红外发射二极管产生红外线发射出去。
键盘
编码
调制
红外发射
38KHz载波发生器
图2-2红外遥控发射原理框图
2.2.2红外编码
红外编码有很多种方式,本课题采用脉冲宽度调制方案,这种遥控码具有以下特征:
以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。
波形如下图。
位“0”位“1”
0.56ms0.56ms
1.125ms2.25ms
图2-3位“0”和位“1”波形图
在此介绍较普遍使用的NEG标准。
其数据格式包括引导码、用户码、数据码和数据反码,编码共占32位。
数据反码是数据码反相后的编码,编码用于对数据的纠错。
9ms4.5msC0-C7C0’-C7’D0-D7D0’-D7’
起始引导码用户码用户码数据码数据码
8bit8bit8bit8bit
13.5ms18-36ms27ms
58.5-76.5ms
图2-4数据格式
2.3红外接收端设计
接收端主要包括红外接收模块和解调单片机。
其中,红外线接收模块包括光电转换放大器和解调电路。
当红外线发射信号进入模块后,在其输出端得到原先的数字控制编码,再经过单片机解码程序进行解码,便知按下那个键,实现相应输出。
P0.0连接蜂鸣器系统,每成功接收到信号,蜂鸣器发出一声响声。
P1口连接8盏彩灯,接收数据不同彩灯的花色不同,P2口、P3.0和P3.1连接一片二位数管,数码管显示从01到16的数值,分别对应发射部分的16个按键。
红外接收端
数码管显示
AT89C51
蜂鸣器系统
8盏LED彩灯
+5V电源
图2-5接收部分原理框图
3硬件结构设计与介绍
3.1AT89C51系列单片机功能特点
3.1.1主要特性
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3.1.2管脚说明
—VCC:
供电电压。
—GND:
接地。
—P0口:
P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
—P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
—P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
—P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2(外部中断0)
P3.3(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6(外部数据存储器写选通)
P3.7(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
—RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
—:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
—:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期两次有效。
但在访问外部数据存储器时,这两次有效的信号将不出现。
—:
当保持低电平时,访问外部ROM;注意加密方式1时,将内部锁定为RESET;当端保持高电平时,访问内部ROM。
在FLASH编程期间,
此引脚也用于施加12V编程电源(VPP)。
—XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
—XTAL2:
来自反向振荡器的输出
3.1.3基本电路
在XTAL1和XTAL2之间接一只石英振荡晶体构成了单片机的时钟电。
AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。
当振荡电路工作,并且在RST引脚上加一个至少保持2个机器周期的高电平时,就能使AT89C51完成一次复位。
复位不影响RAM的内容。
复位后,PC指向0000H单元,使单片机从起始地址0000H单元开始重新执行程序。
所以,当单片机运行出错或进入死循环时,可按复位键重新启动。
MCS-51单片机通常采用上电自动复位和按钮复位两种复位方式。
上电复位利用电容器充电来实现。
按钮复位又分为按钮电平复位和按钮脉冲复位。
前者将复位端通过电阻与Vcc相接;后者利用RC微分电路产生正脉冲来达到复位目的。
复位电路参数的选择应能保证复位高电平持续时间大于2个机器周期。
图3-1AT89C51基本电路
3.2红外发射电路
本遥控发射器采用脉冲宽度调制红外遥控方式,脉冲宽度调制红外遥控就是指令信号产生电路以不同的脉冲编码代表不同的控制指令。
在确定选择AT89C51作为本设计发射电路核心芯片和点触式开关作为控制键后,加上一个简单红外发射电路和12M晶体震荡器便可实现红外发射。
发射部分的主要元件为红外发光二极管。
它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。
目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通Φ5发光二极管相同,只是颜色不同[6]。
遥控发射通过键盘,每按下一个键,即产生具有不同的编码数字脉冲,这种代码指令信号调制在38KHz的载波上,激励红外光二极管产生不同的脉冲,通过空间的传送到受控机的遥控接收器。
P1口作为按键部分,P3.6口作为发射部分。
独立式键盘可工作在查询方式下,通过I/O口读入键状态,当有键被按下时I/O口变为低电平,而未被按下的键对应为高电平,这样通过读电平状态可判断是否有键按下和哪个键被按下。
图3-2红外发射端电路
3.3红外接收电路设计
3.3.1红外接收模块
HS003B是一种常见的红外接收模块。
红外接收模块内部含有高频的滤波电路,专门用来滤除红外合成信号的载波信号(38KHz),并送出接收到的信号。
模
块有3个引脚;引脚1(GND)为接地端;引脚2(VCC)为为电源正极;引脚3
(OUT)为数字信号输出端。
123
图3-3HS003B红外接收模块
3.3.2数码管
表3-1七段LED字形码
显示字符
共阳极
字符码
共阴极
字符码
0
3FH
C0H
1
06H
F9H
2
5BH
A4H
3
4FH
B0H
4
66H
99H
5
6DH
92H
6
7DH
82H
7
07H
F8H
8
7FH
80H
9
6FH
90H
图3-4二位数码管显示器
设计中用到型号为7SEG-MAX2-CA-BLUE的二位共阳极数码管显示器。
它的左下侧的ABCDEFGDP是LED数码管显示器的I/O口,是段选信号,右下侧的12是它的位选信号,就是从左到右分别是第一位到第二位,段选信号与位选信号分别接到单片机的不同输出口,例如段选信号可以接到P2口,位选信号可以接到P3.0口和P3.1口,共阳极的字形显示代码为:
unsignedchar[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90},P3.0输出为0,P3.1输出为1时,选中第二位,段选信号就执行从0到9的显示,P3.0输出为1,P3.1输出为0时,选中第一位,段选信号就执行从0到9的显示。
3.3.3彩灯系统
P1口连接8盏彩灯,P1.0和P1.4连接的是LED-RED,P1.1和P1.5连接的是LED-YELLOW,P1.2和P1.6连接的是LED-GREEN,P1.3和P1.7连接的是LED-BLUE。
根据接收到的信号显示不同的花型。
图3-5彩灯系统连接图
3.3.4蜂鸣器系统
P0.0连接蜂鸣器系统,每成功接收到信号,蜂鸣器发出一声响声。
图3-6蜂鸣器系统连接图
3.3.5红外接收端电路图
图3-7红外接收端电路图
4软件设计
4.1定时/计数器功能简介
AT89C51单片机内部设有两个16位可编程的定时/计数器,简称定时器0和定时器1,分别用T0和T1表示。
其功能同一般定时计数器,主要作用是:
第一,作为一段特定时间长短的定时;第二,可以计算由T1或T0引脚输入的脉冲数,前者在应用上可以产生正确的时间延迟及定时去执行中断服务程序,而后者则是计数器或者计频器的设计。
这两个定时器本身有四种工作模式可供使用,如表2所示。
表4-1四种工作模式
M1MO
工作方式
功能说明
00
模式0
13位计数器
01
模式1
16位计数器
10
模式2
8位自动重装计数器
11
模式3
定时器0:
分成两个8位计数器
定时器1:
停止计数
4.2遥控码的发射
当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成38kHz方波由红外线发光管发射出去[13]。
通常,红外遥控是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。
为了提高抗干扰性能和降低电源消耗,将上述的遥控编码脉冲对频率为38KHz(周期为26us)的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。
红外信号发射过程:
首先发射9ms高电平和4.5ms低电平的引导码,再发送16位地址码的前8位,16位地址码的后8位,8位按键数据和8位按键数据反码。
在实践中,采用红外线遥控方式时,由于受遥控距离,角度等影响,使用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。
发射控制程序由主程序和键扫描程序、编码发送程序组成,在主程序中,采用键扫描子程序完成各个按键的功能,遥控发射主程序的流程图
开始
系统初始化(发送标志清零按键信息置位)
检测并获取按键值
发送按键
发送9ms起始码
发送4.5ms结束码
发送16位地址的前8位
发送16位地址的后8位
发送8位按键数据
发送8位按键数据反码
(a)红外发射主程序流程图(b)红外数据发送子程序流程图
图4-1红外发射端程序流程图
4.3红外接收
红外遥控解码程序主要工作为等待红外线信号出现,并跳过引导信号,搜集连续32位的编码数据,并存入内存的连续空间。
其位信号判别的原则是:
以判断各个位的波宽信号来决定高低信号(0或1)。
位解码原理如下:
1)解码为0:
高电平宽度0.56ms+低电平宽度0.56ms。
2)解码为1:
高电平宽度0.56ms+低电平宽度1.68ms。
编码数据读取后,经过单片机将编码数据与键盘代码进行比对,即可解调出具体的按键值,便可知按下哪个键,而做出相应的控制处理,完成红外遥控的动作。
初始化(开中断,显示初始化)
开始
接收到按键信息
实现相应控制输出
中断开始
接收到引导码
开始接收数据
数据码和数据反码是否相反
成功接收,保存数据
中断返回
Y
Y
N
N
Y
(a)红外接收主程序流程图(b)红外接收中断子程序流程图
图4-2红外接收端程序流程图
5.课程设计总结和心得
这次课程设计耗用了2个星期的心血,从一开始的确定课题,到后来的资料查找、理论学习,再有就是调试和测试过程,这一切都使我的理论知识和动手能力进一步提高。
通过本次红外系统的设计,我大有收获。
从得到题目到查找资料,从proteus仿真的调试到失败后再一次全部重新开始……在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。
我在这个过程中深刻的感受到了做课程设计的意义所在。
这个课题的根本技术就是单片机控制技术,加部分外围电路来实现一些复杂的功能。
可以根据要求改变软件来实现功能的更新和扩展。
本课题的重点、难点是:
(1)考虑电路实现原理以及与单片机的接口;
(2)红外发送与接收技术;
通过完成本课题,我了解并掌握了红外遥控技术的基本理论知识,更深入的掌握单片机在实际电路中的开发和应用。
为以后从事单片机软硬件产品的设计开发打下了一定的基础,培养了从事产品研发的信心。
参考文献
[1]单片机原理与应用及C51程序设计,夏维成杨加国编著,清华大学出版社。
[2]C语言程序设计(第三版),谭浩强编著,清华大学出版社。
[3]单片机系