HT47R20A-1红外载波输出(IR-carrier)使用介绍..docVIP

  • 8
  • 0
  • 约5.87千字
  • 约 10页
  • 2017-01-12 发布于重庆
  • 举报

HT47R20A-1红外载波输出(IR-carrier)使用介绍..doc

HT47R20A-1红外载波输出(IR-carrier)使用介绍.

HT47R20A-1 红外载波输出(IR-carrier) 使用介绍 HT47R20A-1 红外载波输出(IR-carrier) 使用介绍 文件编码:HA0035s 本文主要介绍 HT47R20A-1 红外载波输出(IR-carrier)的使用及注意事项。 介绍 HT47R20A-1 提供了一个与PA2 共用引脚的红外载波发射端口,可以由掩膜选择来决定。 当选择红外输出时,置PA2 为“0”(CLR PA.2)可以允许红外载波输出,置PA2 为“1”(SET PA.2)则禁止红外载波输出并且PA2 口输出为低电平。红外载波的输出频率为系统时钟的12 分频, 当系统频率为480kHz 时,载波频率为40kHz。 PA2 功能 0 (CLR PA.2) PA2=红外载波输出端 1 (SET PA.2) PA2=0 红外载波输出(IR-carrier)的使用 下面的程序介绍了红外载波输出的具体使用。此程序使PA2 口产生一个周期性的红外载波输出, 根据不同的编码规则,可以更改输出周期,从而达到数字信号传输的功能。 掩膜设定: 红外载波输出允许:IR output 设定为PA2 IR output enable 程序清单: include ht47r20a-1.inc data .section data count1 db ? count2 db ? code .section at 0 code org 00h jmp start ;------------------------------------------- org 20h start: clr intc0 clr intc1 loop: clr pa.2 ;红外载波输出允许 call delay ;延时 HT47R20A-1 红外载波输出(IR-carrier) 使用介绍 set pa.2 ;关闭红外载波输出 call delay ;延时 jmp loop ;------------------------------------------- delay proc ;延时子程序 mov a,04h mov count1,a mov count2,a d: sdz count1 jmp d sdz count2 jmp d ret delay endp 下面以具体例子来说明 IR 的发射与接收。 硬件电路: 发射电路 接收电路 用两个 HT47R20A-1 单片机来实现IR 的发射和接收。其编码方式为:1 位启始信号+8 位数据信 号。 数据传送协议和时序图如下: VDD 47p OSC1 OSC2 RES PA.2 47p 10kΩ 104 10kΩ 47p OSC1 OSC2 INT 47p 104 发射管 接收管 HT47R20A-1 红外载波输出(IR-carrier) 使用介绍 软件部分: 在掩膜选项中选择 PA2 IR output enable 1.IR 的发射: 数据信号的发射主要通过控制 IR 的开关状态来完成。以下程序能完成8bit 的信号的发送,其编 码为:1 位启始信号+8 位数据信号,并且循环发射。 include ht47r20a-1.inc data .section data SEND_DATA equ 12h ;要发送的数据 buffer db ? ;发送控制寄存器 count db ? ;发送bit 的位数控制 d_count db ? ;延时变量 code .section at 0 code org 00h jmp start org 04h reti org 08h reti 4.5ms 启始信号数据信号 9ms 8bit 0.56ms 0.56ms 0.56ms 1.68ms 数据传送 0 1 HT47R20A-1 红外载波输出(IR-carrier) 使用介绍 org 0ch reti org 10h reti ;--------------------------------- org 20h start: clr intc0 clr intc1 loop: clr pa.2 ;发送启始位 call delay1 ;延时9ms call delay1 set pa.2 call delay1 ;延时4.5ms mov a,08h ;总共发射一个字节 mov count,a mov a,SEND_DATA ;将数据送至控制寄存器 mov buffer,a clr c next_bit: rlc buffer ;从高位到低位发送 snz c jmp send_0 ;发送0 jmp send_1 ;发送1 back: sdz count ;发送返回 jmp next_bit jmp loop ;----------------

文档评论(0)

1亿VIP精品文档

相关文档