- 8
- 0
- 约5.87千字
- 约 10页
- 2017-01-12 发布于重庆
- 举报
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)