单片机数字音乐盒设计剖析Word下载.docx
- 文档编号:8012007
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:14
- 大小:382.87KB
单片机数字音乐盒设计剖析Word下载.docx
《单片机数字音乐盒设计剖析Word下载.docx》由会员分享,可在线阅读,更多相关《单片机数字音乐盒设计剖析Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
致谢14
参考文献15
1绪论
本文通过对基于单片机音乐演奏控制设计的研究和设计,分析了设计的实现的意义和可行性。
单片机AT889S51是一种非常小巧但功能非常多,应用非常广的一种芯片,功率也非常的小,采用AT89S51作为系统核心制作音乐演奏控制设计电路简单了很多,由于可以反复烧写,为学习降低成本。
本设计外部采用单片机的复位电路设计、单片机的震荡电路设计、LED数码管显示正在播放的音乐序号,按键控制等,但由于AT89S51分辨率不是太高,音乐有点单调,另外,由于时间关系具体电路还有的地方不尽完善之处。
1.1概述
本设计是基于单片机的数字音乐盒设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。
要求利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用LCD显示信息,从而演奏乐曲(最少三首乐曲,每首不少于30秒),开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称),可通过功能键选择乐曲,暂停,播放。
本设计采用4*4键盘,16*2LCD,七段显示数码管LED。
课设准备中根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。
1.2基本工作原理及框图
基本工作原理:
通过按键给单片机的P2口输入低电平,进而利用程序来判断是否执行某一播放功能。
而利用单片机的定时器0中断来控制播放乐曲。
框图如下图一[1]。
图1整体框图
1.2.1AT89C51单片机简介
AT89C51[2]是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1、主要特性:
寿命:
1000写/擦循环
·
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道2
低功耗的闲置和掉电模式·
片内振荡器和时钟电路图2管角说明
2、管脚说明(如图2)。
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口也可作为AT89C51的一些特殊功能口,如下所示。
管口管脚备选功能
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、振荡器特性[3]。
XTAL1和XTAL2分别为反向放大器的输入和输出。
片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4、芯片擦除[4]。
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合。
管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
1.2.2键盘
键盘[5]在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。
1、键盘输入的特点,键盘实质上是一级按键开关的集合。
通常,键盘开关利用了机械触点的合、断作用。
2、按键的确认,键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。
为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。
3、如何消除按键的抖动,采用软件来消除按键抖动的基本思想是:
在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是不否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。
当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。
1.2.3LED显示器
LED(LightEmittingDiode)是发光二极管英文名称的缩写。
LED显示器[6]是由发光二极管构成的,所以在显示器前面冠以“LED”。
LED显示器在单片机系统中的应用非常普遍。
1、LED显示器的结构:
常用的LED显示器为8段。
每一个段对应1个发光二极管,这种显示器有共阳极和共阴极两种:
共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。
当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。
为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称为段码。
7段发光二极管,再加上1个小数点位,共计8位。
因此提供给LED显示器的段码正好是1B。
各段与字节中各位对应关系如下表一。
表一各段与字节中各位对应关系
代码位
D7
D6
D5
D4
D3
D2
D1
D0
显示位
dp
g
f
E
d
c
b
a
2、LED显示器工作原理由N个LED显示块可以拼接成N位的LED显示器。
N个LED显示器有N个位选线和8*N位根段码线。
段码线控制显示字符的字型,而位选线为各个LED显示块中各段的公共端,它控制该LED显示位的亮或暗。
LED显示器有静态显示和动态显示两种。
1.2.4时钟电路模块
在单片机系统中起着非常重要的作用,保证系统正常工作的基础。
在一个单片机应用系统中,时钟[7]是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。
为达到振荡周期是12MHZ的要求,这
里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。
具体如图3所示。
图3时钟电路连接图
1.2.5系统复位电路的设计
智能系统一般应有手动或上电复位电路。
复位电路的实现通常有两种方式:
RC复位电路和专用µ
P监控电路。
前者实现简单,成本低,但复位可靠性相对较低;
后者成本较高,但复位可靠性高,尤其是高可靠重复复位。
对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。
本次课程设计采用了上电按钮电平,如图4[8]。
图4复位电路图
1.2.6硬件电路端口分配
1、电路中用P1.0-P1.7控制按键,其中P1.0-P1.3扫描行,P1.4-P1.7扫描列。
2、用P0.0-P0.7,P2.0-P2.7控制LED,其中P0.0-P0.7控制七段a,b,c,d,e,f,g,用P2.0-P2.7为数码管位选信号。
3、用P2.0-P2.2作为控制信号。
用P0.0-P0.7作为LCD的D0-D7的控制信号。
2软件设计
2.1主模块的设计
主模块是系统软件的主框架。
本系统的主模块[9]的程序框图如下图5所示。
图5程序框图
2.2基本显示模块设计
基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
程序流程图如图6所示。
通过串口将时分秒数据传入数码管
关显示以免显示抖动
打开显示
图6程序流程
2.3外部中断源系统设计
在本设计中中断[10]源是采用外部中断0方式,其入口地址是0003H。
其中断响应级别最高。
(1)定时器/计数器。
下面对:
门控位—GATE,工作方式选择位—M1、M0。
工作方式如下表二。
M1
M0
工作方式
方式0,为13位定时器/计数器
1
方式1,为16位定时器/计数器
方式2,8位的常数自动重新装载的定时器/计数器
方式3,仅适用于T0
表二TMOD各位说明
定时器/计数器控制寄存器TCON,其格式如下表三。
表三寄存器TCON格式表
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
ITO
2.4系统初始化程序
RWBITP2.1
EBITP2.2
L50MSEQU60H
L1MSEQU61H
L250MSEQU62H
SECEQU65H
MINEQU64H
HOUEQU63H
ORG0000H
LJMPMAIN
ORG000BH
LJMPTT0
ORG001BH
LJMPT1INT
ORG1000H
MAIN:
液晶初始化
MOVSP,#70H
MOVP0,#01H;
清屏
CALLENABLE
MOVP0,#38H;
8位,2行显示
LCALLENABLE
3Proteus软件仿真
3.1总电路图与调试
本次课程设计所采用的程序调试软件为wave6000集成调试软件,所采用的仿真软件为protus6professional软件。
总图如下图7。
图7总电路图
3.2按键功能说明
1~A:
十首歌曲C:
上一首歌曲D:
下一首歌曲
E:
歌曲暂停F:
开机画面
开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)可通过功能键选择乐曲,暂停,播放。
选作内容:
显示乐曲播放时间或剩余时间.结构化软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。
软件调试可以采取离线调试和在线调试两种方式。
前者不需要硬件仿真器,可借助于软件仿真器即可;
后者一般需要仿真系统的支持。
本次课设,采用wave6000集成调试软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。
仿真部分采用protus6professional软件,此软件功能强大且操作较为简单。
总结
单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。
虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。
令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实现了定时闹钟的功能,所有的努力都很值得。
这一周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。
在设计的过程中不仅巩固了以前所学过的知识,加深了我对所学知识的理解,而且学到了很多在书本上所没有的知识。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。
总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。
真是曾经为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我成功了。
我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。
致谢
至今我仍感慨颇多。
的确,从如题到整稿,从理论到实践,在这些日子里,可以说投入了好多心力,不仅有我夜以继日的查找资料,也有老师的辛勤指导,老师不辞辛劳为我们耐心讲解,首先感付瑞玲老师的帮助,以及很多同学的热情探讨。
李老师渊博的学识,严谨的治学态度使我有了对理工科的热情,我以后会更加努力学习,虽然在学校的时间不太多了。
同学们的协作让我明白要更加珍惜大学四年的友谊,珍惜大学在一起剩下不多的时光。
感谢老师,感谢同学们在一起的缘分,大家好好学习,找到一份好工作!
在此期间,我也从我的室友和同学们那里得到许多帮助,是他们在我苦无头绪之时帮我寻找资料,在我有疑难时耐心给我讲解,并一直给予我鼓励和支持,支持我认真细致的完成这篇设计。
我也要向他们致以谢意!
最后,祝福可爱的老师们生活幸福!
同学们能找到一份满意的工作!
参考文献
[1]何立民.单片机高级教程(应用与设计)[M]北京航空航天大学出版社,2000年.53-98
[2]涂时亮,张友德.单片微机控制技术[M].清华大学出版社.1994:
86-87146-147
[3]《融会贯通Protel99电路设计》[M]弘道工作室北京人民交通出版设,2000.
[4]《单片机原理及接口技术实验》[M]朱定华北京北方交通大学出版社2002.11
[5]杨刚,周群.电子系统设计与实践[M].电子工业出版社.2004:
18-23341-347118-122
[6]
许珉.单片机原理及应用[M].北京:
中国电力出版社,2007.08
[7]
王为青,程国钢.单片机Keil
Cx51应用开发技术[M].
北京:
人民邮电出版社,2007.02
[8]
John
Markus.电子电路大全[M].北京:
计量出版社,1995
[9]
阎石.数字电子技术基础[M].北京:
高等教育出版社,1998.12,第4版
[10]
邓元庆.数字电路与逻辑设计[M].北京:
电子工业出版社,2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数字 音乐盒 设计 剖析