51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
HT6221/2解码成标准的键值
发布时间:2009/6/29  阅读次数:2463  字体大小: 【】 【】【
  
四.应用实例
读者也许会问,只要解得遥控器的代码就可以了,转换成1~n标准值有什么优点呢?看了后面的简单实例,不难发现它有如下好处:
①.             在应用系统中,带遥控器的仪器,一般都带按键,而且二者功能相同,转换成标准值后,遥控按键散转表格可以与键盘散转表格复用,这样能节省一定的空间。
②.             HT622 1/2最大可支持32或64个按键,一般系统只使用其中的一部分,这样可能会使遥控器按键的代码毫无规律,为了处理这样的代码,软件人员要么想方设法通过复杂的算法找出那些代码不是规律的规律,要么干脆不管那么多,排列一大堆“CJNE A,#DATA,NEXT”指令判断,使键值判断变得拖沓冗长。使用前述方法则清楚明了,简单易行。
③.             对于不同的遥控器,本程序只要改变代码转换表即可,对再开发大有益处。
  
1.实例电路
程序清单及说明:
KREM               EQU         P0.0
L1           EQU         P1.0
L2           EQU         P1.1
L3           EQU         P1.2
L4           EQU         P1.3
L5           EQU         P1.4
L6           EQU         P1.5
L7           EQU         P1.6
L8           EQU         P1.7
L9           EQU         P3.4
L10         EQU         P3.5
L11         EQU         P3.6
L12         EQU         P2.0
L13         EQU         P2.1
L14         EQU         P2.2
L15         EQU         P2.3
L16         EQU         P2.4
L17         EQU         P2.5
L18         EQU         P2.6
L19         EQU         P2.7
L20         EQU         P0.6
L21         EQU         P0.5
;-----------------------------------------
  
  
ORG         0000H
AJMP               START0
ORG         0030H
START0:                 MOV         SP,#60H
START:                   ACALL     YAO_KONG                       ;调用解码子程
JZ           START
;----------------------------------------
RL           A
MOV         DPTR,#TAB_KEY
JMP         @A+DPTR
;---------------------------------------
TAB_KEY:                       AJMP               START
AJMP               KEY1
AJMP               KEY2
AJMP               KEY3
AJMP               KEY4
AJMP               KEY5
AJMP               KEY6
AJMP               KEY7
AJMP               KEY8
AJMP               KEY9
AJMP               KEY10
AJMP               KEY11
AJMP               KEY12
AJMP               KEY13
AJMP               KEY14
AJMP               KEY15
AJMP               KEY16
AJMP               KEY17
AJMP               KEY18
AJMP               KEY19
AJMP               KEY20
AJMP               KEY21
;-------------------------------------
KEY1:                     ACALL     CLEAR_IO
SETB               L1
AJMP               START
;-------------------------------------
KEY2:                     ACALL     CLEAR_IO
SETB               L2
AJMP               START
;------------------------------------
KEY3:                     ACALL     CLEAR_IO
SETB               L3
AJMP               START
;-----------------------------------
KEY4:                     ACALL     CLEAR_IO
SETB               L4
AJMP               START
;----------------------------------
KEY5:                     ACALL     CLEAR_IO
SETB               L5
AJMP               START
;----------------------------------
KEY6:                     ACALL     CLEAR_IO
SETB               L6
AJMP               START
;----------------------------------
KEY7:                     ACALL     CLEAR_IO
SETB               L7
AJMP               START
;----------------------------------
KEY8:                     ACALL     CLEAR_IO
SETB               L8
AJMP               START
;----------------------------------
KEY9:                     ACALL     CLEAR_IO
SETB               L9
AJMP               START
;----------------------------------
KEY10:                   ACALL     CLEAR_IO
SETB               L10
AJMP               START
;----------------------------------
KEY11:                   ACALL     CLEAR_IO
SETB              L11
AJMP               START
;----------------------------------
KEY12:                   ACALL     CLEAR_IO
SETB               L12
AJMP               START
;----------------------------------
KEY13:                   ACALL     CLEAR_IO
SETB               L13
AJMP               START
;----------------------------------
KEY14:                   ACALL     CLEAR_IO
SETB               L14
AJMP              START
;----------------------------------
KEY15:                   ACALL     CLEAR_IO
SETB               L15
AJMP               START
;----------------------------------
KEY16:                   ACALL     CLEAR_IO
SETB               L16
AJMP               START
;----------------------------------
KEY17:                   ACALL     CLEAR_IO
SETB               L17
AJMP               START
;----------------------------------
KEY18:                   ACALL     CLEAR_IO
SETB               L18
AJMP               START
;----------------------------------
KEY19:                   ACALL     CLEAR_IO
SETB               L19
AJMP               START
;----------------------------------
KEY20:                   ACALL     CLEAR_IO
SETB               L20
AJMP               START
;----------------------------------
KEY21:                   ACALL     CLEAR_IO
SETB               L21
AJMP               START
;----------------------------------
CLEAR_IO:             MOV         P0,#0
MOV         P1,#0
MOV         P2,#0
MOV         P3,#0
RET
;------------------------------------
END
  
①       该程序是应用“HT6221解码成标准键值”的典型例子。KEY1、KEY2……KEY21分别表示不同的功能模块,也就是说根据解得的键值按照需要做具体的事。以示明显,。这里分别用L1、L2……L21共21个发光管代替程序要做的事,当不同的键按下时,对应的发光管亮,其余的管均灭。
②       如果读者有兴趣,不防一试。需要注意的是,实验前必须把你手上的遥控器的代码填在代码转换表的相应位置,代码的得来不难。在“代码识别”前设一断点,运行程序,按不同的键,程序运行到断点停下时,“1CH”单元的内容即为当前按键的代码。同时应该用1AH中的内容替换程序中的低8位地址“3”,1BH中的内容替换程序中高8位地址“0FCH”。如此做好后,便大功告成,这时有且只有你手上的遥控器可以控制发光管了。
  
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号