单片机控制系统的红外线遥控器接口介绍
扫描二维码
随时随地手机看文章
给单片机控制系统加两个红外线遥控接口,用手持红外遥控器来辅助或代替键盘的操作,给使用者带来了极大的方便。本节根据我们的实际开发经验,介绍红外线遥控发射接收芯片BA5048和BA5050的性能及其与51系列单片机系统的接口电路,给出软件识别键码的方法和汇编子程序。
1. 36.1 红外线遥控发射接收芯片BA5048和BA5050的特性
BA5048和BA5050是配对使用的红外线遥控发射接收芯片。BA5048是发射器,采用CMOS结构,功耗极低,工作电压范围宽(1.5~5.O V);内置振荡电路,外围电路也极为简单;具有18种功能及75种指令;可以单键触发、多键触发(最高达6键)。
BA5048引脚图:
BA5048的按键输入是由Kl-K6及Tl~T3组成的6×3矩阵构成的。K1~K6与Tl组合成的按键输出的是连续性信号,通过给Tl到K1~K6加编码二极管可实现63种按键编码。连续性信号的输出特点是,当有一连续性按键按下时,指令发射2次信号,每次信号的周期是20. 25 ms,2次信号之间相隔33.8 ms,然后有87.8 ms的暂停,之后另一周期开始直到按键抬起。K1~K6与T2~T3组合成的按键输出的是一次性触发信号,按一次键盘只对应一次输出。一次性触发信号的输出特点是,当有一次性触发按键按下时,指令仅发射2次信号,每次信号的周期是20. 25 ms,2次信号之间相隔33.8 ms,然后便停止。
信号每周期的发射指令是一串12位的字码,如图1 - 129所示。图中,C1~C3是代码位,不同型号的解码器对应不同的代码;H、Sl、S2对应Tl、T2、T3,表示连续信号或一次性触发信号;D1~D6对应K1~K6按键而成的6位信息码。
BA5050在接收信号时要连续接收2组发射信号,以确定信号是否正常。首先第一组信号的数码被存入片内的12位转换寄存器;然后,当接收到第二组信号码时,立即与转换寄存器中的数码进行比较,看其是否相同:如果不同,系统马上被重置;反之当所有接收码正常时,各相应的输出端就从低电平升到高电平。
为防止其他机型的干扰,BA5050提供CODE1和CODE2两个码位来核对发射器与接收器代码是否一致。只有当两种代码一致时,后面的数据位才有效产生相应的输出;否则不产生输出。
单脉冲输出引脚SP1~SP10在连续接收到两组信号后立即输出一个宽度为107 ms的正脉冲。持续脉冲输出引脚HP1~HP6只要接收到有效的连续信号,相应的输出端就保持高电平。当松开按键连续信号终止后,再过大约160 ms,输出才变为低电平。HP1~HP6能同时并行地输出高电平。反向电平输出引脚CP1和CP2,每当收到一次有效的信号时,输出端电平就反一下向。
BA5050对电视机、日光灯、节能灯等干扰具有极强的抑制能力。
1. 36.2 BA5050与单片机系统的接口电路
图1 - 132是BA5050与51单片机系统的接口电路。该电路用两个端口来处理接收到的键码数据。HPRO端口用来读取连续按键信号(HP1~HP6)和反转按键信号(CP1和CP2)。HP1~HP6可有63种排列组合,其键码值的范围是OIH~3FH。在实际应用系统中,一般将HP1~HP6的排列组合按键设置成各种功能按键,CP1与CP2设置成类似电源开关和静音等功能的按键。SPRO端口用来读取单次触发按键信号(SP1~SP10)。SP1~SP10信号是经过十进制编码电路加到端口的,因此没有SP键按下时,此端口读到的数据是10H;有SP键按下时,SP1~SP10对应键码是OOH~09H。在后面的子程序中已将它转化为OIH~OAH,在实际应用系统中,一般将它与1~9和0十个数字键对应。
以下是读取遥控器键码的子程序:连续性按键键码值存在50H;反向电平输出CP1和CP2状态存在51H;一次性触发按键键码存在52H。读者可根据50H、51H、52H的值和具体的应用系统,自己定义按键功能和编写键码的处理程序。其程序基本结构是判断键值后作相应的跳转处理。