2008届计算机与信息学院 计算机科学与技术专业
一.课程设计题目: 红外遥控开关
二.课程设计任务内容
1.课程设计的目的意义:
通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练: ⑴、调查研究、分析问题的能力;
⑵、使用设计手册、技术规范的能力; ⑶、查阅中外文献的能力; ⑷、制定设计方案的能力; ⑸、计算机应用的能力; ⑹、设计计算和绘图的能力; ⑺、技术经济指标的分析能力; ⑻、语言文字表达的能力。
2.本课题研究的主要内容:
设计一个多路红外遥控开关,利用市售彩电遥控器(以编码芯片LC7461为例),发送遥控器键盘数字信号,控制器接收解码,控制相应的输出。
基本要求:
⑴、设计实验电路(要求利用实验仪的硬件资源) ⑵、分析实验原理 ⑶、列出实验接线表
⑷、采用汇编语言编写实验程序 ⑸、通过实验验证功能的实现 ⑹、编写课程设计说明书
I
前言
红外遥控技术的出现,大大方便了人们的生活,而单片机技术的出现,给现代工业测控领域带来了一次新的革命。红外线遥控器具有体积小、功耗低、功能强、成本低等特点从而成为了当今非常流行的一种控制方式,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
红外遥控器是一种利用红外遥控系统来控制被控对象的系统.整个系统由数字电路和模拟电路两个部分组成。发射部分包括键盘矩阵、编码调制、红外发射器;接收部分包括红外接收、解调、解码电路。
关键字:红外遥控器,红外发射,红外接收,单片机
II
目 录
第一章 绪 论 ....................................................... 1 1.1 红外遥控技术简介 .............................................. 1 1.2 红外遥控技术特点 .............................................. 1 第二章 红外遥控系统设计方案 ........................................ 2 2.1 红外遥控系统框图 .............................................. 2 2.2 遥控发射器及其编码 ............................................ 2 2.3 红外接收器及解码 .............................................. 3 2.4 系统程序控制流程 .............................................. 4 2.5 技术难点 ...................................................... 4 第三章 红外遥控开关硬件系统设计 ................................... 5 3.1 处理芯片的选择 ................................................ 5 3.2 显示器件的选择 ................................................ 5 3.3 红外遥控发射器的选择 .......................................... 6 3.4 红外接收器的选择 .............................................. 6 第四章 红外遥控开关软件系统设计 .................................... 7 4.1 主控程序 ...................................................... 7 4.2 遥控发射部分 .................................................. 7 4.3 遥控接收解码部分 .............................................. 8 4.4 遥控接收处理部分 ............................................. 10 4.5 精确延时部分 ................................................. 10 第五章 设计调试 ................................................... 12 5.1 实验仪与机器的连接 ........................................... 12 5.2 硬件系统的调试 ............................................... 12 5.3 软件系统的调试 ............................................... 12 第六章 小结 ...................................................... 13 参考文献 .......................................................... 14 附录 (计算机程序清单) ........................................... 15
III
第一章 绪 论
目前市面上的遥控器很多,对于家电设备的控制,首选的就是红外遥控器,多功能红外遥控器是在普通红外遥控器的基础上,应市场需求而产生的,它能控制不同种类的设备,并且操作方便,深受人们的喜爱。
1.1 红外遥控技术简介
常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通φ5发光二极管相同,只是颜色不同。
接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。
由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。目前大多都采用成品红外接收头,有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38kHz这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用36 kHz、40 kHz、56 kHz等,一般由发射端晶振的振荡频率来决定。
1.2 红外遥控技术的特点
红外遥控的特点是不影响周边环境的、不干扰其他电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。
现在红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。
- 1 -
第二章 红外遥控系统设计方案
本学期学习了单片机技术,初步了解了80C51芯片的基本组成和基本功能,熟悉了其指令系统和中断系统以及接口设计技术。基于本学期学习的知识,设计了一个简单的红外遥控系统并将其实现。
2.1 红外遥控系统框图
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。
发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
2.2 遥控发射器及其编码
遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理。
当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:
图2 遥控码“0”和“1”
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms
- 2 -
的组合表示二进制的“0”;
以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。 上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射,7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。
图3 红外发射码
当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。
2.3 红外接收器及解码
解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。
根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。
LT0038是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
- 3 -
2.4 系统程序控制流程
系统控制采用中断服务程序来对接收到的信号进行解码,利用外部中断1,当接收到信号,触发中断进行解码,并将其按键信息显示在LED小灯上。
图0 系统程序流程
2.5 技术难点
本系统开发的技术难点主要在于对红外信号的解码方面,由于红外发射器发送的是一串不同脉宽的串行码,时间很短,需要有精准控制识别,对延时要有精准的把握。
- 4 -
第三章 红外遥控开关硬件系统设计
3.1 处理芯片的选择
该系统采用基本的89C51芯片即可满足需求, 4KB的ROM已经可以实现复杂的控制,128B的RAM也足够系统运行程序,32位的可编程I/O口可以满足系统的输入输出要求。 处理芯片选择AT89C51,它包含了 (1)一个8位的CPU;
(2)一个片没振荡器以及时钟电路;
(3)4K字节ROM程序存储器和128字节RAM数据存储器; (4)两个16位定时/计数器;
(5)可寻址64K 外部数据存储器和64K 外部程序存储器空间的控制电路; (6)32 条可编程的I/O 线(四个6 位并行I/O 端口); (7) 一个可编程全双工串行口;
(8) 具有五个中断源、两个优先级嵌套中断结构;
P1口是一带有内部上拉电阻的8位双向I/O口。
本次实验用到了P1.0,接一个发光二极管,用于显示系统开关状态; P1.1口,接蜂鸣器,用于提示用户系统开关;
P3口同时具有AT89C51的多种特殊功能,用到的端口有P3.2口,这个端口的第二功能如下表所示: 端口引脚 P3.2 3.2显示器件的选择
在单片机应用系统中,使用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活,与单片机接口方便。但是他们也是各有特点的:LED接口非常简单,不需要专用的驱动程序,在设计程序时也非常的简单;LCD显示的字比较丰富,也比较清楚,给人的感觉很好,但是他接口复杂。本红外遥控系统用LED指示灯来显示状态。 图2.2红外发光二极管
第二功能 INT0 (外部中断0) 表1 P3.2口的第二功能
- 5 -
3.3 红外遥控发射器的选择
本系统采用LC7461作为芯片的遥控器作为红外发射器。
图4 红外遥控器
3.4 红外接收器的选择
此LT0038红外线接收器是一种集红外线接收、放大、整形于一体的集成电路,只要将OUT口接入外部中断0口即P3.2口即可。
图5 红外接收器
- 6 -
第四章 红外遥控开关软件系统设计
4.1 主控程序
主控程序很简单,主程序主要是对软硬件环境进行初始化,如在中断服务入口地址添加跳转,跳转到所需要执行的中断服务程序、对所用到的P1,P2口进行初始化,设置外部中断0为下降沿触发,并开中断,然后循环等待外部中断。
实验代码如下:
ORG 0000H AJMP START ORG 0003H AJMP INT ;跳转到相应的中断服务程序 ORG 0030H START: SETB EA SETB IT0 SETB EX0 MOV P2,#0FFH MOV P1,#0FFH QQ: AJMP QQ ;等待中断
4.2 遥控发射部分
红外遥控信号的发射是由LC7461芯片组成发射电路嵌入在遥控器中,本设计的重点在于对它发射的红外信号进行解码识别,进而完成相应的控制。
其中发射部分程序固化在遥控器芯片中,当我们按键,会自动执行编码程序,并进行调制和发射。
本遥控发射器采用脉冲宽度调制方式,当不同的指令键被按下时,指令信号电路产生不同脉冲编码的指令信号,也就是进行编码,然后经调制电路调制,用不同的脉宽来区分“0”和“1”,产生连续42位二进制码 组,其中前26为用户识别码,能区别不同的红外遥控设备,后16位为8位的操作码和8位的操作反码用于区别按键,再由驱动电路驱动红外发射器发射 红外信号。整体过程如下:
指 令 键 指 令 编码 调 制 驱 动 红外发射 图3.1遥控发射部分过程图
- 7 -
4.3 遥控接收解码部分
接收部分的解码程序在中断服务程序中,程序流程图如下:
中断开始关中断检查5次都是低电平吗?是否中断结束引导码高电平来了吗?是否延时4ms地址码低电平来了吗?否延时882微秒是 高电平吗?否否接收“1”低电平吗?接收“0”否是26位地址码接收完毕了吗? - 8 -
计数器置为8操作码低电平来了吗?否延时882微秒是 高电平吗?否接收“1”低电平吗?接收“0”否是否存储到内存单元1AH,计数器减1存储满8位了吗?(计数器为0吗?)内存单元加一计数器置为816位操作码接收完了吗?是否中断结束两个内存单元的内容相等吗?是解码成功! - 9 -
4.4 遥控接收处理部分
当解码成功之后,内存单元1AH中存放的就是我们所按键的键值,根据键值我们查表取出控制字,可以转移到相应的控制程序,这里为了简便,用控制字开控制开关,当红色开关键时,调用FUNC_ON_OFF子程序来开关系统,当按下数字键时,对应的小灯会亮,如按键1,则第一个小灯亮。
一下是键值处理流程图:
取出1AH单元的内容,存入累加器A查表,是否与键值匹配?指向下一个字节,取出控制字指向下下个字节送到P2口,小灯亮中断结束
4.5精确延时部分
解码程序需要精确地延时,以避免因延时过长,导致解码失败。这里用到了两种延时,一个是1000微秒的延时,一个是882微秒的延时。
由于采用的是12MHZ的CPU芯片,根据每条指令执行的机器周期计算得出一下两个延时子程序。
- 10 -
YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒 D1:
MOV R5,#20 DJNZ R5,$ DJNZ R4,D1 RET
YS2: MOV R4,#2;延时程序3,精确延时1000微秒 D3: MOV R5,#248
DJNZ R5,$ DJNZ R4,D3 RET
- 11 -
第五章 设计调试
5.1 实验仪与计算机的连接
将实验仪与计算机通过串行口COM1进行连接,并进行相应的配置,设置波特率为57600,编写简单的程序,如果能够通过计算机对实验仪进行操作,可表示连接正确。可以往下进行试验。
5.2 硬件系统的调试
要检查我们要使用的一些硬件资源是否完好,是否可用。检查所用到的小灯,蜂鸣器是不是能够控制,检查P2口,P1口,P3口是不是能够控制输入输出,检查红外接收器是不是能够实现接收,检查P3.2口是不是能引发外部中断。
对于本试验要用到的遥控器,也要确定是否可用,是否能正确的发射红外信号。
通过简单的调试,确定所用资源都可用时,可接着进行软件系统的调试。
5.3 软件系统的调试
当编写好程序之后,运行不能达到所要的效果,就要检查是不是程序出了问题,通过设置断点,单步运行,了解程序的走向,找出出错的地方,进行修改。通过不断地试验修改,程序终于可以实现所预期的效果。
- 12 -
第六章 小结
通过这次课程设计,更加熟悉了单片机系统的使用,熟悉了接口技术的设计,以及汇编语言的使用。同时,通过这个简单红外遥控系统的实现,了解了红外遥控的原理,扩展了很多知识,也激发了对电子芯片、各种电子设备的浓厚的兴趣,也对汇编语言直接的编程方式感到很有意思。
当学了计算机组成之后,对计算机也只是有一种抽象的理解,知道计算机大致划分为哪几个部分,但还不了解其内在运行机制,而本学期通过简单的80C51单片机系统的学习,更加深刻的体会到了计算机运行机制,也更加深刻体验到了寻址方式、SFR以及片内片外控制机理,至于更深入的了解,还需要继续学习。
通过本次课程设计,收获最大的是兴趣,看着那一个个小小的芯片集成了那么多的功能,那些功能是怎么实现的呢,呵呵,那就要学习电路了咯。不过对于我们,只需要了解芯片的功能,引脚的作用就可以了,其他的都交给芯片去做好了。其实,是计算机内部信号的传递,和内部与外部的信号传递,也联系到了以前学到得数电知识。
总之,这次课程设计很有意义,提高了动手能力,解决问题的能力,期待着更深一步的学习。
- 13 -
参考文献
[1] 李华. MCS-51系列单片机实用接口技术. 北京: 航天航空大学出版社,1999
[2] 李朝青. 单片机原理及接口技术. 北京: 航天航空大学出版社,2010 [3] 《微型计算机及接口技术(基于51MCU)实验指导书》. 计算机与信息学院 2010年12月
- 14 -
附录 (计算机程序清单)
INT:CLR EA
MOV R6,#5 ;检测5次,确定是否按键
;延时882微秒
JB P3.2,EXIT DJNZ R6, WW
JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲 MOV R6,#4 DJNZ R6,EE
JB P3.2,$ ;等待随后的13位地址码的低电平
MOV R7,#26
JNB P3.2,$;等待地址码第一位的高电平信号 LCALL YS1
MOV C,P3.2;将P3.2引脚此时的电平状态0或1存入C中 JNC UUUA
LCALL YS2;高电平,延时1毫秒 WW:LCALL YS1
ORG 0000H AJMP START ORG 0003H AJMP INT ORG 0030H SETB EA SETB IT0 SETB EX0 MOV P2,#0FFH MOV P1,#0FFH
START:
QQ: AJMP QQ
EE: LCALL YS2 ;延时1毫秒
JJJJA:
UUUA:
- 15 -
DJNZ R7,JJJJA
MOV R1,#1AH MOV R2,#02H
MOV R3,#08H
PP: JJJJ:
JNB P3.2,$;等待地址码第一位的高电平信号 LCALL YS1
MOV C,P3.2 JNC UUU LCALL YS2 RRC A MOV @R1,A DJNZ R3,JJJJ INC R1
DJNZ R2,PP ;接收完8位数据码和8位数据反码,存放在1AH/1BH中 MOV A,1AH CPL A;
CJNE A,1BH,EXIT;如果不等表示接收数据发生错误,放弃
UUU: MOV A,@R1
;以下是控制部分!! CONTROL:
MOV A,1AH CLR C SUBB A,#01H JNZ XX
LCALL FUNC_ON_OFF LJMP EXIT CLR A
- 16 -
XX: JB P1.0,EXIT
; ; ; ;
MOV DPTR,#TAB CJNE A,1AH,YY INC DPTR CLR A
MOVC A,@A+DPTR MOV P2,A SJMP EXIT INC DPTR CLR A SJMP ZZ MOV R6,#03H
CLR P1.1 DJNZ R7,DD SETB P1.1 MOV P2,#0FFH DJNZ R7,FF
DJNZ R6,BB CPL P1.0 MOV P2,#0FFH RET
ZZ: MOVC A,@A+DPTR
YY: INC DPTR
FUNC_ON_OFF: BB: MOV R7,#07FH
DD: LCALL YS2
;SS: MOV R7,#0FFH ;: LCALL YS2
EXIT:
- 17 -
SETB EA RETI
YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒 D1:
MOV R5,#20 DJNZ R5,$ DJNZ R4,D1 RET
YS2: MOV R4,#2;延时程序3,精确延时1000微秒 D3: MOV R5,#248 TAB:
END
DB 11H,7FH DB 12H,0BFH DB 13H,0DFH DB 14H,0EFH DB 15H,0F7H DB 16H,0FBH DB 17H,0FDH DB 18H,0FEH DB 19H,0FCH DB 10H,0F8H DJNZ R5,$ DJNZ R4,D3 RET
- 18 -
因篇幅问题不能全部显示,请点此查看更多更全内容