51单片机的电子琴设计

目 录
一、引言 1
(一)设计背景 1
(二) 设计任务 1
二、系统总体方案 2
(一)方案选择 2
(二)参数计算 2
三、硬件电路设计 4
(一)原理图设计 4
(二)AT89C51单片机概述 5
(三)按键模块 8
(四)蜂鸣器模块 9
四、系统软件设计 10
(一)Keil软件简介 10
(二)软件系统分析 10
(三)程序流程设计 11
总结 15
致 谢 16
参考文献 17
附录一 原理图 18
附录二 元器件清单 19
附录三 PCB图 20
附录四 程序 21
一、引言
(一)设计背景
近年来,随着科学技术的迅猛发展,单片机无论是在生活还是工业中都扮演着举足轻重的角色,对人类社会的进步起着关键的作用。并且随着工业控制领域要求的提高,单片机的性能和功能不断提高,从最初的8位发展到如今的32位,基于单片机技术的电子琴设计已经成为现实,这极大地推动了单片机在生活中和工业中的普及和应用。本文以“基于单片机的电子琴设计”为研究对象,阐述了AT89C51单片机起源发展和原理、硬件整体结构以及软件设计,并着重介绍了“基于单片机的电子琴”是如何设计以及实现的。
随着经济的大力发展,国内玩具市场对高科技玩具的需求量与日俱增,电子琴作为一种益智并且陶冶情操的简单玩具非常受广大家长和儿童的青睐。随着超大规模集成电路技术的迅速发展,单片机已经可以做的非常微小了,而51单片机无论是在性能还是成本方面都能够胜任绝大多数的 *好棒文|www.hbsrm.com +Q: ¥351916072¥ 
嵌入式场合,本此设计就是要实现电子琴的微型化,并且跟传统电子琴相比,具有更多的功能,比如传统的电子琴一般只能设置七个音调,而采用单片机作为控制核心的电子琴却可以在相同体积情况下拥有21个音调,本次设计的电子琴不但小巧玲珑,而且发音还非常准确,这在一方面也推动了单片机的发展。
(二)设计任务
设计一个采用51单片机作为控制核心的电子琴,并具有如下功能:
1、共设置10个按键,其中7个为不同的7种音调,另外3个做设置高低中音用;
2、用89C51单片机做控制核心;
3、用usb供电;
二、系统总体方案
(一)方案选择
方案一:采用相关的具有不同逻辑功能的COMS逻辑芯片,总共需要十片芯片,由其组成的系统分为分频器模块,计数模块等模块组成。其大致原理为:由分频器对外部输入的时钟信号进行分频,产生21种不同频率的脉冲信号,然后通过外部的MOS管驱动电路对蜂鸣器进行驱动,播放声音信号。通过描述可以发现,采用的芯片数量较多,成本高,并且电路形式复杂,所以此方案不适宜。
方案二:采用51单片机作为控制核心,片外配合按键模块、蜂鸣器模块、场效应管驱动模块、复位电路模块以及晶振电路模块等部分构成,由于51单片机再业界内已经具备了相当成熟的开发技术并且开发资料丰富,对于完成本次毕业设计是绝对有利的,另外该方案成本低廉,模块分明并且稳定性强,所以本次设计采用此方案二,图1为本设计的系统结构框图。
图1 系统总结构图
(二)参数计算
1、蜂鸣器能发出不同音调的原理
当要产生指定的音调时,只要知道这个音调的频率就可以了,假如驱动蜂鸣器的脉冲频率为该音调的频率,蜂鸣器就可以发出该音调的蜂鸣。那么在51单片机中应该怎么产生这种固定频率的脉冲呢?这就要借助51内部性能优良的定时器了,通过该音调的频率与51系统所采用的晶振频率之间的关系,就可以得到定时器的定时值,即通过定时器中断去产生这个准确的频率脉冲。在AT89C51的配置上,要让其定时器工作在MODE1下,通过对其THL及TH0寄存器赋值,就可以产生准备的频率了。
2、计算举例
比如我们要产生一个频率为523Hz的脉冲,其周期T为1912us。因为是通过定时器每次发生中断时对IO口电平取反来产生特定频率的脉冲的,所以只要将定时器的定时值设置为1912us的一般就可以了,即956us,这样每956us定时器中断发生时IO口的电平取反一起,从而就产生了一个523Hz的脉冲信号。
3、计算结果
(1)表1是单片机采用12M的晶振时,各音符与计数值之间的关系。
表1 音符与计数值关系表
音符 频率(HZ) 计数值(T值) 音符 频率(HZ) 计数值(T值)
低1DO 262 63628 #4FA# 740 64860
#1DO# 277 63737 中5SO 784 64898
低2RE 294 63835 #5SO# 831 94934
#2RE# 311 63928 中6LA 880 64968
低3MI 330 64021 #6LA# 932 64994
低4FA 349 64103 中7SI 968 65030
#4FA# 370 64185 低1DO 1046 65058
低SO 392 64260 #1DO# 1109 65085
#5SO# 415 64331 高2RE 1175 65110
低6LA 440 64400 #2RE# 1245 65134
#6LA# 466 64463 高3MI 1318 65157
低7SI 494 64524 高4FA 1397 65178
中1DO 523 64580 #4FA# 1490 65198
#1DO# 554 64633 高5SO 1568 65217
中2RE 587 64633 #5SO# 1661 65235
#2RE# 622 64884 高6LA 1760 65252
中3MI 659 64732 #6LA# 1865 65268
中4FA 698 64820 高7SI 1967 65283
当有了上面的音调与计数值之间的关系后,我们就可以将其在单片机内部制成一个表格,这样便于单片机进行查表,高音在40至59之间,中音在20至39之间,低音在0只19之间,这样我们就能够通过0-59之间的序号来生成相应的脉冲,极大方便了程序的设计。
图2 系统原理图
(二)AT89C51单片机概述
1、AT89C51单片机组成
图3 AT89C51内部结构
ATMEL公司出产的AT89C51是一种带4K字节 FLASH存储器 的单片机,它是一种能在低电压场合工作的高性能CMOS类型的8位处理器。它内部集成的只读存储器具有高达1000多次的可擦除性,这样好的性能使得它非常适合学生做实验。另外这种类型的单片机已经采用了高密度的非易失储存器的制造技术,AT89C51单片机的通用IO管脚能够和工业上广泛采用的MCS-51类型的指令集能够完美兼容。ATMEL公司研发的这种高效率的微控制器将FLASH和性能强大的8位CPU集成在一个芯片里使得它在嵌入式领域有着广泛的应用。常用的AT89C2051型单片机是AT89C51单片机的精简版本。基于上述的特点,在很多嵌入式场合,AT89C51单片机正在发挥着越来越多的作用。DIP-40封装类型AT89C51单片机的芯片引脚图如4所示。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1943.html

好棒文