蜂鸣器拓展
AI summary
无源蜂鸣器具有便宜、可控音频频率和便于程序控制等优点。设计分析包括驱动蜂鸣器鸣叫、按键控制发声、产生多种音调和音符时值的简谱。实现部分详细说明了音调频率与计数器的关系,并提供了简谱的音符时值和示例。练习内容包括完成基本功能和设置特定音调的按键。
Last edited time
Sep 24, 2024 03:00 PM
Last edited by
Tags
Passive Buzzer
Audio Frequency Control
Music Notation Design
无源蜂鸣器的优点:
- 便宜;
- 声音频率可控,可以做出“多来咪发嗦啦西”的效果;
- 在一些特例中,可以和LED复用一个接口;
- 程序控制方便。
一:设计分析
- 驱动ZX-1板卡上的蜂鸣器鸣叫1s。
- 测试结果
- 通过按键按下,让蜂鸣器发声(不做抖动:利用一个计数器)。
只需要在按键按下时,让计数器计数到最大,当计数器计数一定值时,产生方波信号。
- 通过按键按下,产生按键标志,使其蜂鸣器发声(0.1s),起到一个提示作用。
- 测试结果
- 蜂鸣器发出多来咪发嗦啦西音调,以一定的间隔时间(0.5s),使其循环播放。
规定:21个音调(低音1~7,中音1~7,高音1~7),每一个音调持续0.5s,一共10.5s。
实现:
音调 | 频率: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 |
二:音乐简谱
- 音符时值
音符名称 | 写法 | 时值 |
全音符 | 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,2,3,4,5,6,7(多来咪发嗦啦西),在音符下面加1点表示低音,在音符上面加1点表示高音,加2点表示超高音。
考虑设计时可以采用高/中/低音,超高音不做讨论。
- 音频对照表
- 以两只老虎简谱为例
设计时需要在简谱中找出对应的音符数据。
一般有以下规定:比较常用的
(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位表示节拍。
举例:
- 8’b110_10_001; //2拍的中音6
- 8’b001_10_001; //两只老虎中第一个音符
三:练习
- 完成上课内容(蜂鸣器上电响1s/按键按下蜂鸣器响0.1s/上电按顺序播放21个音调)
- 在数字钟中加上整点报时功能/按键提醒功能。
- 指定独立按键中3个按键,设置中音1,2,3,谱出两只老虎,两只老虎。
Loading...