×
嵌入式开发 > 详情

以单片机AT89S52为核心的乐曲编辑发生器的设计

发布时间:2020-07-06 发布时间:
|

1引言

基于RTX51的乐曲编辑发生器AT89S52单片机为控制核心,操作者可以通过4×4矩阵键盘输入约定格式的任意乐曲,按“播放”键后,系统便开始播放所编辑乐曲,并且音调和节拍都可以由单片机精确控制。为了降低成本,在最小硬件设计的基础上,系统的功能尽可能用软件来实现,系统软件是在面向MCS-51系列单片机的嵌入式实时多任务操作系统RTX51Tiny平台上,用C51高级语言和MCS-51汇编语言混合编程而开发的。

2 系统硬件设计

为了今后能够在线升级用户应用程序,采用带ISP接口的单片机AT89S52核心构成乐曲编辑发生器AT89S52具有快速8051内核、8 KB FlashE2PROM、256 B IDATA RAM,完全符合运行RTX51Tiny的硬件要求。笔者已研制了AT89S51/52的目标程序PC机下载软件,无需编程器即可完成单片机应用系统的开发。

为了设计编辑任意乐曲的人机界面,采用4×4矩阵键盘作为系统的输入设备,采用点阵式液晶显示模块TC1602A作为系统的输出设备。为了存储和读出任意乐曲,采用带I2C串行接口的E2PROM存储器AT24C02。为了放大单片机AT89S52产生的乐曲声音,采用了功率放大器LM386。系统硬件电路原理图如图1所示。

3 乐曲编辑和播放的软件实现

3.1 单片机产生音频矩形脉冲的方法

利用单片机的内部定时器T1并使其工作在定时器工作方式1(16 bit定时),改变T1的计数初值,就可以在单片机的I/O引脚端产生不同频率的音频矩形脉冲。

例如,音频矩形脉冲信号的频率为523 Hz,则其周期T=1/523=1912μs,因此,只要让计数器定时1912μs÷2=956μs,当定时956μs到的时候,将AT89S52的乐曲输出引脚P3.7反相,就可得到中音DO(523 Hz)。

单片机定时器计数初值T与单片机内部机器周期信号频率Fi和音频矩形脉冲信号频率Fr的关系如下。

为了叙述方便,不妨把定时器计数初值T称为简谱码。

3.2 乐曲的音调表示方法

单片机播放乐曲的过程,主要是用单片机来识别所编辑的乐曲并播放出来。单片机需要识别乐曲中的音调和音长(音长亦称为节拍),本设计用字母A~Z来代表乐曲的各个音调。数字0作为音调的结束标志,如表1所示。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM入门篇之(一)概念