遥控ic-ht6221
HT6221/2 解码成
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的键值
本程序选自广州周立功单机发展有限公司音响单片机控制软件平台程序员李奇刚
一 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. 引脚图 R3 1 24 R2 R1 1 20 AIN R4 2 23 R1 R2 2 19 C1 R5 3 22 AIN R3 3 18 C2 R6 4 21 C1 R4 4 17 C3 R7 5 20 C2 DOUT 5 16 C4 R8 6 19 C3 VDD 6 15 C5 DOUT 7 18 C4 D7 7 14 C6 VDD 8 17 C5 X2 8 13 C7 D7 9 16 C6 9 C8 10 C7 X1 12 X2 15 10 LED 11 C8 VSS 11 X1 14 12 LED VSS 13 HT6221 -20 DIP/SOP
HT6222 -24 DIP/SOP 1
5. 方框图 X2 X1
Data Select DOUT Oscillator Divider & Buffer LED /24 Counter & Sync. Circuit Keyboard 1 of 24 Decoder R1 Matrix & Data Rom Gat... .... e R8 & Registers Circuit Binary Detector .... ...C1 C8 VDD VSS AIND7
6. 引脚说明
引脚号 引脚名称 描述 I/0
输入 键盘行控制, 高电平有效 1 6 R3 R8
输出 串行数据输出引脚, 38KHz 发射频率 7 DOUT V DD 输入 8 1.8V 3.5V
输入 最重要数据位(DT)代码设置 9 DT
输出 455KHz 振荡器输出 10 X2
455KHz 振荡器输入 输入 11 X1 V SS 输入 地 12
输出 发射输出 13 LED
输入/输出 键盘列控制 14 21 C8 C1
输入 低 8 位地址码输入 22 AIN
键盘行控制, 高电平有效 23 24 R1 R2 输入
7. 内部连接应用电路
CMOS IN/OUT CMOS IN/OUT CMOS IN CMOS IN CMOS OUT Pull-Low VDD Pull-Low VDD
OSCILLATOR
X1 X2 10M
EN
2
二 代码的特征
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 代码格式以接收代码为准接收代码与发射代码反向
位定义 0
0.56ms
data period(1.12ms)
1
0.56ms
data period(2.24ms)
单发代码格式
4.5ms
9ms 32 (4.5ms~63ms) (A0~A15+D0~D7+D0~D7)
连发代码格式 2.5ms
9ms
注 代码宽度算法 16 位地址码的最短宽度 1.12 16=18ms
位地址码的最长宽度 16 2.24ms 16=36ms
易知 8 位数据代码及其 8 位反代码的宽度和不变
1.12ms+2.24ms8=27ms 32 位代码的宽度为
18ms+27ms~(36ms+27ms)
三 解码方法及软件说明
3
1 解码的关键是如何识别0和1从位的定义我们可以发现01均以 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=0
9ms Y N 6ms,
Y 6ms
0.9ms
( ),
N 32
这样接收到的仅仅是普通的代码要得到标准的键值还必须进行代码识别和代
码转换下面是从代码接收到获得标准值的子程
KREM 与接收头相连的 I/O 口
1AH,1BH,1CH,1DH 存放代码的 4 个连续单元
YAO_KONG: CLR EA
JNB KREM,REMOT1
SJMP REM_BAK 平时 KREM 为高电平 所以当 KREM=1 时
表示无键按下 应立即返回
等待 9ms 的起始码发送完 REMOT1: JNB KREM,$
32 表示代码共 32 位 也可以送 24 这样 MOV R2,#32
4
接收到的24 位码将不包括数据代码的
反代码
;-----------------------------------------
代码接收
BYTE1: MOV R3,#250
延时约 6ms 可以稍长或稍短 但不能 BYTE2: MUL AB
小于 4.5ms 也不能太长 太长连击时
将影响程序运行速度
JNB KREM,BYTE3;
;由于结果码为 4.5ms,如果小于 4.5ms DJNZ R3,BYTE2
结果码未发送完 读得的码值将出错
?
BYTE3: JNB KREM,$ ;等待高电平 保证读每一位的起点一致
;-----------------------------------------------
MOV R3,#150
;延时 0.9ms 延时范围为 0.56ms~1.12ms DJNZ R3,$
;----------------------------------------
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
;3 为地址低 8 位的值 对于不同的遥控器 XRL A,#03
有不同的地址值
JNZ REM_BAK
MOV A,1BH
;FCH 为地址高 8 位的值 XRL A,#0FCH
JNZ REM_BAK
MOV A,1CH
CPL A
如果地址码不对或接收到的数据码两单元 XRL A,1DH
不反向均当错码 本程序当无键按下处理
5