HT47R20A-1 蜂鸣器(Buzzer)使用介绍

发表于 讨论求助 2023-07-01 10:15:37

电动机启动器

  介绍

  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

发表
26906人 签到看排名