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

、微型化,且功能比起采用电子或数字电路更加强大。 例如精密的测量设备(功率计,示波器,各种分析仪)。 ( 2) 在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机 控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 ( 3) 在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。 例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从 8 位、 16 位到 32 位,数不胜数,应有尽有,有与主流 C51 系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。 单片机的发展趋势 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有: ( 1) 微型单片化 现在常规的单片机普遍都是将中央处理器( CPU)、随机存取数据存储( RAM)、只读程序存储器( ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制电路)、 WDT(看门狗)、有些单片机将 LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。 甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特 色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。 现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 ( 2) 低功耗 CMOS 化 MCS51 系列的 8031 推出时的功耗达 630mW,而现在的单片机普遍都在100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了 CMOS(互补金属氧化物半导体工艺)。 像 80C51 就采用了 HMOS(即 5 高密度金属氧化物半导体工艺)和 CHMOS(互补高密度金属氧化物半导体工艺)。 CMOS 虽然功耗低,但由于其物理特征决定其工作速度不够高,而 CMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。 所以这种工艺将是今后一段时期单片机发展的主要途径。 开发环境简介 随着单片机的不断发展,以 C 为主流的单片机高级语言也不断被更多的单片机爱好者和工程师所喜爱。 使用 C 语言肯定要使用到 C 编译器,以便把写好的 C 程序编译为机器码 ,这样单片机才能执行编写好的程序。 KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之 一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体 ,同时还支持, PLM,汇编和 C 语言的程序设计,它的界面和常用的微软 VC++的界面相似 ,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。 本系统采用的开发环境为 KEIL uVISION2,软件开发环境主界面见图 21。 图 21 KEIL uVISION2 集成开发环境主界面 Proteus 是英国 Labcenter 公司开发的电路分析与实物仿真软件。 它运行于Windows 操作系统上,可以仿 真、分析 (SPICE)各种模拟器件和集成电路,该软件的特点是: ( 1) 实现了单片机仿真和 SPICE 电路仿真相结合。 具有模拟电路仿真、数 6 字电路仿真、单片机及其外围电路组成的系统的仿真、 RS232 动态仿真、 I2C 调试器、 SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ( 2 ) 支持主流单片机系统的仿真。 目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52 系列、 AVR 系列、 PIC10/12/16/18 系列、 HC11 系列以及多种外围芯片。 ( 3) 提供软 件调试 功能。 在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision MPLAB 等软件。 ( 4) 具有强大的原理图绘制功能。 总之,该软件是一款集单片机和 SPICE分析于一身的仿真软件,功能极其强大。 系统仿真,图 22 是 Proteus 的仿真图。 图 22 Proteus 的仿真图 设计框图 7 图 23 设计框图 该系统硬件连接框 图如图 24 所示。 其整个工作过程为: MCU 控制 USB 接口芯片与计算机通讯,将从计算机上下载的文件存储于 SDcard。 播放时, MCU控制从 SDcard 读取文件并传送给解码芯片,通过总线控制其解码,解码后的数字音频 信号在 MCU 的控制下通过 D/A 转换器转换成模拟音频信号,放大,输出到扬声器。 演奏时, MCU 扫描判断摁键工作情况,并产生相应频率方波,转换,放大,输出。 录音时,在 MCU 的控制下声源由 MIC 存储到 SDcard 卡里。 本系统以单片机 AT89C51 为核心,主要负责控制各个部分协调工作。 在其外围接上:电源 、通信电路、复位电路、控制电路、存储电路、显示电路、音频处理电路及外放电路。 主程序流程图 通讯接口 存储器 SD card 液晶显示 LCD1602 矩形键盘 Key board MCU 89C51 MP3 解码器 VS1003 功率放大器 LM386 D/A转换器 CS4334 扬声器 MIC 8 图 24 主程序流程图 电子琴模式演奏 单片机电子琴演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,因此单片机奏乐只需弄清楚每个乐音的音调,即相应的发声频率。 在电子琴模式中,有矩形键盘输入高低不同的脉冲信号通过 AT89C51 来控制蜂鸣器发音。 要想产生音频脉冲信号,需要算出某一音频的周期 (1/频率 ),然后将此周期除以 2,即为半周期的时间。 利用单片 机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的 I/O 口反相,然后重复计时此半周期时间再对 I/O 口反相,这样就能在此 I/O 口上得到此频率的脉冲。 一首乐曲是由音阶和节拍两大要素构成,不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。 一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的 I/0 口来回取反,或者说来回清零,置位,从而让让单片机发出相应频率的声音。 为了让单片机发出不同频率的声音, 只需将定时器予置不同的定时值就可实现。 关于确定一个频率所对应的定时器的定时值,有以下对应关系 : t= T/ 2 = 1/2f (21) 这个时间 t 也就是单片机上定时器应有的中断触发时间。 一般情况下,单片机奏乐时,其定时器为工作方式 1,它以振荡器的十二分频信号为计数脉冲。 设振荡器频率为 0f ,则定时器的予置初值由 下式来确定 : END 开始 单片机初始化 启动播放 中断 模式切换 ?□ MP3 模式 电子琴模式 继续。 9 t =12 ( ALLT HLT ) ∕ of (22) 式中 ALLT = 162 =65536 , HLT 为定时器待确定的计数初值。 因此定时器的高低计数器的初值为: TH= HLT ∕ 256 =( ALLT t  of ∕ 12)∕ 256 (23) TL= HLT % 256 =( ALLT t  of ∕ 12)% 256 (24) 3 硬件电路设计 AT89C51 功能简介 自从 1971 年微型计算机问世以来,随着大规模集成电路技术的进一步发展,导致微型计算机正向两个主要方向发展:一是高速度、高性能、大容量的高档微型机及其系列化向大、中型计算机的挑战;另一个是稳定可靠、小而廉、能适应各种控制领域需要的单片机。 MCS—51 系列是 Intel 公司在 1980 年推出的高档 8 位单片机,具有性能价格比高、品种多、兼容性强、开发用的仿真机较完善等优点,所以在国际上和国内的占有率相当高。 它拥有 8 位微处理器和控制器,内含一个一位布尔运算处理器,可 直接对数据的位进行操作和运算,特别适用于逻辑控制。 内部含有 4KB的程序 ROM 并且在外部扩展了 256K 的存储空间, 2 个 16 位的计数 /定时器。 本次采用的是 AT89C51 单片机,其电路如 31 所示,它的中断功能比较强,有 5个中断源,即外部中断 2 个,定时器中断 2 个,串行中断 1 个,有 2 个中断优先级。 中断控制电路主要包括用于中断控制的四个寄存器:定时器控制寄存器TCON,串行口控制寄存器 SCON,中断允许控制寄存器 IE,中断优先级控制寄存器 IP 等。 内部时钟振荡器,全双工方式的串行接口( UART),两极中断优先权的 6 个中 断源 /5 个中断矢量的中断逻辑。 哈佛结构的存储器组织,支持高达64K 为单周期指令,支持六种寻址方式。 最高时钟振荡频率可达 12MHZ,大部分指令执行时间为 1181。 s,乘、除指令为 4181。 s。 AT89C51 的外形图及管脚图 : 10 图 31 AT89C51 芯片外形图及引脚图 MCS51 系列单片机采用 40 引脚双列直插式封装( DIP),其引脚排列和逻辑符号如图 23 所示, 4 个并行口共有 32 根引脚,可分别作地址线、数据线和I/O 线; 2 根电源线; 2 根时钟振荡电路引脚和 4 根控制线。 AT89C51 主要特性和引脚功能 主要特性: 与 MCS51 兼容 ; 4K 字节可编程闪烁存储器 ; 寿命: 1000 写 /擦循环 ; 数据保留时间: 10 年 ; 全静态工作: 0Hz24MHz; 三级程序存储器锁定 ; 1288 位内部 RAM; 32 可编程 I/O 线 ; 两个 16 位定时器 /计数器 ; 5 个中断源 ; 可编程串行通道 ; 低功耗的闲置和掉电模式 ; 片内振荡器和时钟电路 ; 管脚说明: VCC:供电电压。 GND:接地。 P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第 一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存 11 储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH编程和校验时, P1 口作为第八位地址接收。 表 31 和 的第二功能表 引脚 号 功能特性 T2(定时 /计数器 2 外部计数脉冲输入 ),时钟输出 T2EX(定时 /计数 2 捕获 /重装载触发和方向控制 ) 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” 后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。