基于89C51单片机的节拍器方案设计

发布者:AdventureSeeker最新更新时间:2012-02-14 来源: 21IC关键字:89C51  节拍器  声音输出 手机看文章 扫描二维码
随时随地手机看文章

  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 节拍器模块流程图[page]

  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 单片机的节拍器具有较好的应用价值。

关键字:89C51  节拍器  声音输出 引用地址:基于89C51单片机的节拍器方案设计

上一篇:用89C2051单片机制作的电话回拨器
下一篇:基于51单片机RTL8019AS的网卡驱动程序

推荐阅读最新更新时间:2024-03-16 12:53

89C51与ad0832 输出正弦波,三角波,矩形波,锯齿波
proteus仿真电路图 c语言程序 #include absacc.h #include reg52.h #define DA0832 XBYTE #define uchar unsigned char #define uint unsigned int sbit S1 = P1^0; sbit S2 = P1^1; //00锯齿波;01方波;10三角波;11正弦波 uchar code sin_tab = //正弦波输出表 { 0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,
[单片机]
8051/89C51的21个专用寄存器介绍
8051/89C51共有21个专用寄存器,现把其中部分寄存器简单介绍如下: (1)程序计数器(Program Counter,PC) PC是一个16位的计数器,它的作用是控制程序的执行顺序,其内容为下一条要执行的指令的地址,寻址范围达64KB。PC有自动加1的功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读/写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)内,一般不计作专用寄存器。 (2)累加器(Accumulator,ACC) 累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。
[单片机]
温度传感器DS18B20 89C51单片机C语言程序
#include reg52.h #define uchar unsigned char /*宏定义 字符型数据 整型数据 */ #define uint unsigned int uint DD; sbit DQ=P2^2; //定义DS18B20总线I/O unsigned int temputer; char Co de = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; uchar co de C = {0x0, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F}; /*****延时子
[单片机]
基于单片机89C51产生PWM信号来控制直流电机调速程序
利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。 /* =======直流电机的PWM速度控制程序======== */ /* 晶振采用11.0592M,产生的PWM的频率约为91Hz */ #include reg51.h #include math.h #define uchar unsigned char #define uint unsigned int sbit en1=P1^0; /* L298的Enable A */ sbit en2=P1^1; /* L298的Enable B */ sbit s1=P1^2; /* L298的Input 1 */ s
[单片机]
基于单片机控制的自动停车收费管理系统
0 引言 随着经济的增长,越来越多的人加入了购车行列。汽车数量的剧增和停车场地的相对短缺,使得停车场的管理收费问题凸现。特别是大型超市的临时停车场管理收费更加困难。 1 现有停车场收费管理系统 目前的停车场收费管理系统通常采用以下两种计费方式: (1)摄像计费方式:在停车场出入口分别放置一台摄像机,通过摄像机摄下汽车车牌号码,送单片机或者电脑处理。再通过单片机计算停车时间和费用,并控制大门开启。该方案信息量大,要求具有较大的存储容量。软件设计复杂,成本高。 (2)刷卡计费方式:车主到指定地点办理IC卡,通过打卡进出停车场,并通过IC卡缴费。但该方式更适合于有长期固定停放车位的停车场。 为了解
[单片机]
基于89C51单片机的远程数据采集系统设计
  工业生产过程中常常需要对温度、湿度、压力、流量等各种工艺参数随时进行检测和监控,同时还要将检测到的数据及时传递给上位机,以实现对参数的随机查询,对信息的存储与处理,及时调整控制方案,提高生产效率和产品质量。为此,笔者以89C51单片机作为主控制器设计了一种简单易行的远程数据采集系统。 1 系统硬件电路的设计   远程数据采集系统框图,由两部分组成:一是基于89C51实现的现场数据采集电路,二是PC机与89C51之间的远程通讯电路。 1.1 89C51数据采集系统   数据采集系统的硬件原理如图1所示。   该系统选用89C51单片机作为主控制器,此芯片与8051完全兼容,且内部带有4 KB闪速可编程、可擦除PEROM
[单片机]
基于<font color='red'>89C51</font>单片机的远程数据采集系统设计
《初学者C51自学笔记》之89C51初步认识
左边是一个总线型的,为什么是总线型呢?它的引脚P1、P2、P3、P0都是有8位,而右边P3是没有P3.6的,所以它是非总线型的。 51单片机内部集成8位CPU,4K字节的ROM,128字节RAM,4个8位并行I/O口,一个全双工串行口,2个16位定时器/计数器,5个中断源。 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器 RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据(断电数据会消失) ROM:用以存放程序、一些原始数据和表格;(断电数据不会丢失) I/O口:四个8位并行I/O口,既可用作输入,也可用作输出; T/C:两个定时/记数器,既可以工作在
[单片机]
《初学者C51自学笔记》之<font color='red'>89C51</font>初步认识
基于AT89C51单片机的节拍器设计
  1 硬件电路原理   节拍器以AT89C51 单片机为控制中心,由LED 显示模块、调节键盘模块、声音输出模块组成。图1 是节拍器的电路原理图。ATMEL 公司生产的AT89C51 单片机与MCS51指令系统兼容,40 脚结构,是系统的控制中心。显示模块由四位一体的共阳极蓝色LED 显示器构成,采用动态扫描显示方式, Q11~ Q14是LED 的位选择开关三极管, R6~ R13是数码管段发光二极管的限流电阻。四位一体的LED 数码管完成显示节拍数、各功能代码及参数值的功能。键盘调节模块由4 只按键构成,分别是功能选择键A、设置参数选择键B、参数增加键C和参数减少键D ,4 只按键可以完成各种功能的选择和各参数的设置。声音输
[单片机]
基于AT89C51单片机的<font color='red'>节拍器</font>设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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