供应HT6221 SOP-20 (7.2mm)红外遥控解码芯片

地区:广东 深圳
认证:

深圳市广辉电子有限公司

银牌会员17年

全部产品 进入商铺

HT6221 遥控器芯片简介


一HT6221 遥控器芯片简介 

1. 特征

*工作电压: 1.8V~3.5V

* Dout 输出38KHz

*最小发射字:一个字

*一个455KHz的陶瓷或晶体

* 16位地址码

* 8位数据码

* ppm代码方式

*最大活动键HT6221: 32键

HT6222: 64键

2. 应用

*电视和录像录音机控制器

*夜盗警报系统

*烟火警报系统

*车门控制器

*汽车警报系统

*安全系统

*其它遥控系统

3. 概述

HT6221/HT6222

能编码16位地址码和8位数据码, HT6221/HT6222包含32键(K1 K32)和64键(K1 K64)

4.引脚图

-20 DIP/SOP

HT6221

HT6222

-24 DIP/SOP

7 DOUT 输出串行数据输出引脚, 38KHz发射频率

8 VDD 输入1.8V 3.5V

9 DT 输入最重要数据位(DT)代码设置

10 X2 输出455KHz振荡器输出

11 X1 输入455KHz振荡器输入

12 VSS 输入

13 LED 输出 发射输出

14 21 C8 C1   输入/输出   键盘列控制

22 AIN  输入低8位地址码输入

23 24 R1 R2   输入键盘行控制,高电平有效

7. 内部连接应用电路

二代码的特征

1 HT6221 键码的形成当一个键按下超过36ms振荡器使芯片激活如果这个键按下且延迟大约108ms,这108ms发射代码由一个起始码9ms ,一个结果码4.5ms ,低8位地址码9ms~18ms ,高8位地址码9ms~18ms ,8位数据码9ms~18ms和这8位数据的反码9ms~18ms组成如果键按下超过108ms仍未松开接下来发射的代码连发代码将仅由起始码9ms和结束码2.5ms组成2代码格式以接收代码为准接收代码与发射代码反向位定义单发代码格式连发代码格式注代码宽度算法16位地址码的最短宽度1.12 16=18ms,16位地址码的最长宽度2.24ms 16=36ms易知8位数据代码及其8位反代码的宽度和不变1.12ms+2.24ms 8=27ms,32位代码的宽度为18ms+27ms ~(36ms+27ms),

三解码方法及软件说明

0.56ms

data period(1.12ms)

1

0.56ms

data period(2.24ms)

2.5ms

9ms

32 (4.5ms~63ms)

(A0~A15+D0~D7+D0~D7)

4.5ms

9ms

解码的关键是如何识别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左右均可

2,根据码的格式应该等待9ms的起始码和4.5ms的结果码完成后才能读码

3从上述两点我们可得到解码程序的流程图,这样接收到的仅仅是普通的代码,要得到标准的键值还必须进行代码识别和代码,转换下面是从代码接收到获得标准值的子程

KREM

与接收头相连的I/O

1AH,1BH,1CH,1DH

存放代码的4

个连续单元

YAO_KONG: CLR EA

JNB KREM,REMOT1

SJMP REM_BAK

平时KREM

为高电平

所以当KREM=1

表示无键按下,应立即返回

REMOT1: JNB KREM,$

等待9ms

的起始码发送完

MOV R2,#32 32

表示代码共32位,也可以送24

这样

KREM=0

Y

9ms

6ms,

N

Y 6ms

0.9ms

( ),

32

N

接收到的24位码将不包括数据代码的反代码

;-----------------------------------------

代码接收

BYTE1: MOV R3,#250

BYTE2: MUL AB

延时约6ms

可以稍长或稍短但不能小于4.5ms也不能太长,太长连击时将影响程序运行速度

JNB KREM,BYTE3;

DJNZ R3,BYTE2 ;

由于结果码为4.5ms,如果小于4.5ms结果码未发送完读得的码值将出错

˝

BYTE3: JNB KREM,$ ;

等待高电平,保证读每一位的起点一致

˝

;-----------------------------------------------

MOV R3,#150

DJNZ R3,$ ;

延时0.9ms

延时范围为0.56ms~1.12ms

;----------------------------------------

MOV C,KREM

MOV R3,#4

MOV R0,#1DH

BYTE4: MOV A,@R0

RLC A

MOV @R0,A

DEC R0

DJNZ R3,BYTE4

DJNZ R2,BYTE1

;

至此32位代码已全部接收完成,并存放在1AH~1DH中,依次为低8位地址码,高8位地址码8位数据码,8位数据的反代码

;----------------------------------------------------

˝ ;

代码识别

MOV A,1AH

XRL A,#03 ;3

为地址低8位的值对于不同的遥控器有不同的地址值

JNZ REM_BAK

MOV A,1BH

XRL A,#0FCH ;FCH

为地址高8

位的值

JNZ REM_BAK

MOV A,1CH

CPL A

XRL A,1DH

如果地址码不对或接收到的数据码两单元不反向均当错码本程序当无键按下处理


JNZ REM_BAK

;--------------------------------------------

代码转换

MOV R2,#21 21

为遥控器面板按键数

MOV DPTR,#TAB_REMOT

LOOKUP_1: MOV A,R2

MOVC A,@A+DPTR

XRL A,1CH

JZ REM_BAK0

DJNZ R2,LOOPUP_1

REM_BAK0: MOV A,R2 R2

中的值即为标准的键值

SJMP END_YK

REM_BAK: CLR A

END_YK: SETB EA

RET

;=====================================================================

代码转换表表中的值为面板上相应键的代码,对于不同的遥控器表中的值应做相应的改变

TAB_REMOT:

DB 00H

; VCD DVD AUX TUNER ST/M TSV-4 6

DB 0C0H, 0D0H, 0E8H, 0F0H, 0E0H, 0C8H

; UP DOWN FM/AM MEMORY A/B 11

DB 00H, 20H, 48H, 68H, 58H

; 6 17

DB 0D8H, 0F8H, 40H, 60H, 50H, 70H

; AUTO VOL+ VOL- MUTE 21

DB 28H , 10H , 30H , 78H

;=================================================================

说明:

此程序可在需要的地方任意调用LCALL YA0_KONG返回后,累加器中的值即为标准的键值,如果A=0则不予处理,可能原因有无键按下错码或非本机所用的遥控器的操作,程序中的延时均以4MHz的晶振为准若用不同的晶振,只需改变相应值符合注释中的延时时间即可

4从上述解码过程我们不难发现对于连发代码,解码得的值1AH~1DH,全为0FFH,所以软件如果需要处理连击,我们只须在代码识别前判断1AH~1DH是否全为0FFH,是则有连击现象这样建一个连击标志再返回,软件根据这个标志,结合上一次读得的键值便可进行相应的连击操作,直到按键松开连击标志才被清除,具体操作如下

在代码识别前插入

MOV A,1AH

ANL A,1BH

ANL A,1CH

ANL A,1DH

XRL A,#0FFH

JNZ DAN_JI

SETB FLAG_LIANJI ;

建连击标志

SJMP END_YK

DAN_JI: NOP

另外子程的最后几条指令改成

REM_BAK0: MOV A,R2

SJMP END_YK0

REM_BAK: CLRA

END_YK0: CLR FLAG_LIANJI ;

清连击标志

END_YK: SETB EA

RET

 

四应用实例

读者也许会问只要解得遥控器的代码就可以了转换成1~n标准值有什么优点呢?看了后面的简单实例不难发现它有如下好处,在应用系统中带遥控器的仪器一般都带按键而且二者功能相同,转换成标准值后,遥控按键散转表格可以与键盘散转表格复用。这样能节省一定的空间,HT622 1/2最大可支持32或64个按键,一般系统只使用其中的一部分,这样可能会使遥控器按键的代码毫无规律为了处理这样的代码。软件人员要么想方设法通过复杂的算法找出那些代码不是规律的规律,要么干脆不管那么多排列,一大堆CJNE A #DATA NEXT指令判断,使键值判断变得拖沓冗长,使用前述方法则清楚明了简单易行,对于不同的遥控器,本程序只要改变代码转换表即可,对再开发大有益处 。

型号/规格

HT6221

品牌/商标

HT