1、基于单片机的电子琴设计报告基于单片机的电子琴设计与制作摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经成为现代人们的生活中不可替代的一部分。微型电子琴的设计以STC89C52单片机作为系统的核心控制部分,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、点歌及显示功能。设计中应用中断系统和定时/计数原理控制扬声器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现,可以用它来弹奏和播放乐曲。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠
2、,性价比较高等,具有一定的实用和参考价值。关键词:单片机、电子琴、显示、演奏、播放Abstract:Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It modern music played an important role in single chip is a powerful control functions and flexible programming characteristics, It has c
3、onverged with modern peoples lives, become an irreplaceable part. The design takes STC89C52 as the core of systems control section. In order to achieve the effect of the circuit that play the musical instrument,requesting a song and demonstration, we can carry on software and hardwares debugging thr
4、ough manufacturing hardware circuit and compiling the softwares design. The design applies the principle of the interruption system and fixed time and the counting to performance sound production and according to the program language to realize the separation of the note and time at the same time. W
5、e can use it to play with the broadcast music. Key words: single chip, electronic organ, display, play1 前言1.1 系统开发背景及意义单片微型计算机是大规模集成电路技术发展的产物,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可
6、以用作玩具琴、音乐转盘以及音乐童车等等,并且可以进行一定的功能扩展。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。利用单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把音阶与频率的对应关系设置好即可1。本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。该设计具有以下优点:(1) 可以随意
7、弹奏想要表达的音乐;(2) 制作简单,成本低; (3) 比传统电子琴功能更完善。1.2设计目标本设计作品拟实现功能如下:1.将8个按键设计成8个音对应音乐音符。每按一个键,单片机检测按下的那个键并查表查找相应的音符,输出到音频处理模块驱动喇叭发出音符。2.设计一个数码管用来显示音符,每按下一个按键,数码管则显示对应音符的数字。3.设置两个按键,按下一个按键,按顺序自动播放各音符。设计一首歌曲,内置于单片机,按下另一个按键,自动播放所存歌曲。4.设计一个液晶显示屏幕,显示一定内容,内容随音乐播放节奏移动。由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行
8、性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于毕业设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们毕业设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。2系统硬件设计及说明2.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的芯片的基础上,具
9、体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有8个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来,并且利用数码管显示对应音符的数值。另外设置两个按键,实现音乐自动播放功能。由于本设计实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,只有内置音乐才由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能
10、力,这就需要设计放大电路。图2-1 系统结构图2.2主要元器件简介(1)控制芯片STC89C52功能特性:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:具有以下标准功能:8k字节Flash,5
11、12字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、
12、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符2。(2)LED数码管本次设计的显示电路采用LED数码管显示,LED是一种外加电压从而流过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。通过单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。1位
13、显示器由八个发光二极管组成,其中七个发光二极管ag控制七个段的亮或暗,另一个控制一个小数点,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。(a)外形(b)共阳极(C)共阴极图3-6 数码管引脚(3)LCD1602液晶显示屏1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。如图所示其显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用3。图 LCD16022.
14、3各功能模块原理图(1)STC89C52最小系统搭建主控芯片为STC89C52型号单片机,电路设置的晶振为12MHz,晶振电路由两个30pF的电容和一个12M的晶振构成。单片机复位电路由复位按键、10uF电容、10k的电阻构成。另外对P0口和P1口接上10k的上拉电阻4。单片机主程序模块通过对键盘扫描程序信号的读取,在通过对应的表,取出数码管显示编码和定时器初始值以产生不同的声音信号。在这一过程中,对数码管和液晶屏编码是直接赋值,对声音信号则是通过中断程序进行控制。系统功能的I/O口分配如下:P1口分配给8个音符按键,P0口分配给液晶显示屏的8个数据口,P2口分配给数码管,P3.0和P3.1用
15、来检测两个音乐播放按键,P3.2P3.4分配给液晶屏的三个驱动引脚,P3.5口输出音频信号。P30图3-7 STC89C52模块电路原理图(2)键盘扫描模块电路原理图8个音符按键直连到单片机的P1口,另一端直接接地。每当按键按下,对应I/O口则会被置0。通过检测P1口的数值就可以判断所按下的按键,单片机则对按键对应的功能进行处理。图3-8 键盘扫描模块电路原理图(3)数码管显示模块电路原理图数码管显示模块核心是共阴级数码管,通过来自单片机I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符
16、。图3-9 数码管显示模块电路原理图(4)音频处理模块电路原理图由于单片机驱动能力不够,在处理音符信号时,需进行信号放大,因A966型三极管具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装A966型三极管对信号进行放大。图3-10 音频输出模块电路原理图(5)电源模块电路原理图由于本次设计的芯片的工作电压都为5V,因为USB输出端口的电压为5V左右,且最大输出电流为0.5A,完全能够驱动本文所设计的电路。本文加了一个电源指示灯和一个电源开关,电路图如图所示:图3-11 电源模块电路原理图(6)液晶显示模块电路原理图液晶屏的数据口D0D7都接上330的限流电阻,然后直接连接单片机的P0
17、口。液晶屏的三个驱动引脚46直接连接单片机的P3.4P3.6口,VEE口接一个电位器,调节液晶屏显示清晰度。图液晶显示模块电路原理图3 系统软件设计本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。3.1音乐相关知识乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高,声音就高,频率低,声音就低,不同音调的乐音是用17表示的,这7个数字就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。音
18、持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。3.2如何用单片机实现音乐的节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的倍数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,所以在设计实现的音乐发生器中是由一个延时函数控制每个音符的发音的时间长短,达到实现节拍的目的5。音乐的
19、音拍,一个节拍为单位(C调)具体如下表:表4-1 音乐节拍表曲调值1/4拍延时曲调值1/8拍延时调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms3.3如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系6。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情
20、况下,C调的各音符频率与计数值T的对照如下表:表4-2 音符频率与计数值T的对照表音符频率(HZ)计数值音符频率(HZ)计数值低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA4406440
21、0#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%2563.4系统总体功能流程图图4-1 主程序框图4 电路仿真4.1 Protuse
22、软件介绍Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路。该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片
23、。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。由于Protuse软件中没有STC89C52芯片,所以用AT89C51芯片进行代替,由于AT89C51芯片ROM较小,本设计的程序代码较大,所以不能下载。为了进行正常仿真,只能将LCD16
24、02显示的程序去掉,对其他模块进行仿真7。4.2仿真图介绍单片机:P2口对应数码管编码输出端; P1口做键盘扫描部分输入输出端。 P0 口做LCD1602液晶显示的数据口P3.3口做音乐信号输出端; P3.5P3.7做LCD1602液晶的驱动口 P3.0和P3.1做音乐播放按键口键盘扫描:将8位开关直接与单片机的P1口连接。数码管显示:在使用时一要接上拉电阻(这是有单片机P0口的物理特性决定的),二是要加限流电阻以使流进单片机的小于单片机所能承受的电流。音乐处理:单片机P1.0口送过来的信号经过三极管放大并送扬声器进行音乐的播出。图仿真电路图通过对电路图进行仿真,按下键S3,数码管正确显示了数
25、值3,且电脑发出了mi的音调,证明了以上设计电路的可行性。5 实物制作首先,按照设计的电路图上所需的电子元器件进行一一购买,然后,经过一段时间的电路焊接,边焊边调试,及时发现问题并解决问题,经过几天的努力,电路板最后正确完成。如图所示。6 总结经过几天的努力,从最开始的方案设计到最后电路板实物制作完成,过程还算比较顺利。最后也圆满的完成了设计制作。在制作过程中有一个小插曲就是晶振的一个引脚与单片机没有焊好,导致单片机不能工作。当时数码管和液晶显示屏都没有装,所以结构比较简单。首先我测试按键电路是否连接好。排除问题后测试电源电路能否正常供电,然后就测试单片机的各个引脚电压值,检查单片机是否能够正
26、常工作,结果单片机并不受程序控制。将单片机用开发板测试,却是好的。最后只剩下晶振电路了。通过网上搜索如何检测晶振的好坏,结果是正常晶振两引脚的电压值为1.82.0V,并且可以测出一定的电阻值。通过测试,发现其中一个引脚的电压值不对。最初我以为是晶振坏了,通过测试电阻值,发现晶振是好的。然后通过仔细检查电路,最后发现有个地方没有焊好。通过这一折腾,白白花费了半天的时间,主要还是自己不够仔细。虽然最后作品成功完成了,但是最后还是存在一些瑕疵:(1) 液晶屏装反了,因为当时是直接将其焊在电路板上,所以发现之后再改就比较麻烦了。(2) 原打算是用液晶屏显示歌曲歌词的,装上之后才发现LCD1602只能显
27、示符号和字母,不能显示汉字,因为已经焊劳固了,在想拆下来换成LCD12864也比较困难了。(3) 因为制作电路板时是焊完一个模块就马上测试,没有进行总体布局,所以接线比较乱,跳线比较严重。参考文献1 谭会生,张昌凡. EDA技术及应用M.西安电子科技大学出版社,2001年9月第1版.2 徐志军,王金明,伊廷辉等. EDA技术与PLD设计M.人民邮电出版社, 2006年2月第1版.3 赵鑫,蒋亮,齐兆群等. 数字电路设计M.北京机械工业出版社,2005年6月第一版.4 苏家健,曹柏荣,汪志锋. 单片机原理及应用技术M.高等教育出版社.5 于海生. 微型计算机控制技术选编M.清华大学出版社,199
28、9.6 李朝青. 单片机原理及接口技术M. 北京:北京航天航空大学出版色,2001.7 胡汉才. 单片机原理及其接口技术M. 北京:清华大学出版社,2004.附录#include #include /此文件中调用了空指令_nop_()作为延时,该指令在头文件intrins.h/中声明,所以需要包含该头文件;#define shumaguan P2 sbit SPK=P33; sbit LED=P21;sbit key1=P30; sbit key2=P31;unsigned int tone1,tone2;unsigned char *String1 = China University of
29、 Geosciences(Wu Han); unsigned char *String2 = Fan Yong Fan Yong; /*液晶管脚定义*/#define LCD_DATA P0 /定义数据口sbit LCD_E = P35; /定义液晶1602的使能引脚sbit LCD_RW = P36; /定义液晶1602的读/写选择引脚sbit LCD_RS = P37; /定义液晶1602的数据/命令选择引脚void WriteCommand(unsigned char cmd); /函数声明unsigned char code yinfu=0x01,0x01, /用于停顿0xfb,0xe
30、9, /Do 644890xfc,0x5c, /Re 646040xfc,0xc1, /Mi 64705 0xfc,0xef, /Fa 647510xfd,0x45, /So 648370xfd,0x92, /La 649140xfd,0xd0, /Si 649760xfd,0xee, /Do# 650060xfe,0x2c,/re# 0xfe,0x5b/mi# ;/*音调*/unsigned char code xiaoge_tone= 5,1,0,3,5,2,3,1,0,8,6,6,5,6,5,3,5,5,0, 1,8,0,6,8,5,3,2,0,8,6,6,5,2,2,3,2,1,0,5,8,6,5,10,9,8,9,9,0,10,9,8,7,6,7,9,8,6,5,0,5,3,2,1,2,3,6,5,5,0,8,6,6,5,6,5,3,2,2,0,1,2,3,5,7,6,5,8,9,0,5,10,9,8,3,5,7,6,5,8;/*节拍*/unsigned char code xiaoge_beat=64,48,5,18,18,18,18,36,1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1