实例C.docx

上传人:b****4 文档编号:2961152 上传时间:2022-11-16 格式:DOCX 页数:26 大小:104.19KB
下载 相关 举报
实例C.docx_第1页
第1页 / 共26页
实例C.docx_第2页
第2页 / 共26页
实例C.docx_第3页
第3页 / 共26页
实例C.docx_第4页
第4页 / 共26页
实例C.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实例C.docx

《实例C.docx》由会员分享,可在线阅读,更多相关《实例C.docx(26页珍藏版)》请在冰豆网上搜索。

实例C.docx

实例C

实例C红外线遥控应用实例

红外线遥控成本低,安全可靠,不会产生电器干扰,因此,在家电设备及其他近距离的遥控中得到广泛应用。

本章将通过LED显示遥控器按键值实例、简易红外线遥控开关和红外线遥控七色小彩灯实例,介绍红外线遥控基本原理及其设计、应用方法。

C.1LED显示遥控器按键值

功能说明:

选用一种电视机遥控器,再利用接收模块结合单片机解码,控制P1端口所接的8个LED亮或灭。

因此,8个LED的亮或灭的状态,即是显示红外遥控器的按键值。

8个LED视为8位二进制数,其中LED亮视为0,LED灭视为1。

例如,按动红外遥控器按键1,8个LED中右边第一个灭,其他全亮,则表示二进制数为00000001B,转换成十六进制数为01H,即红外遥控器按键1的控制编码为01H;如果按动红外遥控器按键2,8个LED中右边第二个灭,其他全亮,表示二进制数为00000010B,转换成十六进制数为02H,即红外遥控器按键2的控制编码为02H。

再如,按动红外遥控器“POWER”键,8个LED中第2、5灭,其他全亮,表示二进制数为00010010B,转换成十六进制数为12H,即遥控器的POWER键控制编码为12H。

二进制数转换十六进制数的方法可以参考书后附录B的制式转换表。

C.1.1红外线遥控原理

1.红外线遥控系统结构

红外线遥控系统是由发射端和接收端两部分组成,如图C.1和C.2所示。

红外线发射端就是红外遥控器,主要包括键盘、编码调制芯片、红外线发射LED。

当按下某一按键后,遥控器上的编码调制芯片便进行编码,并结合载波电路的载波信号而成为合成信号,再经红外线发射二极管,将红外线信号发射出去。

图C.1红外线发射端工作方框图

图C.2红外线接收端工作方框图

红外线接收端主要包括红外线接收模块、解码单片机。

其中红外线接收模块里包括光、电转换放大器、解调电路。

当红外线发射信号进入接收模块后,在其输出端便可以得到原先的数字控制编码,再经过单片机解码程序进行解码,便可以得知按下了哪一按键,从而完成红外线遥控的动作。

2.编码方式与解码原理

红外线遥控器的编码与所使用的编码芯片有关,不同的芯片编码有所不同,但基本原理相似。

这里以SC9012芯片为例,说明遥控编码方式和解码原理。

SC9012一帧完整的发射码是由引导码、用户编码和键数据码3部分组成。

编码的格式如图C.3所示。

图C.3红外线发射码格式

引导码由一个4.5ms的高电平脉冲及4.5ms的低电平脉冲组成。

八位的用户编码被连续发送两次,八位的键数据码也被发送两次,第一次发送的是键数据码的原码,第二次发送的是键数据码的反码,所以,整个数据编码占用32位。

数据编码方式是通过脉宽调制来实现的,以脉宽为0.56ms,间隔为0.56ms,周期为1.125ms的组合表示二进制的“0”;以脉宽为0.56ms,间隔为1.69ms,周期为2.25ms的组合表示二进制的“1”,其接收端波形如图C.4和图C.5所示。

图C.4遥控码“0”波形图

图C.5遥控码“1”波形图

单片机解码的关键是如何识别“0”和“1”,从上面遥控码“0”和“1”的波形图中可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,即“1”的高电平宽度是“0”的高电平宽度的3倍。

如果延时0.56ms,若读到的电平为低,说明该位为“0”,反之则为“1”。

或者设计一精确的延时时间,例如以0.093ms延时时间当作基础时间,以调用基础延时时间的次数来计数实际的波形宽度,若读值为6表示波形宽度为0.56ms,若读值为18则表示波形宽度为1.68ms,因此,可以直接通过判断高电平的宽度的计数值是6或是18,来判断接收的原编码为0或1。

C.1.2硬件设计

红外线发射端采用市场上通用的一种红外遥控器(芯片为SC9012或TC9012系列等)。

接收端采用一体化红外接收头,红外接收头只有3个引脚:

引脚1为数字信号输出端(OUT),引脚2为接地端(GND),引脚3为电源输入(VCC)。

红外接收头与单片机连接非常简单,只需将信号输出端(OUT)与单片机一个I/O引脚连接(P3.2),然后接上电源即可。

单片机主要用于解码,P1端口所接的8个LED用来显示解码后红外遥控器的按键值。

单片机的P2.4引脚通过限流电阻R与三极管基极相接,三极管的集电极接有蜂鸣器,电路如图C.6所示。

图C.6红外线接收电路图

C.1.3程序设计

程序中,主程序通过调用解码子程序,将接收到的红外线遥控器信号进行解码,再调用遥控执行子程序,将解码后的按键值由LED显示出来。

所以,解码子程序是程序中的主要部分。

1.主要标号说明

MAIN:

主程序。

IR_IN:

解码子程序。

IR_ZX:

遥控执行子程序。

FS_SPK:

发声子程序。

DE:

短暂延时子程序。

DELAY05_R5:

延时子程序,总延时时间为0.5ms × R5。

DEL:

用于解码延时子程序,延时时间为0.093ms。

2.程序清单

汇编语言编写的LED显示红外线遥控器按键值源程序IR01.ASM代码如下:

01;---------------------------------------------------------------------

02;程序名:

IR01.ASM

03;程序功能:

显示红外遥控器按键值

04;---------------------------------------------------------------------

05;----------------------------程序初始化-------------------------------

06SPKEQUP2.4;压电喇叭信号输入位

07IRINEQUP3.2;红外线IR信号输入位

08;--------------------------

09IRDZEQU20H;解码数据放置起始地址

10DZ3EQU22H;比较第3字节

11

12;-------------------------------主程序-------------------------------

13

14MAIN:

15ACALLFS_SPK;调用发声子程序,响一声

16SETBIRIN;IR输入位设置为高电平

17LOOP:

18MOVR0,#IRDZ;设置IR解码起始地址

19ACALLIR_IN;调用解码子程序,解码

20ACALLIR_ZX;调用遥控执行子程序,执行动作

21JMPLOOP;继续循环执行

22

23;----------------------------解码子程序-------------------------------

24

25IR_IN:

;解码子程序

26;确认IR信号出现,避开9毫秒引导脉冲

27L1:

JNBIRIN,L2;等待IR信号出现

28JMPL1

29L2:

MOVR5,#17;避开9毫秒引导脉冲

30ACALLDELAY05_R5

31JBIRIN,L1;确认IR信号出现

32;-------------------------------

33L3:

JBIRIN,L4;等IR变为高电平

34ACALLDEL;调用0.093ms延时程序

35JMPL3

36L4:

MOVR3,#0;8位计数清为0

37;-------------------------------

38;避开低电平,待直接判断高电平

39L5:

JNBIRIN,L6;等IR变为低电平

40ACALLDEL;调用0.093ms延时程序

41JMPL5

42L6:

JBIRIN,L7;等IR变为高电平

43ACALLDEL;调用0.093ms延时程序

44JMPL6

45;-------------------------------

46;通过调用0.093ms延时次数的计数值来判断高电平的宽度,解码0或1

47L7:

MOVR2,#0;0.093ms计数清为0

48L8:

ACALLDEL;调用0.093ms延时子程序

49JBIRIN,L9;等IR变为高电平

50;-----------------------

51MOVA,#8;将A寄存器设置为8

52CLRC;清除借位标志C

53SUBBA,R2;以减法指令SUBB来判断高低位

54MOVA,@R0;R0值为解码内存地址,即取出内存数据给A

55RRCA;将借位标志C右移进入A

56MOV@R0,A;将数据写入内存

57INCR3;R3值加1,处理完一位

58CJNER3,#8,L5;需处理完8位

59;---------------------

60MOVR3,#0;计数清0

61INCR0;R0值加1

62CJNER0,#23H,L5;收集到4字节

63JMPL10

64L9:

INCR2;R2值加1

65CJNER2,#30,L8;计数过长离开

66L10:

67RET;子程序返回

68

69;---------------------------遥控执行子程序------------------------------

70

71IR_ZX:

;遥控执行子程序

72MOVA,DZ3;将第3字节数据赋予A

73MOVP1,A;显示二进制按键值

74ACALLFS_SPK;调用发声子程序,响一声

75RET

76

77;-------------------------------发声子程序----------------------------

78

79FS_SPK:

;发声子程序

80MOVR6,#0

81B1:

ACALLDE

82CPLSPK

83DJNZR6,B1

84MOVR5,#100

85ACALLDELAY05_R5

86RET

87

88;---------------------------短暂延时子程序----------------------------

89

90DE:

;短暂延时子程序

91MOVR7,#180

92DE1:

NOP

93DJNZR7,DE1

94RET

95

96;------------------------------延时子程序-----------------------------

97

98DELAY05_R5:

;延时子程序,总延时时间为0.5ms*R5

99MOVR6,#5

100D1:

MOVR7,#10

101DJNZR7,$

102DJNZR6,D1

103DJNZR5,DELAY05_R5

104RET

105

106;--------------------------解码延时子程序----------------------------

107

108DEL:

;用于解码延

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

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1