介绍
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 和都有输出,声音较响;
2.然后关闭,使得只有bz 输出,声音明显变低;
3.关闭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=
clr pa.0 ;pa0=bz
call delay ;延时
set pa.1 ;关闭 ,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