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

发表于 讨论求助 2022-04-13 16:04:29

智能马达保护器

  介绍

  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人 签到看排名