1、用单片机实现音乐节拍发生器;
2、用按键设置节拍(2/4;3/4;4/4);
3、用LED或LCD显示被选节奏的名称,速度;
4、用按键调节节拍速度;
5、用蜂鸣器发出强弱不同的拍(强,弱,弱为3/4拍)
2/4一个节2个拍 一个拍1s 滴答 强,弱
3/4一个节3个拍 一个拍1s 滴答答 强,弱,弱
4/4一个节4个拍 一个拍1s 滴答滴答 强,弱,次强,弱
全部资料:
全部资料自取:
bashhttp://dt2.8tupian.net/2/28880a73b24000.pg3
程序大概介绍:
这是一个使用8051系列单片机(具体型号是STC89C52)的音乐节拍发生器程序。以下是对该程序的简要解释:
引用头文件和宏定义:
使用了reg52.h
和intrins.h
头文件,这些是与8051单片机相关的头文件。
定义了不同节奏和音调的频率和时间。
宏定义和变量声明:
定义了几个宏用于简化代码。
定义了四个按键(key_01, key_02, key_03, key_04)用于设置节奏和节拍速度。
定义了一个蜂鸣器(BEEP)来产生音乐。
延时函数:
delay_ms
和delay_ms_key
函数用于延时。按键扫描函数:
KeySscan
函数用于检测按键是否被按下,并返回相应的键值。主函数:
初始化LCD,并显示默认节拍和每拍的时间。
使用一个无限循环来等待用户按键输入,根据按键设置节拍类型和节拍速度。
定时器中断函数:
使用定时器0和定时器1来控制音乐的节拍和音调。
T0_time
函数处理节拍的计时和音调的改变。
T1_time
函数用于产生实际的音调输出到蜂鸣器。
逻辑流程:
用户可以通过按键来选择节拍类型(2/4、3/4、4/4)。
用户可以调整每拍的时间,从而改变节拍的速度。
当开始状态被设置为1时,节拍发生器开始工作并产生相应的节拍和音调。
整体上,这是一个使用8051单片机实现的简单音乐节拍发生器,它允许用户选择不同的节拍类型和速度,并通过蜂鸣器播放相应的音乐节拍。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!