介绍
HT47R20A-1 单片机提供了一对与PA0 及PA1 共用引脚的蜂鸣器输出,分别是BZ 及BZ.蜂鸣器的输出使能/除能及输出频率,均可由掩膜选项设定。
当蜂鸣器的功能被选定之后,用软件指令同时置位 PA0 和PA1 为"0"则启动蜂鸣器输出;如果置位PA0=1 则关闭此蜂鸣器;如果置位PA0=0 且PA1=1,则只有蜂鸣器BZ 输出,而蜂鸣器BZ被关闭。如下表所示:
蜂鸣器输出频率表:
注:System clock 为480kHz
对于 HT47C20L Clock Source 只能为32.768kHz
对于 HT47R20A-1 Clock Source 可以选择12KHz、T1 或32.768kHz
蜂鸣器(Buzzer)的使用
硬件部分: 将蜂鸣器接到 PA.0 和PA.1 引脚,如图:
掩膜设定:
蜂鸣器输出允许:BZ Output 设定为PA0/1: BZ/BZB Output Enable
蜂鸣器输出频率:BZ Freq 可以根据需要设定为Clock Source/22~Clock Source/29
软件部分:
下面的程序介绍了蜂鸣器(buzzer)的具体操作。
1.此程序先使BZ 和BZ非都有输出,声音较响;
2.然后关闭BZ非,使得只有BZ 输出,声音明显变低;
3.最后关闭BZ 和BZ非,蜂鸣器没有输出。
程序清单:
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.1 ;PA1=BZ非
clr pa.0 ;PA0=BZ
call delay ;延时
set pa.1 ;关闭BZ非 ,PA1=0,PA0=BZ
call delay ;延时
set pa.0 ;关闭BZ,PA1=0,PA0=0
call delay
jmp loop
;--------------------------------------
delay proc ;延时子程序
mov a,0a0h
mov count1,a
mov count2,a
d: sdz count1
jmp d
sdz count2
jmp d
ret
delay endp
全部0条评论
快来发表一下你的评论吧 !