#基于51单片机简易电子琴
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 课题背景
单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。
他的应用必定导致传统的控制技术从根本上发生变革。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。
主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。
并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。
当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。
2 任务要求与总体设计方案
2.1 设计任务与要求
利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。
如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。
前面的发音停止,转到后按的键的发音程序。
发出后按的键的音调。
2.2 设计方案
2.2.1 播放模块
播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。
2.2.2 按键控制模块
电子琴设有8个按键,其中7个作为音符输入,另外一个作为模式转换按键,实现用户存放的自动播放歌曲。
7个按键分别代表7个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。
然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序入口,实
现自编歌曲的。
2.3 总体硬件组成框图
该设计方案是通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
通过这样可以不断的弹奏我们想要的音符或者是音调,电路由复位电路,指示灯电路,和功能按键电路组成,通过功能键可以选择播放音乐或者弹奏音节,硬件主要有下面几个部分组成。
图2-1电子琴硬件设计框图 用P2口的高四位和P2口的第四位作为按键的接口,用P1口做信号输出口。
3 系统的硬件设计
为了使电子琴的控制系统更加的方便、灵活以及稳定性,我们对系统硬件进行了简约和优化,使硬件更加的实用,更加的人性化,硬件电路包括中心控制模块、播放模块、按键控制模块、复位按键模块四大类。
3.1 中心控制模块的硬件设计
这次设计的中心控制模块是采用AT89S52单片机来控制整个系统。
其中P2口作为输入口,P1口为信号输出口,P1.0连接音响驱动电路。
3.2 声音播放模块的硬件设计
如下图所示,为声音的播放模块,它接到P1.0口上,当有按键按下时,它通过AT89S52中心控制芯片的识别后发出相应的音符。
图3-1音频放大电路 3.3 按键控制模块和复位电路模块的硬件设计
在P2口连接有8个按键开关加8个拉电阻,它们一端接5伏电源,一端接地。
只要有一个按键被按下,并被单片机扫描到,则会播放发出音符。
图3-2上图为按键复位电路
图3-3上图为按键电路
4 单片机最小系统设计
4.1 电子琴主要电路及其芯片
在电子琴主要电路设计中,我们采用了AT89S52单片机芯片,其特点及管脚封装如下介绍一般。
功 能 选 择 (弹奏/播放)
键盘输入
AT89S52单片机 音频放
大 喇叭发
出声音
At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8 位微控制器 8K 字节在系统可编程 Flash AT89S52
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 INTO(外中断0)
P3.3 INT1(外中断1)
P3.4 TO(定时/计数器0)
P3.5 T1(定时/计数器1)
P3.6 WR(外部数据存储器写选通)
P3.7 RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
上图为AT89S52芯片的管脚图
4.2 音频功放电路LM386芯片
电子琴的功放电路采用了LM386芯片,使用AT89S52驱动音频放大芯片工作,以达到我们想要输出的音频效果。
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。
输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
图4-1为LM386管脚封装图。
按键按下成功否
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少喝和谐波失真小等优点,广泛应用于录音机和收音机之中。
4.3 扬声器
扬声器是一种把电平转变为声信号的换能器件,扬声器和性能对音质的高低音响很大。
扬声器的种类很多,按其换能原理可分为电动式、静电式、电磁式、压电式等几种,
后两种多用于农村有线广播网中,按频率范围可分为低音扬声器、中音扬声器,这些常
在音箱中作为组合扬声器使用。
在本次试验作品中使用电磁式扬声器
图4-2为所使用的扬声器实物图
软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也用了模块设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
4.4 系统软件流程
图4-3软件设计流程图
本系统软件中还要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子
琴控制系统控制和播放内容的程序。
源程序参考附录一 主要程序: MAIN:
MOV SP,#60H ;初始化堆栈指针 MOV 30H,#00 ;定时器初值清零 MOV 31H,#00
MOV P1,#0FFH ;设置P1口为输入模式 MOV TOMD ,#01H ;设置定时器0为工作模式1 SETB ET0 ;开定时器0中断 SETB EA ;开总中断
识别按键功能 根据按键功能,装入音符T 值到T0中
启动T0工作
停止T0工作
开始 T0初始化并开中断允放T0中断
CLR TR0 ;关闭定时器0
在程序编写中多次采用了判断指令,来扫描按键的按下,然后把相应的音符传送到指定的内存空间,使其相应的按键对应相应的音符。
源程序参考附录一。
5 电路的仿真和调试
Proteus的ISIS事一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。
目前支持的单片机类型有:680以及各种外围芯片0系列、8051系列、AVR系列、PIC12系列、HC11系列。
图5-1电路仿真图
5-1电子琴仿真图
把程序烧进单片机,进行仿真没有问题,证明电路原理图和程序可以使用。
实物图参考附录二,在腐蚀焊接过程中应该多注意烫印板子时应尽量的小心,把该补的线都补好,等板子上的油路晾干后再进行腐蚀,这样可以尽量避免短线的发生。
该作品的音量的大少由可调电阻器来调节,实物图如下所示
2 图5-2可调电阻器
由于音频功放电路采用了LM386芯片,使得音频放大更加的稳定和没有杂音,进一步达到了实验目的理想效果
在此之前,本实验组功放电路曽一度采用简单的三极管NPN9013放大电路来播放声音,其仿真图如下所示:
图5-3NPN9013功放电路
仿真虽然成功,但是在做完板子调试的时候性能及其不稳定,音响效果也很差,声音大小无法调节,最后通过询问老师以及同学,最后采用了LM386芯片的音频放大电路,最终达到了实验所要的目的。
在作品板的调试过程中,本作品的复位电路的高电平和单片机没有接好,在一开始的调试中就遇到了难题,最终在检验板子和检测中找出问题,并以解决,最终达到了实验的目的。
总结
将以调试好的程序烧进AT89S52芯片,再放到电路板中,按下按键就可以发出相应的音。
本次试验通过制作电子琴,将几个模块换呢好的融合起来,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
说明一首音乐是许多不同的音
阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时同股沟显示模块来确知自己所弹的音符。
通过这次实训设计,我感觉收获了很多:通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。
这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我们受益匪浅。
在这次的实训中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了汇编程序的思路,加强了对编程能力的理解和对相应资料的查阅。
谢词
在这次实训过程中,能够得以顺利的完成,是所有曾经指导过我的老师,帮助过我的同学,成功是你们的帮助和鼓励成果。
在这里我要对你们表示深深的谢意!
首先,我要特别感谢我的指导老师,李静老师,莫容老师,在实训过程中,提供了许多宝贵的建议,老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不惓的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。
不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。
参考资料
[1]刘乐喜.微机计算机接口技术及应用[M].华中科技大学出版社.
[2]石东海.单片机数据通信技术从入门到精通.[M].西安电子科技大学出版社.
[3]谢自美等.电子线路设计、实验、测试.[M].华中科技大学出版社
[4]长德,李华,李东,MC51/98系列单片机原理与应用。
[M].机械工业出版社.
附录一
MOV P1,#0FFH
MOV TMOD,#01H
SETB ET0
SETB EA
CLR TR0
START:
MOV R3,P2
CJNE R3,#0FFH,KEY1
CLR TR0
SJMP START
KEY1: ;按键1 ,P2.0
CJNE R3,#0FEH,KEY2
MOV 30H,#0FBH
MOV 31H,#0E9H
MOV @R0,#0FBH ;将音阶存放到R0,R1对应的地址中
MOV @R1,#0E9H
INC R0
INC R1
LJMP SET_TIMER
KEY2: ;按键2 ,P2.1
CJNE R3,#0FDH,KEY3
MOV 30H,#0FCH
MOV 31H,#5CH
MOV @R0,#0FCH
MOV @R1,#5CH
INC R0
INC R1
LJMP SET_TIMER
KEY3: ;按键3 ,P2.2
CJNE R3,#0FBH,KEY4
MOV 30H,#0FCH
MOV 31H,#0C1H
MOV @R0,#0FCH
MOV @R1,#0C1H
INC R0
INC R1
LJMP SET_TIMER
KEY4: ;按键4 ,P2.3
CJNE R3,#0F7H,KEY5
MOV 30H,#0FCH
MOV 31H,#0EFH
MOV @R0,#0FCH
MOV @R1,#0EFH
INC R0
INC R1
LJMP SET_TIMER
KEY5: ;按键5 ,P2.4
CJNE R3,#0EFH,KEY6
MOV 30H,#0FDH
MOV 31H,#045H
MOV @R0,#0FDH
MOV @R1,#045H
INC R0
INC R1
LJMP SET_TIMER
KEY6: ;按键6 ,P2.5
CJNE R3,#0DFH,KEY7
MOV 30H,#0FDH
MOV 31H,#92H
MOV @R0,#0FDH
MOV @R1,#92H
INC R0
INC R1
LJMP SET_TIMER
KEY7: ;按键7 ,P2.6
CJNE R3,#0BFH,KEY8
MOV 30H,#0FDH
MOV 31H,#0D6H
MOV @R0,#0FDH
MOV @R1,#0D6H
INC R0
INC R1
LJMP SET_TIMER
KEY8: ;按键8,P2.7,用来进入音乐自动播放《生日快乐》CJNE R3,#7FH,NOKEY
LCALL YYBF ;调用音乐自动播放程序
LJMP SET_TIMER
SET_TIMER:
SETB TR0
LJMP START
NOKEY:
CLR TR0
LJMP START
INT_T0:
MOV TH0,30H
MOV TL0,31H
CPL P1.0
RETI
YYBF:
CLR P1.1
numtim equ 20h
gewei equ 21h
shiwei equ 22h
scanled equ 23h
org 1000h
jmp YYstart
org 001bh
jmp tim0
org 1100h
YYstart: mov tmod,#00010000b setb ea
setb et1
mov numtim,#01h
mov r6,#2h
YYstart0:mov 40h,#00h
next: mov a,40h
mov dptr,#table
movc a,@a+dptr
mov r2,a
jz end0
anl a,#0fh
mov r5,a
mov a,r2
swap a
anl a,#0fh
jnz sing
clr tr1
jmp d1
sing: dec a mov 22h,a
rl a
mov dptr,#table1
movc a,@a+dptr
mov th1,a
mov 21h,a
mov a,22h
rl a
inc a
movc a,@a+dptr
mov tl1,a
mov 20h,a
setb tr1
d1:lcall delay
inc 40h
jmp next
end0:clr tr1
djnz r6, YYstart0
jmp main
tim0:push acc
push psw
mov tl1,20h
mov th1,21h
cpl p1.0 ;声音频率输出口P1.0
pop psw
pop acc
reti
delay: mov r7,#02h
d2: mov r4,#180
d3: mov r3,#248
djnz r3,$
djnz r4,d3
djnz r7,d2
djnz r5,delay
ret
table1: dw 64260,64400,64524,64580
dw 64684,64777,64820,64898
dw 64968,65030,65058,65110
dw 65157,65178,65217
table:db 82h,01h,81h,94h,84h
db 0b4h,0a4h,04h
db 82h,01h,81h,94h,84h
db 0c4h,0b4h,04h
db 82h,01h,81h,0f4h,0d4h
db 0b4h,0a4h,94h
db 0e2h,01h,0e1h,0d4h,0b4h
db 0c4h,0b4h,04h
db 00
LYBF1:
MOV 30H,@R0 MOV 31H,@R1
INC R0
INC R1
CLR P0.0 ;调试用SETB TR0
LCALL DELAY1
CLR TR0
LJMP LYBF1
RET
DELAY1:
MOV R4,#25
LOOP1:
MOV R5,#248
DJNZ R5,$
DJNZ R4,LOOP1
RET
END
附录二
作品实物图
电子琴主要电路原理图
LM386音频放大电路。