51单片机设计应用.docx
《51单片机设计应用.docx》由会员分享,可在线阅读,更多相关《51单片机设计应用.docx(26页珍藏版)》请在冰豆网上搜索。
51单片机设计应用
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是一种低功耗、高性能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字节在系统可编程FlashAT89S52
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,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:
MOVSP,#60H;初始化堆栈指针
MOV30H,#00;定时器初值清零
MOV31H,#00
MOVP1,#0FFH;设置P1口为输入模式
MOVTOMD,#01H;设置定时器0为工作模式1
SETBET0;开定时器0中断
SETBEA;开总中断
CLRTR0;关闭定时器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].机械工业出版社.
附录一
MOVP1,#0FFH
MOVTMOD,#01H
SETBET0
SETBEA
CLRTR0
START:
MOVR3,P2
CJNER3,#0FFH,KEY1
CLRTR0
SJMPSTART
KEY1:
;按键1,P2.0
CJNER3,#0FEH,KEY2
MOV30H,#0FBH
MOV31H,#0E9H
MOV@R0,#0FBH;将音阶存放到R0,R1对应的地址中
MOV@R1,#0E9H
INCR0
INCR1
LJMPSET_TIMER
KEY2:
;按键2,P2.1
CJNER3,#0FDH,KEY3
MOV30H,#0FCH
MOV31H,#5CH
MOV@R0,#0FCH
MOV@R1,#5CH
INCR0
INCR1
LJMPSET_TIMER
KEY3:
;按键3,P2.2
CJNER3,#0FBH,KEY4
MOV30H,#0FCH
MOV31H,#0C1H
MOV@R0,#0FCH
MOV@R1,#0C1H
INCR0
INCR1
LJMPSET_TIMER
KEY4:
;按键4,P2.3
CJNER3,#0F7H,KEY5
MOV30H,#0FCH
MOV31H,#0EFH
MOV@R0,#0FCH
MOV@R1,#0EFH
INCR0
INCR1
LJMPSET_TIMER
KEY5:
;按键5,P2.4
CJNER3,#0EFH,KEY6
MOV30H,#0FDH
MOV31H,#045H
MOV@R0,#0FDH
MOV@R1,#045H
INCR0
INCR1
LJMPSET_TIMER
KEY6:
;按键6,P2.5
CJNER3,#0DFH,KEY7
MOV30H,#0FDH
MOV31H,#92H
MOV@R0,#0FDH
MOV@R1,#92H
INCR0
INCR1
LJMPSET_TIMER
KEY7:
;按键7,P2.6
CJNER3,#0BFH,KEY8
MOV30H,#0FDH
MOV31H,#0D6H
MOV@R0,#0FDH
MOV@R1,#0D6H
INCR0
INCR1
LJMPSET_TIMER
KEY8:
;按键8,P2.7,用来进入音乐自动播放《生日快乐》
CJNER3,#7FH,NOKEY
LCALLYYBF;调用音乐自动播放程序
LJMPSET_TIMER
SET_TIMER:
SETBTR0
LJMPSTART
NOKEY:
CLRTR0
LJMPSTART
INT_T0:
MOVTH0,30H
MOVTL0,31H
CPLP1.0
RETI
YYBF:
CLRP1.1
numtimequ20h
geweiequ21h
shiweiequ22h
scanledequ23h
org1000h
jmpYYstart
org001bh
jmptim0
org1100h
YYstart:
movtmod,#00010000b
setbea
setbet1
movnumtim,#01h
movr6,#2h
YYstart0:
mov40h,#00h
next:
mova,40h
movdptr,#table
movca,@a+dptr
movr2,a
jzend0
anla,#0fh
movr5,a
mova,r2
swapa
anla,#0fh
jnzsing
clrtr1
jmpd1
sing:
deca
mov22h,a
rla
movdptr,#table1
movca,@a+dptr
movth1,a
mov21h,a
mova,22h
rla
inca
movca,@a+dptr
movtl1,a
mov20h,a
setbtr1
d1:
lcalldelay
inc40h
jmpnext
end0:
clrtr1
djnzr6,YYstart0
jmpmain
tim0:
pushacc
pushpsw
movtl1,20h
movth1,21h
cplp1.0;声音频率输出口P1.0
poppsw
popacc
reti
delay:
movr7,#02h
d2:
movr4,#180
d3:
movr3,#248
djnzr3,$
djnzr4,d3
djnzr7,d2
djnzr5,delay
ret
table1:
dw64260,64400,64524,64580
dw64684,64777,64820,64898
dw64968,65030,65058,65110
dw65157,65178,65217
table:
db82h,01h,81h,94h,84h
db0b4h,0a4h,04h
db82h,01h,81h,94h,84h
db0c4h,0b4h,04h
db82h,01h,81h,0f4h,0d4h
db0b4h,0a4h,94h
db0e2h,01h,0e1h,0d4h,0b4h
db0c4h,0b4h,04h
db00
LYBF1:
MOV30H,@R0
MOV31H,@R1
INCR0
INCR1
CLRP0.0;调试用
SETBTR0
LCALLDELAY1
CLRTR0
LJMPLYBF1
RET
DELAY1:
MOVR4,#25
LOOP1:
MOVR5,#248
DJNZR5,$
DJNZR4,LOOP1
RET
END
附录二
作品实物图
电子琴主要电路原理图
LM386音频放大电路