86
数字音乐盒的制作
1
设计要求
制作一个数字音乐盒,盒内存有3首乐曲,每首不少于30s。采用LCD显示乐曲信息,
开机时有英文欢迎提示字符,播放时显示歌曲序号及名称。1可通过按下功能键K1、K2、K3
之一,选择3首乐曲中的1首;然后按下播放键K4,即开始播放所选择的乐曲;K5键为暂
停。
原理说明
利用I/0口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。音
乐的播放原理请参考上题。
https://qq742971636.blog.csdn.net/article/details/107528580
这段代码实现了一个数字音乐盒,具有以下功能:
LCD 显示功能:使用 LCD 屏幕显示欢迎信息和当前播放的歌曲信息。
按键检测和处理功能:通过按下不同的按键选择并播放不同的音乐,还可以暂停播放。
蜂鸣器功能:根据预设的音乐频率和节拍播放音乐。
现在让我们来逐步介绍代码的各个部分和功能。
这部分定义了一些常量、频率、延时函数以及音乐的频率和节拍等信息,便于后续使用。
这部分定义了一些全局变量,如音乐索引、播放标志等,用于控制音乐播放状态。
这些函数用于初始化 LCD 屏幕、向 LCD 屏幕写入指令或数据、设置光标位置以及显示字符和字符串等操作。
get_key()
函数用于检测按键输入,返回按下的键值。delay_key()
函数根据按下的键值进行相应的处理,如选择音乐、播放、暂停等。
set_fre()
函数用于设置蜂鸣器的频率,根据传入的频率来调节蜂鸣器的声音。BEEPCLOSE
宏用于关闭蜂鸣器。
初始化:配置端口方向,初始化 LCD 屏幕,设置蜂鸣器模式等。
欢迎信息显示:在 LCD 屏幕上显示欢迎信息,持续一段时间后清除。
按键检测和音乐播放:进入主循环后,持续检测按键输入,根据按键的不同选择播放对应的音乐。根据当前选择的音乐索引,通过循环播放预设的音符和节拍。
蜂鸣器控制:在播放音乐时,根据预设的频率和节拍控制蜂鸣器的声音。
LCD 显示更新:根据当前播放的音乐信息更新 LCD 屏幕的显示内容。
整体结构清晰,功能模块化,便于理解和维护。
pythonhttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!