介紹
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 可以根據(jù)需要設定為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
-
單片機
+關注
關注
6030文章
44491瀏覽量
632032 -
頻率
+關注
關注
4文章
1422瀏覽量
59103 -
蜂鳴器
+關注
關注
12文章
888瀏覽量
45840
發(fā)布評論請先 登錄
相關推薦
評論