HE6221红外遥控发送芯片.doc_第1页
HE6221红外遥控发送芯片.doc_第2页
HE6221红外遥控发送芯片.doc_第3页
HE6221红外遥控发送芯片.doc_第4页
HE6221红外遥控发送芯片.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HT6221/2解码成标准的键值李奇刚一HT6221遥控器芯片简介1.特征 * 工作电压: 1.8V3.5V * Dout输出38KHz * 最小发射字: 一个字 * 一个455KHz的陶瓷或晶体 * 16位地址码 * 8位数据码 * ppm代码方式* 最大活动键 HT6221: 32键HT6222: 64键2. 应用 * 电视和录像录音机控制器 * 夜盗警报系统 * 烟火警报系统 * 车门控制器 * 汽车警报系统 * 安全系统 * 其它遥控系统3. 概述HT6221/HT6222能编码16位地址码和8位数据码, HT6221/HT6222包含32键(K1K32)和64键(K1K64)4. 引脚图5. 方框图6. 引脚说明 引脚号引脚名称I/0描述16R3R8输入键盘行控制, 高电平有效7DOUT输出串行数据输出引脚, 38KHz发射频率8VDD输入1.8V3.5V9DT输入最重要数据位(DT)代码设置10X2输出455KHz振荡器输出11X1输入455KHz振荡器输入12VSS输入地13LED输出发射输出1421C8C1输入/输出键盘列控制22AIN输入低8位地址码输入2324R1R2输入键盘行控制, 高电平有效7. 内部连接应用电路二代码的特征1HT6221键码的形成当一个键按下超过36ms,振荡器使芯片激活,如果这个键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。2代码格式(以接收代码为准,接收代码与发射代码反向)位定义单发代码格式连发代码格式注:代码宽度算法:16位地址码的最短宽度:1.1216=18ms16位地址码的最长宽度:2.24ms16=36ms易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)8=27ms32位代码的宽度为(18ms+27ms)(36ms+27ms)三解码方法及软件说明1 解码的关键是如何识别“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:CLREAJNBKREM,REMOT1 SJMPREM_BAK;平时KREM为高电平,所以当KREM=1时,;表示无键按下,应立即返回REMOT1:JNBKREM,$;等待9ms的起始码发送完 MOVR2,#32;32表示代码共32位,也可以送24,这样;接收到的24位码将不包括数据代码的 ;反代码 ;-;代码接收BYTE1:MOVR3,#250BYTE2:MULAB;延时约6ms,可以稍长或稍短,但不能;小于4.5ms,也不能太长。太长连击时;将影响程序运行速度JNBKREM,BYTE3; DJNZR3,BYTE2;由于结果码为4.5ms,如果小于4.5ms,;结果码未发送完,读得的码值将出错BYTE3:JNBKREM,$;等待高电平,保证读每一位的起点一致;-MOVR3,#150DJNZR3,$;延时0.9ms,延时范围为0.56ms1.12ms;-MOVC,KREMMOVR3,#4MOVR0,#1DHBYTE4:MOVA,R0RLCAMOVR0,ADECR0DJNZR3,BYTE4DJNZR2,BYTE1;至此32位代码已全部接收完成,并存放在1AH1DH中,;依次为低8位地址码,高8位地址码,8位数据码,;8位数据的反代码;-;代码识别 MOVA,1AHXRLA,#03;3为地址低8位的值,对于不同的遥控器;有不同的地址值 JNZREM_BAKMOVA,1BHXRLA,#0FCH;FCH为地址高8位的值 JNZREM_BAKMOVA,1CHCPLAXRLA,1DH;如果地址码不对或接收到的数据码两单元;不反向均当错码,本程序当无键按下处理 JNZREM_BAK;-;代码转换MOVR2,#21;21为遥控器面板按键数MOVDPTR,#TAB_REMOTLOOKUP_1:MOVA,R2MOVCA,A+DPTRXRLA,1CHJZREM_BAK0DJNZR2,LOOPUP_1REM_BAK0:MOVA,R2;R2中的值即为标准的键值SJMPEND_YKREM_BAK:CLRAEND_YK:SETBEARET;=;代码转换表,表中的值为面板上相应键的代码;对于不同的遥控器,表中的值应做相应的改变TAB_REMOT: DB 00H;VCDDVDAUXTUNERST/MTSV-46DB0C0H,0D0H,0E8H,0F0H,0E0H,0C8H;UPDOWNFM/AMMEMORYA/B11DB00H,20H,48H,68H,58H ;12345617 DB0D8H,0F8H,40H,60H,50H,70H;AUTOVOL+VOL-MUTE21 DB28H ,10H ,30H ,78H;=说明:此程序可在需要的地方任意调用(LCALL YA0_KONG),返回后,累加器中的值即为标准的键值,如果A=0则不予处理(可能原因有:无键按下,错码或非本机所用的遥控器的操作),程序中的延时均以4MHz的晶振为准,若用不同的晶振,只需改变相应值,符合注释中的延时时间即可。4从上述解码过程我们不难发现,对于连发代码,解码得的值1AH1DH全为0FFH,所以软件如果需要处理连击,我们只须在代码识别前判断1AH1DH是否全为0FFH,是则有连击现象,这样建一个连击标志,再返回,软件根据这个标志,结合上一次读得的键值便可进行相应的连击操作,直到按键松开,连击标志才被清除。具体操作如下:在代码识别前插入MOVA,1AHANLA,1BHANLA,1CHANLA,1DHXRLA,#0FFHJNZDAN_JISETBFLAG_LIANJI;建连击标志SJMPEND_YKDAN_JI:NOP另外子程的最后几条指令改成REM_BAK0:MOVA,R2SJMPEND_YK0REM_BAK:CLRAEND_YK0:CLRFLAG_LIANJI;清连击标志END_YK:SETBEARET四应用实例读者也许会问,只要解得遥控器的代码就可以了,转换成1n标准值有什么优点呢?看了后面的简单实例,不难发现它有如下好处:在应用系统中,带遥控器的仪器,一般都带按键,而且二者功能相同,转换成标准值后,遥控按键散转表格可以与键盘散转表格复用,这样能节省一定的空间。HT622 1/2最大可支持32或64个按键,一般系统只使用其中的一部分,这样可能会使遥控器按键的代码毫无规律,为了处理这样的代码,软件人员要么想方设法通过复杂的算法找出那些代码不是规律的规律,要么干脆不管那么多,排列一大堆“CJNE A,#DATA,NEXT”指令判断,使键值判断变得拖沓冗长。使用前述方法则清楚明了,简单易行。对于不同的遥控器,本程序只要改变代码转换表即可,对再开发大有益处。1.实例电路程序清单及说明:KREMEQUP0.0L1EQUP1.0L2EQUP1.1L3EQUP1.2L4EQUP1.3L5EQUP1.4L6EQUP1.5L7EQUP1.6L8EQUP1.7L9EQUP3.4L10EQUP3.5L11EQUP3.6L12EQUP2.0L13EQUP2.1L14EQUP2.2L15EQUP2.3L16EQUP2.4L17EQUP2.5L18EQUP2.6L19EQUP2.7L20EQUP0.6L21EQUP0.5;-ORG0000HAJMPSTART0ORG0030HSTART0:MOVSP,#60HSTART:ACALLYAO_KONG;调用解码子程JZSTART;-RLAMOVDPTR,#TAB_KEYJMPA+DPTR;-TAB_KEY:AJMPSTARTAJMPKEY1AJMPKEY2AJMPKEY3AJMPKEY4AJMPKEY5AJMPKEY6AJMPKEY7AJMPKEY8AJMPKEY9AJMPKEY10AJMPKEY11AJMPKEY12AJMPKEY13AJMPKEY14AJMPKEY15AJMPKEY16AJMPKEY17AJMPKEY18AJMPKEY19AJMPKEY20AJMPKEY21;-KEY1:ACALLCLEAR_IOSETBL1AJMPSTART;-KEY2:ACALLCLEAR_IOSETBL2AJMPSTART;-KEY3:ACALLCLEAR_IOSETBL3AJMPSTART;-KEY4:ACALLCLEAR_IOSETBL4AJMPSTART;-KEY5:ACALLCLEAR_IOSETBL5AJMPSTART;-KEY6:ACALLCLEAR_IOSETBL6AJMPSTART;-KEY7:ACALLCLEAR_IOSETBL7AJMPSTART;-KEY8:ACALLCLEAR_IOSETBL8AJMPSTART;-KEY9:ACALLCLEAR_IOSETBL9AJMPSTART;-KEY10:ACALLCLEAR_IOSETBL10AJMPSTART;-KEY11:ACALLCLEAR_IOSETBL11AJMPSTART;-KEY12:ACALLCLEAR_IOSETBL12AJMPSTART;-KEY13:ACALLCLEAR_IOSETBL13AJMPSTART;-KEY14:ACALLCLEAR_IOSETBL14AJMPSTART;-KEY15:ACALLCLEAR_IOSETBL15AJMPSTART;-KEY16:ACALLCLEAR_IOSETBL16AJMPSTART;-KEY17:ACALLCLEAR_IOSETBL17AJMPSTART;-KEY18:ACALLCLEAR_IOSETBL18AJMPSTART;-KEY19:ACALLCLEAR_IOSETBL19AJMPSTART;-KEY20:ACALLCLEAR_IOSETBL20AJMPSTART;-KEY21:ACALLCLEAR_IOSETBL21AJMPSTART;-CLEAR_IO:MOVP0,#0MOVP1,#0MOVP2,#0MOVP3,#0RET;-END该程序是应用“HT6221解码成标准键值”的典型例子。KEY1、KEY2KEY21分别表示不同的功能模块,也就是说根据解得的键值按照需要做具体的事。以示明显,。这里分别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论