ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:187.59KB ,
资源ID:4948322      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4948322.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AT89C51单片机的电子音乐盒设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AT89C51单片机的电子音乐盒设计.docx

1、基于AT89C51单片机的电子音乐盒设计 黄河科技学院课程设计任务书 工学院 机械 系机械设计制造及其自动化专业 11 级 机电三 班学号 11 姓名 指导教师 朱煜钰 题目: 基于AT89C51单片机的电子音乐盒设计 课程: 单片机应用技术课程设计 课程设计时间 2014年 10月27 日 至2014年11 月 10 日 共 2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1设计要求利用AT89C51单片机作为微控制器,用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);可以用输入按钮在几种灯光效果间切换;可以通过按钮

2、暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。创新设计: 2. 设计任务与要求2.1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。2.2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2.3 Proteus仿真用Proteus对系统软硬件进行仿真调试并通过。2.4 编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系

3、统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。3工作计划 序号设计内容所用时间1布置任务及调研天3制作与调试天4撰写设计报告书2天合 计14天4主要参考资料单片机课程设计指导书 皮大能 北京理工大学出版社 2012.78051单片机实践与应用 吴金戎 清华大学出版社 2003.8单片机技术基础教程与实践 夏路易 电子工业出版社 2008.1单片机原理及应用 张毅刚 高等教育出版社 2012.11基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社

4、2007.7 指导老师签字: 日 期: 摘要为了实现单片机控制音乐播放,在本次课程设计中尝试基于单片机AT89C51音乐盒的设计对这一思路进行验证。本设计采用了蜂鸣器发声来实现歌曲的播放,能够保持基本的音调不变,流畅播放歌曲。主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。数码管采用共阳极数码管,通过单片机P1接口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过P3接口控制,实现歌曲播放顺序的调换和暂停功能;蜂鸣器由单片机的P2接口控制,实现歌曲播放;彩灯使用普通二极管,能实现单色常亮和闪烁的效果。主要工作过程是通过功能键实现上、下曲目的播放及暂停功能,同时有数码管

5、显示当前播放曲目的序号,并会有不同的彩灯闪烁效果。本次设计要使用单片机及KeilC51编程软件编程和Proteus单片机仿真软件,电工学等方面的有关知识。用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。关键字:AT89C51单片机,音乐盒,方波,音调AbstractIn order to achieve the single chip microcomputer control music playback, try in the curriculum design

6、based on single chip microcomputer AT89C51 music box design on this train of thought for validation.This design USES the buzzer sound to realize the songs played, can maintain the basic tone is changeless, smooth play songs.Main design module includes digital tube display, keyboard function part, bu

7、zzer sound, the lights.Digital tube using a total of anode digital tube, controlled by single chip microcomputer P1 interface, realize song number display;Through P3 interface, keyboard switch with buttons, control, realize the order of the songs and pause switch function;Buzzer is controlled by a s

8、ingle-chip microcomputer P2 interface, realize the songs;Lights use normal diode, can realize monochrome normally on and flashing effect.Main working process is through the function keys achieve the function of upper and lower the music play and pause, at the same time have digital tube display the

9、current track number, and have different lights flashing effect.The design to use single chip microcomputer and KeilC51 and Proteus single-chip microcomputer simulation software, programming software programming on the knowledge of electrotechnics, etc.Use KeilC51 programming software programming, u

10、se PROTEUS single-chip microcomputer simulation software simulation.Finally make physical, download the program to MCU, using I/O mouth produce certain frequency square wave, drive buzzer, a different tone, so as to play music.Keywords:AT89C51 Microcontroller,musical box,square wave,tone1设计方案分析1.1设计

11、功能要求1.利用I/O口处产生一定频率的方波,驱动蜂鸣器,产生不同的音调从而演奏乐曲,达到预期目标。2.采用七段数码管显示当前播放歌曲的序号数。3.通过功能键实现上、下及暂停曲目播放的功能。1.2总体设计原理通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。如中音D0,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,在

12、每计数956次时将I/O口反相,就可得到中音D0(523HZ)。当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,在LED显示歌曲号,也可使彩灯长亮和闪烁。数码管采用共阳极数码管,通过单片机P1口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P2口控制,实现歌曲播放;彩灯是由普通发光二极管代替,通过键盘能实现单色长亮和闪烁效果。通过功能键可以实现播放上一曲、下一曲、暂停,同时可以通过数码管显示当前播放的曲目序号,蜂鸣器播放出音乐。当播放出最后一曲时伴有彩灯闪烁。

13、1.3总体设计框图单片机接5V电源供电,晶振电路产生单片机所需的时钟周期,通过功能键实现外部中断,控制音乐盒的上一曲、下一曲和暂停功能的实现,再由I/O接口输出控制蜂鸣器发声,LED显示,彩灯闪烁或暂停。另外,复位电路的功能在于使音乐盒的工作恢复到初始状态,在程序出错时,重新启动单片机工作。 图1.1整体设计框图通过编程软件设定好程序后,由单片机AT89C51的定时器每秒钟通过P1.0-P1.7接口控制LED数码显示,复位信号由按钮控制,每按下一次系统恢复一次原设定状态。电源、晶振部分、复位电路、单片机、功能键、LED及蜂鸣器部分将在后面的内容中做详尽说明,在此不再赘述。2.系统硬件设计2.1

14、电源电路设计采用经市电变压,稳压的稳压电路如下图所示单片机采用的是5V(+_0.2V)的电源,对稳压电路的要求较高,因此可以用LM7805来实现此功能。首先用交流变压器将220V的交流电变为大于5V的交流电,例如7.5V或10.5V,然后使用桥式电路进行整流,电容进行整流滤波,将交流电处理为直流。然后使用7805进行5V恒压输出,供给单片机电路使用。2.2单片机最小系统单片机的最小系统以AT89C51为核心,外加时钟电路和复位电路,电路结构简单,抗干扰能力强,成本相对较低,比较符合本次课题的要求,89C51系列单片机是在MCS-51的基础上发展起来的,是当前8位单片机的典型代表,采用CMOS工

15、艺,即互补金属氧化物的CMOS工艺,COOS和MOS相结合的技术,具有MOS的高速度和高密度的特点,还具有CMOS低功耗的特点。单片机的工作环境需要有一个时间基准来统一控制各部分的工作状态此电路为时钟电路,时钟电路分为外部时钟电路和内部时钟电路,如下图所示,从图示可以看出采用外部电路比较复杂,因此本次课题的时钟电路选择内部时钟电路,时钟电路在单片机外部采用XTAL1和XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。本系统采用的是6MHz的晶振,一个机器周期为22us,C1,C2分别为22pF。 复位电路的基本功能是:系统的上电时提供复位信号,待系统电源稳定后撤销复位指令。为

16、可靠起见,在电源稳定后需要经历一段时间后撤消复位信号,防止电源开关或电源插头插合过程中引起的抖动而影响复位。复位电路分为上电自动复位和按键复位,电路图如下图所示,。其中RST是复位信号的输入端,复位信号是高电平段。本次采用手动复位设计,复位通过电容C3,C4和电阻R1,R2来实现,按键复位通过复位键来实现。 单片机的最小系统电路设计如下图设计所示,以AT89C51为核心进行设计。 单片机最小系统2.3数码管显示部分歌曲序号显示部分采用数码管来实现,LED显示器件是通过发光二极管来显示字段的器件。在单片机的控制系统中最常用的是7段LED数码管,它的显示块中有8个发光二极管,7个二极管组成字符“8

17、”,一个二极管组成小数点。LED数码管的管脚配置如图a示。LED显示块如图b所示。它们经电阻和单片机的控制端连接在一起,只要改变控制端口的电平就能控制LED的点亮或熄灭。LED共有阳极和阴极两类,如图c所示共阴极LED数码管的发光二极管的阴极共地。当某个发光二极管的阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管的阳极共接,当某个二极管的阴极电压为低电平时,二极管发光。 a b (1) b(2) c 本次课题所选的二极管为共阳极二极管,数码管每段的电流是10A。所以公共段接高电平,Proteus图如下所示 数码管引脚图2.4键盘部分键盘是由一组按压式或触摸式开关构成的阵列,是一

18、种常用的输入设备。键盘可分为编码式键盘和非编码式键盘两种。1.编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。2.非编码键盘常用一些按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。非编码键盘的硬件接口简单,但是要占用较多的CPU时间,通常采用可编程键盘管理芯片来克服这个缺点。本设计使用两种按键,一种是按键式非编码键盘和轻触式非编码开关。2.4.1按键开关在接线时由于有六个引脚,连接时需要用万用表进行测量,然后接通两个引脚。2.4.2轻触开关一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松

19、开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。但微动开关也有它不足的地方,频繁的按动会使金属弹片疲劳失去弹性而失效,连接时接通对角线即可。2.5蜂鸣器部分一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。2.5.1蜂鸣器简介

20、 1蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2蜂鸣器的分类:蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。实物如下图所示, 蜂鸣器实物2.5.2蜂鸣器原理1.压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱和外壳等部分组成。有的压电式蜂鸣器外部还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5-15V直流工

21、作电压),多谐振荡器起振,输出1.5-2.5kHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣器片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢粘连在一起。2.0电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。3.系统软件设计3.1软件系统介绍一个系统的正常运行不仅需要硬件系统的支持,而且需要软件系统的支持。如果把硬件比作躯体,那软件就是灵魂,硬件系统和软件系统相互间密切的配合才构建

22、了能够“思考”和“判断”的整体系统。借助软件的可编程性,可以精简硬件系统的组成;凭借软件的灵活性,可以不用对硬件系统进行修改而实现系统功能的修改。软件系统与硬件系统是密切相联的,软件系统建立在硬件系统之上,离开了硬件系统,软件将无法实现任何功能。软件的设计有一定的针对性,对于不同的硬件系统,需要编写不同的软件。与硬件系统一样,软件系统的好坏,直接影响到系统的工作效率和可靠性。3.2编程语言的选择基于单片机的电子音乐盒的设计本次课题采用汇编语言编程,它是一种面对机器的语言,可以直接控制硬件的语言。因为本次还要进行硬件连接,所以可以方便控制各个硬件接口如I/O接口,并且目标代码简短,占用内存少,执

23、行速度快,是高效的程序设计语言。具有保持了机器语言的优点,具有直接和简捷的特点。基于这些特点,所以70%以上的系统软件使用汇编语言编程。很多很多高级绘图程序、视频游戏程序是用汇编语言编写的。因此汇编语言是我们理解整个计算机系统的最佳起点和最有效途径,通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。 单片机烧录的代码,用来编程单片机。3.3编程软件的选择 单片机的开发除了必须的硬件设备外还需要一定的软件支持,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是

24、机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空

25、间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.4系统程序设计3.4.1主程序流程图开始定义音频输出端口,歌曲总数以及每首歌曲的入口地址;然后对定时器初始化,确定工作方式,赋初值,开放中断,启动定时器工作;对音频输出端口初始化;设置音节起始位置和节拍间距,把音节和节拍的入口地址信息存放在固定存储单

26、元中;将取出的音符数+节拍数保存在存储单元中,查询音乐的节拍表;当六首歌曲的节拍表查询完,音乐播放完毕,程序结束。具体的程序框图如下图所示: 系统流程图3.4.2主程序OUT BIT P2.0 ;定义音频输出端口,p2.0N EQU 6 ;歌曲总数OUT_NUM EQU P1 ;数码管显视当前所放歌曲曲数 ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ;外部中断0用于接上一曲歌按键 ORG 000BH AJMP F_T0 ;定时器0用于定时,作音符发生器 ORG 0013Hq4: AJMP NEXT_SONG ;外部中断1接下一曲歌按键 ORG 00

27、1BH AJMP START_PAUSE ;定时器1用计数,这里用作中断,接开始/暂停键,初值为0ffH,方式2 ORG 0030HMAIN: MOV SP,#60H MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。 MOV R0,#30H ;R0中存入数据30H,这里在以30H开始的单元存放每首歌曲的入口地址,其中30H,31H存放 ;歌曲的节拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四个存储存单元。MOV R5,#00H ;R5中存放表TABLE中正在执行操作的序号 MOV R6,#1 ;R6存放正在设置入口信息的歌曲数SET_TAB: MOV A,

28、R5 ;设置每首歌曲的入口信息,存放在以30H开始的存储单元中。MOVC A,A+DPTRMOV R0,AINC R5INC R0MOV A,R5MOVC A,A+DPTRMOV R0,AINC R5INC R0MOV A,R5MOVC A,A+DPTRMOV R0,AINC R0INC R5MOV A,R5MOVC A,A+DPTRMOV R0,AINC R0INC R5INC R6 ;设置完一首歌曲后,歌曲数加一CJNE R6,#N+1,SET_TAB ;是否设置完,没有便继续,否则进行下面的操作 对中断,计数器的相关参数进行设置MOV TMOD, #61H ;计数器0工作方式1,计数器1

29、工作方式2MOV TH1,#0FFH ;给计数器1置初值0FFH,又由于是工作方式2, MOV TL1,#0FFH ;计数器计数为1,相当于一外部中断。SETB ET1 ;允许计数器1中断SETB ET0 ;允许计数器具0中断CLR PT0 ;计数器0为低优先级SETB PT1 ;计数器1为高优先级SETB IT0 ;外部中断0为跳沿触发SETB PX0 ;高优先级SETB IT1 ;外部中断1为跳沿触发SETB PX1 ;高优先级SETB EX1 ;允许外部中断1中断SETB EX0 ;允许外部中断定0中断SETB EA ;开中断总开关SETB TR1 ;定时器1开始工作,作中断用SETB

30、OUT ;音频输出端口初始化 设置结束CLR F0 ;设置F0=0,用来作暂停/播放的标置位用MOV 22H,#01H ;22H单元中存放正在播放的歌曲编号MOV DPTR,#OUT_TAB ;将正在播放的歌曲编号送数码管显视MOV A,22HMOVC A,A+DPTRMOV OUT_NUM,AMOV R7,#00H ;R7中存放歌曲总信息的入口地址START0:MOV R4,#00H ;R4存放当前正在播放歌曲的第几个节拍数MOV R0,#30H ;30H开始的单元中存放歌曲的入口信息MOV A,R7 ;将歌曲的节拍表的入口地址送到DPTRADD A,R0MOV R0,AMOV DPH,R0

31、INC R0MOV DPL,R0INC R0MOV A,R4INC R4MOVC A,A+DPTR ;取出第一节拍数,其实第一个节拍不是歌曲的第一个节拍,而是表示几分音符MOV 26H,A 将取出的音符数+节拍数保存在职26H单NEXT: MOV R0,#30H ;开始取出歌曲的第一个数据 MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR ;放在A中 JZ END0 ;若为0,则表示为休止符,不唱,本次音符不唱, MOV R1,A ;不为0,取出节拍数 ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING ;音符不为0,唱 CLR TR0 ;为0,不唱,关频率发生器 SJMP SING1SING: DEC A ;开始唱,进行相应的数据处

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

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