HT6221 发码的接收.docx

上传人:苏美尔 文档编号:8939275 上传时间:2021-01-26 格式:DOCX 页数:6 大小:49.13KB
返回 下载 相关 举报
HT6221 发码的接收.docx_第1页
第1页 / 共6页
HT6221 发码的接收.docx_第2页
第2页 / 共6页
HT6221 发码的接收.docx_第3页
第3页 / 共6页
HT6221 发码的接收.docx_第4页
第4页 / 共6页
HT6221 发码的接收.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《HT6221 发码的接收.docx》由会员分享,可在线阅读,更多相关《HT6221 发码的接收.docx(6页珍藏版)》请在三一文库上搜索。

1、HT6221 发码的接收HT6221 发码的接收文件编码:HA0040s简介:HT6221 的应用电路图如下:VDD 1.8V3.5V47F/16V330100pF100pF1k455kHzLEDceramicresonator981165X1X2LEDVDDDOUT7D706$VSSInfrared4780501051k 8C1 C2 C3 C4 C5 C6 C7 C8 R1 R2 R3 R4 AIN19 18 17 16 15 14 13 12 123420K1 K5 K9 K13 K17 K21 K25 K29K2 K6 K10 K14 K18 K22 K26 K30K3 K7 K11

2、K15 K19 K23 K27 K31K4 K8 K12 K16 K20 K24 K28 K32 1N4148 8HT6221 发码的接收HT6221 是 Holtek 公司生产的多功能编码芯片,采用 PPM(Pulse Position Modulation)进行编码,1.12ms为 0,2.24ms 为 1,如下图:Zero38kHzcarier0.56ms dataperiod(1.12ms)38kHzcarierOne dataperiod(2.24ms)每发送一个码,HT6221 会先送出一个 9ms 的头码和 4.5ms 的间隙,然后依次送出 16 位的地址码(18ms36ms)、

3、8 位数据码(9ms18ms)和 8 位数据反码,如下图:4.5ms0.56ms0.56msDOUT38kHz,33% dutycarier45ms63ms2.5ms2.5ms9ms (A0A15+D0D7+D0D7)9ms9ms108ms108ms本文主要介绍用 HT48R30A-1 来进行解码的程序。HT6221 通过红外发射管发出信号,红外接收管接到 HT48R30A-1 的外部中断输入脚。;File name:6221receiver.asm;作者: KELVEN;说明: 程序开始时,先清除 RAM 区,然后打开主中断、外部中断及定时计数器中断。通;过计算中断之间的时间间隔来解码,当接

4、收到有效码后,会置标志位。在主程序中判;断标志位是否置位来判断有效码的接收。掩膜选择系统时钟为 4000kHz。include ht48r30a-1.inc; *; * Filename: 6221RECEIVER.asm*; * Function: DECODER HT6221*; * Microprocessor: HT48R30A-1*; * Crystal : 4MHz*; *data .section datacard_no0equ060h;card_no1equ061hcard_no2equ062hcard_no3equ063h;记录最终的数据tempequ07ehcintdb?;

5、记录收数据 bit 个数的变量HT6221 发码的接收countdb?count_bufdb?int_accdb?;中断保护变量right_toudbity_bitdbit;-code .section at 0000 codeorg 00hjmpstartorg04h;中断入口地址jmpdo_waiorg08hjmpdo_tmr;有 time 中断发生org20hstart:setpgc;中断口设为输入状态callinitmova, 81h;fsys/4 1Mmovtmrc, amova, 56movtmr, a;200s 中断一次mova, 6movintc, asettmrc.4;-sl

6、eep:setintc.0snzy_bit;判断是否有外部中断发生?jmpsleep;没有外部中断发生则继续等待calldecode_1;解码snzright_tou;解码不正确,返回重来jmpstartmova, cintsuba, 32;准备收数据的 bit 个数snzc;判断数据是否已收完jmpsleepclrtmrc;收码完毕clrintccplacard_no2xora, card_no3;校验所收码是否正确HT6221 发码的接收snzzjmperror1jmpstart;正确error1:jmpstart;错误;-do_wai :clrtmrc.4clrintc.0movint_

7、acc, a;入中断保护,push acc 值暂存mova, countmovcount_buf, aclrcountsety_bitover_int:mova, 56movtmr, amova, int_acc;pop acc 值settmrc.4setintc.0reti;-do_tmr:inccountreti;decode_1 procclrintc.0clry_bitsnzright_toujmpjudge_toumamova, count_bufsuba, 4snzcjmperror;data 值小于 200s*4=800s 判断错误mova, count_bufsuba, 13s

8、zcjmperror;data 值大于 200s*13=2.6ms 判断错误mova, count_buf;data 值大于 200s*8=1.6mssuba, 8;c=1, data=1;data 值小于 200s*8=1.6ms c=0, data=0rrccard_no3HT6221 发码的接收rrccard_no2rrccard_no1rrccard_no0inccint;记录收到的 BIT 位数reterror:clrcountclrright_touretjudge_touma:clrright_tou;头码判断 13.50msmova, count_bufsuba, 70;200

9、*70=14msszcret;头码大于 14ms 判断错误mova, count_bufsuba, 63;63*200=12.6mssnzcret;头码小于 12.6ms 判断错误setright_touretdecode_1 endp;Function : init;Purpose: clear ram value;Parameter:;Return:;Modified : acc, status;init procclrintc;清中断mova, 20hmovmp0, amova, 5fhmovtemp, aram_clr:;清 RAMclrr0incmp0sdztempjmpram_clrretinit endp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1