单片机数字音乐盒设计剖析.docx

上传人:b****5 文档编号:11538601 上传时间:2023-03-19 格式:DOCX 页数:14 大小:382.87KB
下载 相关 举报
单片机数字音乐盒设计剖析.docx_第1页
第1页 / 共14页
单片机数字音乐盒设计剖析.docx_第2页
第2页 / 共14页
单片机数字音乐盒设计剖析.docx_第3页
第3页 / 共14页
单片机数字音乐盒设计剖析.docx_第4页
第4页 / 共14页
单片机数字音乐盒设计剖析.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机数字音乐盒设计剖析.docx

《单片机数字音乐盒设计剖析.docx》由会员分享,可在线阅读,更多相关《单片机数字音乐盒设计剖析.docx(14页珍藏版)》请在冰豆网上搜索。

单片机数字音乐盒设计剖析.docx

单片机数字音乐盒设计剖析

数字音乐盒的设计

摘要

本设计是基于单片机控制的数字音乐盒的设计外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。

对于不同型号的单片机只需要相应的改变一下地址即可。

该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。

由芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机数字音乐盒。

其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。

片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。

另外,AT89C51的指令系统和引脚与8051完全兼容,片内有128B的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。

在该设计中利用单片机I/O口产生一定频率的方波,驱动,发出各种不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒),并能够由LED显示信息。

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。

本设计采用4*4键盘,16*2LED,七段显示数码管LED。

关键词:

单片机AT89C51,RAM,蜂鸣器数码管,LED

目录

1绪论1

1.1概述1

1.2基本工作原理及框图1

1.2.1AT89C51单片机简介2

1.2.2键盘5

1.2.3LED显示器5

1.2.4时钟电路模块6

1.2.5系统复位电路的设计7

1.2.6硬件电路端口分配7

2软件设计7

2.1主模块的设计7

2.2基本显示模块设计8

2.3外部中断源系统设计9

2.4系统初始化程序9

3Proteus软件仿真11

3.1总电路图与调试11

3.2按键功能说明12

总结13

致谢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

0

方式0,为13位定时器/计数器

0

1

方式1,为16位定时器/计数器

1

0

方式2,8位的常数自动重新装载的定时器/计数器

1

1

方式3,仅适用于T0

表二TMOD各位说明

定时器/计数器控制寄存器TCON,其格式如下表三。

表三寄存器TCON格式表

TCON

D7

D6

D5

D4

D3

D2

D1

D0

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     

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1