数字音乐盒设计方案Word文件下载.docx
- 文档编号:20307201
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:40
- 大小:275.69KB
数字音乐盒设计方案Word文件下载.docx
《数字音乐盒设计方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字音乐盒设计方案Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
4按键、蜂鸣器5部分
AT89C52
2×
4
按键
文字型LCD(16×
2)
蜂鸣器
电源
组成。
第3章硬件电路
3.1AT89C52单片机简介
AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,AT89C2052是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
如下图3-1所示。
图3-1AT89C52
3.2主要特性
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片振荡器和时钟电路
3.2.1管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;
当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2.2振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片振荡器。
石晶振荡和瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2.3芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.3文字型LCD(16×
3.3.1LM017L说明
字符型LCD是一种通常用5*7点阵图形来显示字符的液晶显示器。
能显示的每个字符都有一个代码,代码对应字符的点阵图形数据由字符发生器产生,通过驱动电路后在LCD显示出字符。
字符型LCD有11条操作指令。
如图2-2所示。
图2-2文字型LCD(16×
3.3.2引脚功能
字符型LCD由14个引脚组成功能如表3-1所示。
表3-1字符型LCD引脚功能表
引脚号
符号
状态
功能
1
Vs
电源地
2
Vdd
正5V逻辑电源
3
Vo
液晶驱动电源
RS
输入
寄存器选择:
1.数据;
0.指令
5
R/W
读、写操作选择
6
E
使能信号
7至14
DB0—DB7
三态
数据总线
*15
E1
MDLS40466上两行使能信号
*16
E2
MDLS40466下两行使能信号
3.4电路设计
3.4.1单片机时钟电路设计
单片机的每一条指令的执行都是由若干个基本的微动作组合而成的。
例如由取指令、指令译码、指令执行等微动作组合而成。
这些微动作在时间上存在着严格的先后顺序,要想这些动作有条不紊地执行,就必须有一个时间基准来同步各部件的动作。
单片机的时钟信号就是用来提供单片机部各个微动作的时间基准。
而根据连接方式不同,时钟信号的产生有部振荡方式和外部振荡方式两种方式。
3.4.2部振荡方式
在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了部振荡方式。
AT89C52单片机部有一个高增益的反相放大器,XTAL1为部反相放大器的输入端,XTAL2为部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。
在实际应用常还需要在晶振的两端和地之间各并上一个小电容。
实际的部振荡方式的电路如图2.7所示。
在图中,电容器C1、C2常称为微调电容,其作用有三个:
快速起振、稳定振荡频率、微调振荡频率。
AT89C52单片机允许外接0~33MHz的晶振,电容器C1、C2可取5pF~33pF。
一般情况下,使用频率较低的晶振时,C1、C2的容量可选大一点。
为了减少寄生电容,更好地保证振荡器稳定可靠地工作,在实际装配电路时,晶振X和电容C1、C2应尽可能地安装在XTAL1、XTAL2引脚附近。
部振荡方式所得到时钟信号比较稳定,在实际电路中,一般是选用部振荡方式。
所以,在本次设计中才用了该振荡方式。
图2.7部振荡方式电路
3.4.3外部振荡方式
把外部已有的时钟信号接至XTAL1引脚,而将XTAL2悬空,这样就构成了外部振荡方式。
外部振荡方式适合于使单片机的时序与外部信号保持同步的场合。
在实际应用中,为了使进入单片机的时钟信号为TTL电平,常将外部时钟信号经过一个带有上拉电阻的TTL反相门后,再接至XTAL1引脚。
实际的外部振荡方式电路如图3-8示:
图3-8外部振荡方式电路
实际应用中,常常需要检查单片机的振荡电路是否正常工作,此时可用示波器查看XTAL2引脚上是否有正常的脉冲输出。
若有,则表明振荡电路工作基本正常,否则振荡电路失常。
由于XTAL1引脚为部反相放大器的输入端,该引脚上的信号远比XTAL2引脚上的信号弱,因此切不可观察XTAL1引脚,否则有可能出现本来已起振的电路反而停振。
3.5单片机复位电路
复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位电路如下图A中左图所示。
图中电容C1和电阻R1对电源十5V来说构成微分电路。
上电后,保持RST一段高电平时间,由于单片机的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
常用的上电或开关复位电路如上图(B)所示。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。
上图(A)中:
Cl=10-30uF,R1=1kO
上图1.27(B)中:
C:
=1uF,Rl=lkO,R2=10kO
PS:
AVR是低电平复位,恰好相反。
3.6整体电路设计
3.6.1硬件电路图
利用Proteus软件设计八音盒硬件电路原理图如图3-4所示。
在Proteus软件中,单片机模型本身包含了工作电源和可改变的工作频率,因此在仿真时无需设计电源电路和时钟电路。
由于是利用Proteus软件进行仿真设计可以不考虑晶振电路,但在实际中需要考虑晶振电路。
本设计需要一个文字型LCD(16×
2)显示播放的歌曲的序号,及乐曲播放时间,开机时有英文欢迎提示字符。
3.6.2硬件原理说明
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。
也可在LED显示歌曲号。
图3-4硬件电路图
3.6.3按键电路
按键电路如图3-5所示:
P1.0-P1.7控制按键,其中P1.0-P1.1扫描行,P1.4-P1.7扫描列。
图3-5按键电路
3.6.4文字型LCD电路
如图3-6所示文字型LCD(16×
2)的D0-D07端口与AT89C52端口P0.0-P0.7相连接VSS与VEE两端接地。
P2.0-P2.2作为LCD的RS,R/W,E的控制信号。
用P0.0-P0.7作为LCD的D0-D7的控制信号。
图3-6文字型LCD电路
3.6.5蜂鸣器电路
如图3-7所示用P3.0口控制蜂鸣器。
图3-7蜂鸣器电路
3.6.6按钮说明
按钮如图3-8所示:
1-3:
三首歌曲,A:
下一首歌曲,B:
下一首歌曲C:
歌曲暂停,D:
开机画面。
图3-8按钮电路
第4章软件电路设计
4.1程序流程图
根据电路可以得出流程图如图4-1所示:
主程序开始,液晶初始化、清屏、存初始化等变量及LCD接口初始化,还有计数器T0、定时器T1初始化。
完成初始化后,LCD显示WELCOME字符。
等待按键,是否有按键按下?
若有LCD显示播放时间及歌曲号,并转到按键对应的程序执行;
若无按键按下,处以等待状态。
当按键按下后相应的程序执行完,转到“等待是否有按键按下?
”处。
图4-1程序流程图
4.2音乐程序的设计原理
4.2.1建立音乐的步骤
1.先把乐谱的音符找出,然后建立T值表的顺序。
2.把T值表建立在TABLE1,构成发音符是计数值放在“TABLE”。
3.简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。
4.2.2单片机音乐的产生原理
1.要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
2.利用8052的部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。
3.例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系公式如下:
N=Fi÷
2÷
FrN:
计数值;
Fi:
部计时一次为1us,故其频率为12MHz;
Fr:
要产生的频率;
4.其计数值的求法如下:
T=65536-N=65536-Fi÷
Fr
例如:
设K=65536,F=1000000=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、音DO(1046MHz)的计数值。
Fr=65÷
Fr=65536-500000/Fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1047=65059
5.C调各音符频率与计数值T的对照表如表4—1所示:
表4—1C调各音符频率与计数值T的对照表
音符
频率(Hz)
简谱码(T值)
低1DO
262
63628
#4FA#
740
64860
#1DO#
277
63731
中5SO
784
64898
低2RE
294
63835
#5SO#
831
64934
#2RE#
311
63928
中6LA
880
64968
低3M
330
64021
#6
932
64994
低4FA
349
64103
中7SI
988
65030
370
64185
高1DO
1046
65058
低5SO
392
64260
1109
65085
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
高1DO
523
64580
1480
65198
554
64633
高5SO
1568
65217
中2RE
587
64684
1661
65235
622
64732
高6LA
1760
65252
中3M
659
64777
1865
65268
中4FA
698
64820
高
1967
65283
表4-2节拍与节拍码对照
节拍码
节拍数
1/4拍
1/8拍
2/4拍
3/4拍
3/8拍
1拍
1/2拍
1又1/4拍
5/8拍
1又1/2拍
8
2拍
A
2又1/2拍
C
3拍
F
3又3/4拍
表4-3各调1/4节拍的时间设定各调1/4节拍的时间设定
曲调值
DELAY
调1/4
125毫秒
调4/4
62毫秒
调3/4
187毫秒
94毫秒
调2/4
250毫秒
1/4拍的延迟时间=187毫秒
DELAY:
MOVR7,#02
D2:
MOVR4,#187别的延迟值,只需修改这儿的值为相应值,即可。
D3:
MOVR3,#248
DJNZR3,$
DJNZR4,D3
DJNZR7,D2
DJNZR5,DELAY节拍值放在R5,决定节拍
RET
相关知识:
每一音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,节拍与节拍码的对照如表4-2所示。
节拍与节拍码的对照。
如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。
假使1/4拍为1DELAY,则1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DEALY时间,其余的节拍就是它的倍数,如表4-3所示为1/4和1/8节拍的时间设定。
简谱发音简谱码T值
表4—4简谱对应的简谱码、T值、节拍数
简谱
发音
简谱码
T值
低音SO
低音LA
7
低音TI
中音DO
中音RE
中音MI
中音FA
中音SO
中音LA
9
中音TI
高音DO
B
高音RE
高音MI
D
高音FA
高音SO
不发音
第5章单片机的仿真
5.1编程KeiluVision3软件
KeilC51软件是单片机应用开发的优秀软件,它集编辑、编译、仿真于一体,界面友好功能强大,支持51汇编、PLM和C语言及混合编程。
KielC51能模拟开发软件在计算机上实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 音乐盒 设计方案