基于AT89C51 单片机的节拍器

发布者:平安宁静最新更新时间:2021-03-19 来源: eefocus关键字: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 单片机的节拍器具有较好的应用价值。

关键字:AT89C51  单片机  节拍器 引用地址:基于AT89C51 单片机的节拍器

上一篇:AT89C2051驱动步进电机的源代码
下一篇:51单片机的输入/输出口(IO口)

推荐阅读最新更新时间:2024-11-13 13:02

杭州晶华微电子:深耕ADC和MCU“中国芯”
晶华微成立于2005年,致力于高性能、高品质混合信号集成电路设计及销售,以高集成度、高可靠性的创新设计能力及先进的品质保证体系,为用户提供一站式专业集成电路及产品化应用方案设计。 15年来,晶华微坚持正向设计、自主研发,已拥有低功耗和低噪声放大电路、不同结构的模/数及数/模转换器、电压基准源、8位和32位MCU、混合信号SoC等多项核心技术,并申请获得多项专利/软著。其自主研发的工控HART通讯控制器芯片及4~20mA电流DAC更是打破工控行业国外垄断,实现国内突破。目前公司通用模拟集成电路及系列专用SoC产品已广泛应用于红外测温领域、智能可穿戴设备、各种消费类电子产品及工业控制、测试测量仪器仪表、传感器信号处理及物联网等众多领域
[手机便携]
杭州晶华微电子:深耕ADC和<font color='red'>MCU</font>“中国芯”
51单片机asm与C混合编程
一是源程序中直接混合嵌入,二是做成库函数调用,三是做成是中间文件在链接中加入。   在单片机应用系统设计中,过去主要采用汇编语言开发程序。汇编语言编写的程序对单片机硬件操作很方便,编写的程序代码短,效率高,但系统设计的周期长,可读性和可移植性都很差。C语言程序开发是近年来单片机系统开发应用所采用的主要开发方式之一,C 语言功能丰富、表达能力强、使用灵活方便、开发周期短、可读性强、可移植性好。但是,采用C 语言编程还是存在着如对硬件没有汇编方便、效率没有汇编高、编写延时程序精确度不高等缺点,因而现在单片机系统开发中经常用到C 语言与汇编语言混合编程技术。混合编程技术可以把C 语言和汇编语言的优点结合起来,编写出性能优良的程序。单
[单片机]
51<font color='red'>单片机</font>asm与C混合编程
基于单片机DHT22温湿度LabView上位机监控系统设计
一、系统方案 本设计采用AT89C52单片机作为主控制器,液晶1602显示温湿度,LabView上位机通信,上位机显示温度,同时上位机可以设置温度上下限,当测量温度低于或高于上限,温度报警,上位机可以控制下位机加热设备启动与关闭,实现上位机和下位机的交换数据。 二、硬件设计 原理图如下: 三、单片机软件设计 1、单片机代码主要是串口初始化、串口中断服务程序。首先是串口初始化: void uart_init() { TMOD |= 0x20;//定时器1,工作模式2 8位自动重装 TH1 = 0xfd; TL1 = 0xfd;//设置比特率9600 SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可变
[单片机]
基于<font color='red'>单片机</font>DHT22温湿度LabView上位机监控系统设计
STM32单片机的外部时钟晶振该如何选择频率
芯片的主晶振频率范围一般来说在数据手册(Datasheet)和技术参考手册(Technical Reference Manual)中都有介绍。 你提到的时钟先分频再倍频,这个需要深入到STM32的内部去一探究竟了,在其技术参考手册的第7.2节Clocks的一开始有一个表格,时钟树(Figure 8. Clock tree),它完全地列出来STM32这个芯片内部各个模块的时钟来源以及相关的从属关系。 在这个图的正中央,有一个核心时钟:SYSCLK,它最大频率是72MHz,它的时钟信号通过选择器SW可以由PLLCLK提供(也可由HIS、HSE提供)。 PLL,毫无疑问,它是用来倍频的,可以*2,*3,*4……*16,它的时
[单片机]
STM32<font color='red'>单片机</font>的外部时钟晶振该如何选择频率
利用Kinect语音识别控制51单片机
第六章:利用Kinect语音识别控制51单片机 WPF部分: (1) 新建 Visual C# -- WPF工程(如下图),记得右键点击“引用”,添加相应驱动版本的Microsoft.Kinect.dll 和Microsoft.Speech动态库。App.xaml 文件及 App.xaml.cs文件无需改动。 (2)下面是MainWindow.xaml.cs文件的内容。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.
[单片机]
单片机按键按下的先后顺序判断
K4、K3:“进出”模拟检测键。 每先按K3、再按K4,即代表“进”一人次; 每先按K4、再按K3,则代表“出”一人次。 每“进”一人次,就在原“进”显示基础上加1(“进”显示初始状态为“b000”); 每“出”一人次,就在原“出”显示基础上加1(“出”显示初始状态为“C000”)。 悬赏分:100 - 解决时间:2010-6-25 19:14 最好把C语言程序给出来~ 按照题目,编写了程序。用 PROTEUS 软件仿真截图如下。 原来编写的程序,是使用汇编语言,现按照要求改成了C语言。 //================================================================ #in
[单片机]
<font color='red'>单片机</font>按键按下的先后顺序判断
单片机中使用DS18B20温度传感器C语言程序(参考1)
单片机中使用DS18B20温度传感器C语言程序(参考1) /******************************************************************************** DS18B20 测温程序 硬件:AT89S52 (1)单线ds18b20接 P2.2 (2)七段数码管接P0口 (3)使用外部电源给ds18b20供电,没有使用寄生电源 软件:Kei uVision 3 ***************************************************************************
[单片机]
GD32MCU最小系统构成条件
大家是否有这个疑惑:大学课程学习51的时候,老师告诉我们51的最小系统构成?那么进入32位单片机时代,gd32最小系统构成又是怎么样的呢? 1.供电电路 需要确保供电的电压电流稳定,以东方红开发版为例,选用GD低压差大电流LDO作为电源转换芯片,保证后端电路的稳定。 2.外部晶振电路 时钟是单片机的核心,外部晶振给单片机提供外部时钟。GD32的内部时钟采用RC震荡电路,而外部电路采用的是石英晶振起振获取外部时钟,石英起振比RC震荡电路的精度要高的多。对于通讯要求比较高的外设,比如USART,CAN,ETH,RTC等,建议采用外部石英震荡电路。 3.BOOT的选择 GD32上电时可以选择启动模式,不同的启动模式对应不同的
[单片机]
GD32<font color='red'>MCU</font>最小系统构成条件
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved