《at89s52单片机的数字音乐盒设计.docx》由会员分享,可在线阅读,更多相关《at89s52单片机的数字音乐盒设计.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、at89s52单片机的数字音乐盒设计 第1章绪论 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 自上世纪90年代,嵌入式技术已经成为通信和消费类电子产品的共同发展方向。移动通信终端是集成移动通信功能的嵌入式系统产品,是一个软件和硬件有效综合、集成的系统。 21世纪是知识经济时代。其中以电子技术的发展最为迅速,以电子产品为介质的通讯和应用更是日新月异,不短飙升。实际型的应用技术越来越向着顶端发展,更新周期不断缩短。
2、在人才竞争的当今社会,选择有着实际技术型的人才已经是用人单位首先考虑的因素。为此,学校开展了电子课程技术的设计,目的在于提高和加强学生的实践技能,为就业奠定基础。电子课程设计是配合电子技术基础的课程与实验教学的一个非常重要的教学环节。它能巩固电子技术的理论知识,提高电子电路的设计水平,加强综合分析和解决问题的能力,进一步培养学生的实验技能和动手能力,启发学生的创新意识和创新思维。这将对学生毕业以后从事电子方面的工作有很大的帮助。 1.1课题的背景及意义 音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的钟塔宝石,而将大小的钟表上机械装置,被称为“可发出声音的祖钟. 1598年,意大利
3、籍耶稣会士利玛窦第一次来北京,随行礼物中就有八音琴一台。这是有史书记载的最早进入中国的八音琴。经过各种的发明创造,1780前后,拉匀芳的瑞士人从人偶自动钟的原理获得启示,发明了一种令人称赞的机制机械鸟鸣钟。 1796年,日内瓦钟匠的发明,给机械音乐盒带来了革命性的改变,使音乐盒钟的体积缩小达到极限,而在接下来的世纪得以成功的发展。1870年,德国的发明家首创了盘式音乐盒。 17世纪初,音乐盒的工业成为瑞士超过制表和缝制蕾丝业的第一大产业,这使得位于瑞士侏罗山边的小镇文明于世。 1.2单片机的应用 单片机是在工业测控需要背景下而产生的,在一个应用系统中。按照测控系统的特点和要求,单片机的应用可分
4、为单机应用和多机应用两大类。我们这次要完成的单片机课程设计就是它的单机应用,下面在介绍一下单片机在单机应用领域内的主要内容。 (1)智能产品单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、工业设备等行业。 (2)智能仪表目前,各种传感器、变送器、控制仪表已普遍采用单片机应用系统。它集测量、处理、控制功能于一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等功能。单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化、柔性化等优点,赋予测量仪表以
5、崭新的面貌,使传统的仪器、仪表发生根本性的变革,它代表了仪器仪表的发展趋势。 (3)测控技术用单片机构成的各种工业控制系统中的数据采集系统具有工作 稳定可靠、抗干扰能力强的优点,如炉温恒温控制系统、电镀生产自动控制系统等。 (4)智能接口在计算机系统,特别是较大型的工业测控系统中,除通用外部设备外,还由许多外部通信、采集、多路分配管理、驱动控制等接口。这些外部设备与接口如果完全由主机进行管理,势必会造成主机负担过重,运行速度降低,接口的管理水平也不可能提高。如果用单片机进行接口的控制与管理,单片机与主机可并行加工处理,可以大量降低接口的通信密度,极大的提高了接口控制管理水平。在一些通用计算机外
6、部设备上,已实现了单片机的键盘管理、打印机控制、绘图仪控制、硬盘驱动控制等。 1.3项目要求 (1)利用单片机的I/O口产生的方波驱动蜂鸣器发声; (2)能连续播放10首音乐,并有开关键、暂停键、上一曲及下一曲控制键; (3)利用LCD液晶模块显示歌曲的序号、播放时间; 第2章方案的选择与实现 2.1方案的设计的选择 2.1.1方案设计 方案1:用四个按键控制音乐的播放。3 个按键选择3 首不同的音乐播放,另一个按键控制音乐的停止。按下播放键,用一点简单的控制之后,才开始播放音乐。比如,用定时器控制,亮灯倒计时10 秒然后触发音乐播放。 方案2:用4*4 小键盘来实现音乐的选择播放,1A 按键
7、控制播放10 首音乐,CF 按键分别实现欢迎页面、上一首、下一首、停止播放。 方案3:由于计算器需要比较多的输入输出口,所以选择使用内部存储资源比较多的AT89C52 单片机,8 位LED 动态显示。 扬声器可以用一个准IO 口,采用AT89C52 作为运算和控制单元完全满足系统的需求。使用方案三。 2.2系统原理 当键盘有键按下时,判断键值,启动计数器 T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器 T1,显示乐曲播放的时间,并驱动 LCD,显示歌曲号及播放时间。也可在 LED 显示歌曲号。 (1)硬件电路中用 P1.0P1.7 控制按键,其中 P1.0P1.3 扫描行,P1
8、.4P1.7 扫描列。 (2)用P0.0P0.7,P2.0P2.7 控制LED,其中P0.0P0.7 控制七段码a,b,c,d,e,f,g,用 P2.0P2.7 为数码管位选信号。 (3)用,P2.0P2.2 作为 LCD 的 RS,R/W,E 的控制信号。用 P0.0P0.7 作为LCD 的 D0D7 的控制信号。 (4)用 P3.7 口控制蜂鸣器。 (5)电路为 12MHZ 晶振频率工作,起振电路中 C1,C2 均为 30pf。 2.3系统的结构与控制要求 2.3.1系统的结构 图2.1基于AT89S52单片机的数字音乐盒系统框图 2.3.2系统控制要求 音乐盒可实现功能: 1.利用 I/
9、O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于 30 秒) 2采用 LCD 显示信息 3开机时有英文欢迎提示字符,播放时显示歌曲序号或名称) 可通过功能键选择乐曲,暂停,播放。 蜂鸣器电路 LCD 液晶显示 复位电路 A T89S51 单片机 电源电路 44按键矩阵电路 晶振电路 第3章数字音乐盒的硬件设计 3.1 硬件系统总体设计 3.1.1 AT89CS2 芯片功能和硬件连接 本系统采用的就是 51 系列的 AT89C52 单片机进行的计算器设计。由于 51 系列的上下兼容性,51 核的内部功能大体一致。下图为 AT89C52 单片机的管脚图.
10、 图3.1 AT89C52 引脚图 VCC:正电源端 GND:单片机的接地端 XTAL1/XTAL2:片内振荡电路输入输出端,两端跨接晶体或陶瓷谐振器,与单片机内部反相器构成稳定的自激振荡器。发出的脉冲直接送入片内定时控制部件RESET:复位端 EAVPP:寻址外部 ROM 控制端/编程电源输入端。 ALE PROG: 地址锁存允许/编程脉冲输入端。 PSEN:寻址外部程序存储器时选通外部 EPROM 的端口(OE)。 P0.0P0.7、P10P1.7、P2.0P27:准双向 IO 口 P3.0P3.7 :具有特定的第二功能(准双向 I O 口) 图3.2 音乐盒功能键 3.1.2 键盘介绍
11、本次设计采用3 个功能键控制其动作,如下图所示: 上一曲键可以使其迅速返回至上一首乐曲; 下一曲键可以使其立即前进至下一首乐曲; 开始/暂停键主要实现开始播放或者暂停播放的功能。 键盘如下: 1 2 3 4 5 6 7 8 9 10 A B C D E F 本设计中用到了89C51 单片机,4*4 键盘,蜂鸣器,16*2 LCD,七段显示数码管LED。 3.2 系统总体方案及硬件设计 3.2.1 总体设计方案 由于计算器需要比较多的输入输出口,所以选择使用内部存储资源比较多的AT89C52 单片机,8 位 LED 动态显示。 扬声器可以用一个准 IO 口,采用 AT89C52 作为运算和控制单
12、元完全满足系统的需求。 3.2.2系统硬件设计 方波电路:51 核片内由一个反相放大器构成振荡器,本系统采用内部方式,在 XTAL1 和 XTAL2 端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。时钟发生器对振荡脉冲二分频。电容采用 22pF 电容。如下图所示。 显示电路:由一个 LCD 显示。系统整体图如下: 图三系统整体图 第4章软件设计与调试 4.1 程序设计流程图 本设计的程序流程如下: 先从主程序开始,接着初始化变量及LCD 接口,然后初始化方波发生器、晶振管,使LCD 显示信息,就进入了开机状态,等待动作选择按键,包括播放键,暂停键,停止键,当然也可以选择返回;加入
13、选择的是播放键,LCD 上就会-7-现实歌曲编号,与此同时演奏相应的乐曲,此时,你可以按上一曲或下一曲键,使其演奏上一个或者先一个乐曲。其流程图如下: 主程序开始 初始化变量及LCD 接口 初始化计数器T0,计数器 T1. LCD 显示英文欢迎字符 歌曲号及播放时间显示在LCD 上 根据按键码演奏对应的歌曲 等待按键,是否有按键?包括播放键,暂停键,停止键 N Y 4.2程序清单 RS BIT P2.0 ;定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2 ; * L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN
14、 EQU 64H HOU EQU 63H ; * org 0000h ljmp main ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT org 1000h main: ;-;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8 位,2 行显示 lCALL ENABLE MOV P0,#0FH ;屏显 on,光标 on,闪烁 on lCALL ENABLE MOV P0,#06H ;计数地址加 1,显示幕 on lCALL ENABLE ; -内存初始化lcall initil ;- key1:
15、 lcall key lcall modd ljmp key1 ;-键盘扫描 key: nop nop lcall ks jnz k1 ;有按键转到 K1 lcall kaiji lcall SOP xn: ljmp key k1: lcall modd lcall modd lcall ks jnz k2 ljmp key k2: mov R2,#0feh ;读键盘 mov R4,#00h k3: mov A,R2 mov P1,A mov A,P1 JB ACC.4,L1 ;为 1 跳转,第一行无按键 mov a,#00h ljmp lk L1: jb acc.5,L2 mov a,#04h ljmp lk L2: jb acc.6,L3 mov a,#08h ljmp lk L3: jb acc.7,next1 mov a,#0ch ;- lk: add a,R4 push acc k4: lcall delay1 ;若同时有其他按键,则等待 lcall ks jnz k4 ;- mov r3,#07h clr a mov r0,#30h
限制150内