蜂鸣器拓展

AI summary
无源蜂鸣器具有便宜、可控音频频率和便于程序控制等优点。设计分析包括驱动蜂鸣器鸣叫、按键控制发声、产生多种音调和音符时值的简谱。实现部分详细说明了音调频率与计数器的关系,并提供了简谱的音符时值和示例。练习内容包括完成基本功能和设置特定音调的按键。
Last edited time
Sep 24, 2024 03:00 PM
Last edited by
Tags
Passive Buzzer
Audio Frequency Control
Music Notation Design
无源蜂鸣器的优点:
  1. 便宜;
  1. 声音频率可控,可以做出“多来咪发嗦啦西”的效果;
  1. 在一些特例中,可以和LED复用一个接口;
  1. 程序控制方便。

一:设计分析

  1. 驱动ZX-1板卡上的蜂鸣器鸣叫1s。
    1. notion image
  1. 测试结果
    1. notion image
  1. 通过按键按下,让蜂鸣器发声(不做抖动:利用一个计数器)。
    1. notion image
      只需要在按键按下时,让计数器计数到最大,当计数器计数一定值时,产生方波信号。
  1. 通过按键按下,产生按键标志,使其蜂鸣器发声(0.1s),起到一个提示作用。
    1. notion image
  1. 测试结果
    1. notion image
  1. 蜂鸣器发出多来咪发嗦啦西音调,以一定的间隔时间(0.5s),使其循环播放。
    1. notion image
      规定:21个音调(低音1~7,中音1~7,高音1~7),每一个音调持续0.5s,一共10.5s。
      notion image
实现:
notion image
notion image
音调
频率:HZ
计数器计数最大值
低音1
262
50_000_000 / 262 / 2 - 1
低音2
294
低音3
330
低音4
349
低音5
392
低音6
440
低音7
494
中音1
523
中音2
587
中音3
659
中音4
698
中音5
784
中音6
880
中音7
988
高音1
1046
高音2
1175
高音3
1318
高音4
1397
高音5
1568
高音6
1760
高音7
1976

二:音乐简谱

  1. 音符时值
    1. 音符名称
      写法
      时值
      全音符
      5----
      4拍
      二分音符
      5-
      2拍
      四分音符
      5
      1拍
      八分音符
      5
      1/2拍
      十六分音符
      5
      1/4拍
      三十二分音符
      5
      1/8拍
      上述表中是各个音符对应的简谱写法和时值:4/4拍指按四分音符为1拍,每一节有4拍;举例:可以采用每分钟60拍的时间,也就是1拍为1s,如果一个音符后面加1个小圆点时,时值再延长本身时长的1/2,比如四分音符后加1点,即1.5s。
  1. 简谱名称
    1. 常用的中音1,2,3,4,5,6,7(多来咪发嗦啦西),在音符下面加1点表示低音,在音符上面加1点表示高音,加2点表示超高音。
      考虑设计时可以采用高/中/低音,超高音不做讨论。
  1. 音频对照表
    1. notion image
  1. 以两只老虎简谱为例
    1. notion image
      设计时需要在简谱中找出对应的音符数据。
一般有以下规定:比较常用的
(1):由于音调划分有高/中/低音,可以采用2位二进制数来进行表示,01表示低音,10表示中音,11表示高音。
(2):由于音标划分为7种1,2,3,4,5,6,7(多来咪发嗦啦西),可以采用3位二进制数表示,音标1表示001;音标2表示010…音标7表示111。
(3):由于在简谱中每两个竖线之间为2s时长,每两个竖线之间有4个音符的时长,但是其中有较多半个音符的时长,将每一个音符持续时间长度划分为8拍,每一拍0.25s,可以采用3位二进制数表示,000表示1拍;001表示2拍;010表示3拍…依次类推,111表示8拍。
(4):可以将音标,音调,节拍形成的二进制数据拼接起来,形成8位数据,该8位数据高3位表示音标,中间2位表示音调,低3位表示节拍。
举例:
  1. 8’b110_10_001; //2拍的中音6
  1. 8’b001_10_001; //两只老虎中第一个音符

三:练习

  1. 完成上课内容(蜂鸣器上电响1s/按键按下蜂鸣器响0.1s/上电按顺序播放21个音调)
  1. 在数字钟中加上整点报时功能/按键提醒功能。
  1. 指定独立按键中3个按键,设置中音1,2,3,谱出两只老虎,两只老虎。
Loading...