基于单片机的自动音乐播放器的设计内容摘要:

再从单片机的 口输出,经过音频放大器驱动喇叭发出声音,利用驱动喇叭演示程序即可控制音乐的节拍。 若信号不在编码表中,则返到初始化。 第 8 页 共 22 页 时间显示程序设计 设计思路 对于时间程序的设计,主要依靠单片机内部定时器的计数功能实现。 时钟由秒针、分针和时针组成,在程序中分别由 sdata, mdata, hdata 表示各单位的数据。 首先对 sdata, mdata, hdata 分别设定一个初值,其中 sdata 设为 0,表示秒针初始为 0。 然后利用定时器对秒针计数,当计数值达到 1 秒的时间后产生定时器中断, sdata 的数据就加 1。 由于本次设计采用的晶振频率为 6MHz,所以定时器取值为 2500。 将 hdata 的数据装入第一和第二个数码管,将 mdata 的数开 始 初始化 开始计时 是否到闹钟 时间。 继续计时 驱动音频程序 YES NO 图 23 开 始 初始化 读取简谱码 简谱码是否在编码表中。 读取音阶 驱动喇叭延时 YES NO 图 22 第 9 页 共 22 页 据装入第三和第四个数码管。 当 sdata 的数据为 59 时,若此时再来一个定时器中断,则秒针重新归零,而分针就加 1。 同样,分针和时针的进位也是同一道理。 当设定的闹钟时间一到,程序即转入音频程序,驱动喇叭放出音乐。 时钟程序流程图 时钟程序流程图如图 23所示。 (应有简单的文字叙述或解释) 3 硬件 电路的设计 硬件流程模块 设计的硬件流程模块如图 31 所示。 首先, PC 机通过串口及 MAX232 芯片将程序下载到单片机中,其中包括把一个个的单音 写入单片机的 ROM 存储器中,程序运行时再将音乐数据按顺序读出,利用单片机的定时器中断控制音乐节拍的长度,这样就能形成一段乐曲。 在单片机 口接入音频放大电路,将单片机输出的信号放大,再通过喇叭播放音乐。 单片机 P2 口接 4 位共阴 LED 数码管,并外接 1K 欧的排阻,利用单片机内部的定 时器中断控制时间程序,然后在数码管上显示出时间。 模块电路的设计 89C58RD+型 单片机介绍 89C58RD+是一种带 32KB 闪烁可编程 /可擦除制度存储器( EPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 的 8位微处理器。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 的指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,因而ATMEL的 89C58RD+是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 并且,比图 32 单 片 机 PC 机 RS232 LED 显示 音频功率放大器 喇叭 图 31 第 10 页 共 22 页 起跟它同种类型的 89C51,它具有更大的 Flash 存储器,可下载很大容量的程序代码,因此功能更加强大,应用范围更广泛。 89C58RD+有 40 个 引脚, 32 个外部双向输入 /输出( I/O)端口, 9个中断源,内含 2个外中断口, 3 个 16 位可编程定时计数器 ,可编程 UART 串行通信口, SPI串行口, 89C58RD+可以按照常规方法进行编程,也可以在线编程。 其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器 可有效地降低开发成本。 89C58RD+有 PDIP、 TQFP 及 PLCC 等三种封装形式,以适应不同应用系统的需求。 89C58RD+管脚如图 32 所示 ,其中 ( 1) 时钟引脚 XTAL1:接外部晶体的一个引脚。 在单片机内部,它是构成片内振荡器的反相放大器的输入端。 当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发声器的输入端。 XTAL2:接外部晶体的另一个引脚。 在单片机内部,它是构成内部振荡器的反相放大器的输出端。 当采用外部振荡器时,此引脚应悬浮不连接。 注意:如果采用片内的振荡电路,要在单片机的引脚 XTAL1 和 XTAL2 之间连接一个石英晶体或陶瓷谐振器,并接两个电容到地。 ( 2) 控制线或其他 电源的复位引脚 RST:复位输入端。 ALE/PROG :当访问外部寄存器时,地址锁存允许的输出电平用于锁存地址的低位字节。 在 Flash 编程期间,此管脚用于输入编程脉冲。 在平时, ALE 以不变的频率周期输出正脉冲信号,次频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如果禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE只有在执行外部执行状态 ALE 禁止,置位无效。 PSEN :外部程序存储器的选通信号。 在有外部程序存储器取指令期间,每个机器周期两次 PSEN 有效。 但在访问外部数据存储器时,这两次有效的 PSEN信号将不出现。 EA /Vpp:当 EA 保持低电平时,则在此期间访问外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意要加密 方式 1时, EA 将内部锁定为 RESET;当 EA 断保持高电平时,此间访问内部程序存储器。 在 Flash 编程期间,此管脚也用于施加 12V 编程电源( Vpp)。 ( 3) 输入 /输出引脚 P0 口: P0 口为一个 8位漏极开路双向 I/O 口,每脚可吸收 8 个 TTL 门电流。 第 11 页 共 22 页 当 P1 口的管脚第一次写“ 1”时,被定义为高阻输入。 P0 口能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 Flash 编程时, P0 口作为原码输入口,当 Flash 进行校验时, P0 口输出原码,此时, P0 口外部必须被拉高。 P1 口: P1 口为一个内部提供上拉电阻的 8 位双向 I/O, P1 口缓冲器能接收输出 4 个 TTL 门电流。 P1 口管脚写入“ 1”后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 Flash 编程和校验时, P1 口为第八位地址接收。 P2 口: P2 口为一个内部提供上拉电阻的 8位双向 I/O, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高。 且作为输入。 并因此作为输入时, P2 口的管脚被外 部拉底,将输出电流。 这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址“ 1”时,它利用内部上拉优势,当对外部 8 位地址数据校验时, P2 口输出其特殊功能起存器的内容。 P2 口在 Flash编程和校验时,接收高 8 位地址信号和控制信号。 P3 口: P3 口为一个内部提供上拉电阻的 8 位双向 I/O,可接收输出 4个 TTL门电流。 当 P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘 故。 P3 口也可作为一些特殊功能口,如表 21所示。 表 21 口 管脚 备选功能 RXD 串行输入口 TXD 串行输出口 0INT 外部中断 0 1INT 外部中断 1 T0 计时器 0 外部输入 T1 计数器 1 外部输入 WR 外部数据存储器写选通 RD 外部数据存储器读选通 LM386N1 及外围电路的设计 第 12 页 共 22 页 LM386N1 乃 音频功率放大器,主要应用于低压消费类产品。 为使外围元件最少,电压增益内置为 20。 但在 1 脚和 8 脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。 输入端以地 为 参考,同时输出端被自动偏置 到 电源电压的一半,在 6V电源电压下,它的静态功耗仅为 24mW,加之 封装形式有塑封 8引线双列直插式和贴片式 ,使 LM386N1 具有 静态功耗低 ( 约为4mA), 可用电池供电 ; 工作电压范围宽 ( 412V or 518V); 外围元件少 等 特 点。 LM386N1 管脚示意图如图 33。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。