基于AT89C51单片机的节拍器设计
1 硬件电路原理
节拍器以AT89C51 单片机为控制中心,由LED 显示模块、调节键盘模块、声音输出模块组成。图1 是节拍器的电路原理图。ATMEL 公司生产的AT89C51 单片机与MCS51指令系统兼容,40 脚结构,是系统的控制中心。显示模块由四位一体的共阳极蓝色LED 显示器构成,采用动态扫描显示方式, Q11~ Q14是LED 的位选择开关三极管, R6~ R13是数码管段发光二极管的限流电阻。四位一体的LED 数码管完成显示节拍数、各功能代码及参数值的功能。键盘调节模块由4 只按键构成,分别是功能选择键A、设置参数选择键B、参数增加键C和参数减少键D ,4 只按键可以完成各种功能的选择和各参数的设置。声音输出模块由以Q1、Q2、Q3和扬声器为中心的功率放大电路组成,不同频率的脉冲从单片机的P2.6口输出, 经R14限流和功率放大后,推动扬声器发出洪亮的声音。由于输出的音频信号是脉冲波,三极管工作在开关状态,损耗小发热量不大, Q2、Q3使用小功率管C8050和C8550 即可。整个系统硬件结构简单。由外部提供12 V直流电直接供音频功放模块使用,经LM7805 稳压成5 V 后供单片机及LED 显示用。
(点击查看原始图片)
2 软件说明
软件系统采用模块化结构设计,分别是主程序模块、节拍器模块、键盘识别和参数设置模块等。其中每个模块又由若干个子模块构成。上电或复位后进入调节功能,重复按A键在调节功能、节拍器功能之间轮换。当进入调节功能后,重复按B 键可选中不同的调节对象,再按C 或D 键增加或减少调节对象的参数值,调节时显示调节对象的代码和参数值。
2.1 主程序模块
在主程序模块中完成存储单元的初始化、定时器计数器的初始化、中断初始化、标志位的初始化、扫描键盘,并根据功能选择键A 的值启动以下功能模块之一:参数设置功能、节拍器功能。
2.2 节拍器功能模块
节拍速度在24~400 拍/min 范围内可调,节拍误差小于2%,节拍数为1~9可调。显示器显示节拍数,扬声器发出节拍声,显示节拍数1 时发出600 Hz 的高频声0.1 s ,显示其他节拍数时发出300 Hz 的低频声0.1 s。该模块由节拍延时部分、节拍数显示部分、音频脉冲形成部分组成。节拍功能模块程序流程图如图2 所示。
2.3 参数调节模块
按A 键选择进入参数调节功能模块后,重复按B 键,可以依次选择节拍速度、节拍分度参数的设置,LED 显示器上显示参数类型代码和该参数的数字,按C 或B 键则在该参数的取值范围内循环增加或减少一个单位值。代码1 是节拍数,取值范围1~9。代码2 是节拍速度,取值范围是24~400拍/min。该模块程序由键盘扫描识别部分、参数显示部分、A键处理部分、B 键处理部分和C、D 键处理等子程序组成。
图2 节拍器模块流程图
3 实验
从显示、按键、声音和节拍精度等方面进行测试。
显示观察:处于节拍工作状态时4 个数码管同时循环显示节拍数,练琴时眼睛的余光就能看清节拍数。处于调节模式时,最高位显示待调节的参数代码,其余3 位显示参数值,当参数高位为零时不显示。显示正确。
按键测试:按下功能键A ,可以在参数调节和节拍模式之间转换。当处于参数调节模式时,按下参数更改键B ,可以在节拍数和节拍速度之间转换;按下增加键C 或减少键D ,参数值在当前值基础上增加或减少1 ,并且在参数的调节范围内循环变化。当处于节拍工作模式时,BCD 键不起作用。键盘工作正常。
声音观测:节拍音短促有力,起始拍与其余拍音调区别明显。在钢琴弹奏的环境中清晰可闻。
节拍精度测量:用秒表测量节拍器500 拍所用时间。节拍速度分别为72、112、144 拍/min 的时候, 用时分别为418.1 s、268.9 s、210.5 s ,误差分别为0.29%、0.35%、1.1%。节拍精度达到设计要求。
4 结束语
节拍器的起始拍的声音和其它拍的声音不同,听觉和视觉效果好,节拍精度高,调节方便。多名琴童使用该节拍器练钢琴均取得很好的效果。硬件成本低廉,不易损坏,可以将外形设计成工艺品。基于AT89C51 单片机的节拍器具有较好的应用价值。
- 基于单片机的智能计步器设计(09-20)
- 89C51单片机I/O口模拟串行通信的实现方法(11-30)
- AT89C51单片机驱动液晶显示汉字C语言(11-30)
- AT89C51单片机驱动128x64液晶显示C语言(11-30)
- 89C51单片机40s倒记时数码管动态显示(11-30)
- 89C51单片机内部结构深度解析三(11-26)