节拍器的使用可以使练琴者正确掌握乐曲的速度,从而使音
乐练习达到事半功倍的效果。本课题基于单片机设计具有声光晋
示的电子乐器节拍器,充分利用单片机的定时和中断系统,通过
C语言程序设计,控制外部相关硬件电路,实现对音乐速,度
40~120次/分钟范围内连续可调,节拍114、
2/4、3/4、4/4、3/8、6/8可选,并有声音和灯光提示功能。
课题简介
功能:电子音乐节拍器
数码管显示的是每一分钟多少拍,每一拍蜂鸣器响一声。
1 USB供电孔,可电脑、充电宝、手机充电器供电,
电源按钮,电源指示灯,电源指示灯限流电阻
2 共阳数码管,电阻,三极管
3 蜂鸣器,三极管
4 复位按键,电容,电阻
5 11059200晶振,30pf电容
6 增加按键,按一下增加100
7 减少按键,按一下减少100
8 微调加,按一下增加1
9 微调减,按一下减少1
全部资料:
资料下载自取(程序、仿真图、实物的原理图):
bash
http://dt4.8tupian.net/2/28880a72b24000.pg3
程序介绍:
这是一个基于8051单片机的程序,用于控制一个节拍器模拟器。以下是程序的简要说明:
-
宏定义:程序首先定义了多个宏,这些宏用于表示不同音符和频率。
-
变量定义:定义了多个变量,包括音调、节拍、LED显示等。
-
数码管显示 :使用了一个函数
dispaa()
来更新数码管的显示内容。 -
延时函数 :使用了
delay_ms()
和delay_ms_key()
函数进行延时。 -
按键检测 :
KeySscan()
函数用于检测按键的状态并返回相应的按键值。 -
主函数逻辑:
- 初始化定时器。
- 通过按键来改变节拍器的设置,例如增加/减少节拍、启动/停止节拍器等。
- 使用定时器中断来控制节拍和音调的输出。
-
定时器中断:
T0_time()
函数用于控制节拍的时间间隔和音调的输出。T1_time()
函数用于控制音调的频率。
-
蜂鸣器和LED:使用8051的P3.6和P3.7引脚来控制蜂鸣器和LED的状态。
-
数码管显示:通过循环,程序不断更新数码管的显示内容,显示当前的设置。
整体上,这个程序的目标是创建一个节拍器模拟器。用户可以通过按键来调整节拍的速度和音调,同时LED会根据当前的设置闪烁,数码管则显示当前的节拍速度和音调设置。