当前位置:文档之家› 干海洋三级项目实验报告

干海洋三级项目实验报告

信息与电气工程学院单片机应用系统(三级项目)设计说明书(2014/2015学年第二学期)题目:音乐播放器设计专业班级:信息1201学生学号:120070128学生姓名:干海洋指导教师:吴开兴、刘会军、马永强、马小进设计周数:2周设计成绩:2015年6月26日目录1、绪论 (2)2、概述 (2)2.1课程设计目的 (2)2.1课程设计要求 (2)2.2课程设计内容 (3)3、系统总体设计方案 (3)3.1设计的工作原理 (3)3.2设计框图 (3)4、音乐播放器硬件电路设计 (4)4.1各部分硬件设计及原理 (4)4.1.1 晶振电路部分 (4)4.1.2 LCD液晶显示部分 (5)4.1.3 键盘扫描部分 (5)4.2电路设计主要芯片介绍 (6)4.2.1 AT89C51芯片的内部结构及引脚 (6)4.2.2 LM386芯片的内部结构及引脚 (9)5软件设计与综合调试 (10)5.1音调、节拍以及编码的确定方法 (10)5.1.1 音调的确定 (10)5.1.2节拍的确定 (11)5.1.3 编码 (12)5.2调试 (12)5.2.1 检查硬件连接 (12)5.2.2 检查软件系统 (13)5.3程序 (13)5.4实物图 (14)6、项目设计总结 (15)7、参考文献 (15)附录1: (16)附录2: (16)1、绪论21世纪,电子技术进入了突飞猛进的发展阶段。

随着集成电子技术的迅速发展,特别是微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫无夸张的说,单片机技术的出现则是给现代工业测控领域带来一次新的技术命。

目前,单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已进入家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。

因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。

此次设计的课题是“基于单片机的音乐播放器设计”,它是以单片机AT89S51作为硬件核心控制部件,结合负脉冲电路和LM386功率放大器,数码管构成典型的显示电路,以及其他外围设备组成的音乐播放系统。

根据音乐演奏控制器所要实现的显示与选曲及音乐产生功能原理,系统包括演奏扬声器、选曲、播放和显示几部分。

所设计的单片机乐曲播放控制器不仅能够播放悦耳的歌曲,同时设置按钮使所设计的程序能在五首歌曲之间进行选曲,并通过显示器使其显示歌曲序号。

本文设计的音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音节的声音,再利用延迟来控制发音时间的长短,即控制音调中的节拍。

同时设置按钮使所设计的程序能在四首歌曲之间进行选曲、设计显示器使其显示歌曲序号。

.2、概述2.1课程设计目的应用单片机,利用它的原理组成一个音乐播放器。

2.1课程设计要求(1)分析设计题目;(2)根据要求设计系统实现方案;(3)设计并绘制电路原理图;(4)画出功能模块的程序流程图;(5)使用汇编语言或C语言编写实现程序;(6)结合硬件调试修改并完善程序;(7)编写课程设计报告.2.2课程设计内容(1)可通过按键选择乐曲,暂停,播放;(2)利用LCD或数码管显示歌曲信息;(3)开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称);(4)利用I/O口产生一定频率的方波,驱动喇叭,发出不同的音调,从而演奏乐曲(最少三首歌曲,每首不少于30秒);(5)选作内容:编写上位机程序,并通过串口发送指令来控制音乐的播放3、系统总体设计方案3.1 设计的工作原理在硬件上是基于单片机AT89S51为核心器件进行控制及信号的产生。

本设计的音乐演奏控制器是通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音节的声音。

再利用延迟来控制发音时间的长短,即控制音调中的节拍。

同时设置按钮使所设计的程序能在几首歌曲之间进行选曲,设计显示器使其显示歌曲序号。

3.2 设计框图如图1所示.图1 整体设计框图4、音乐播放器硬件电路设计4.1各部分硬件设计及原理4.1.1 晶振电路部分AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。

用户也可以采用外部时钟。

采用外部时钟的电路如图示。

这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求51单片机的复位是由外部的复位电路来实现的.复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声.单片机需要复位以后才能正常工作,复位的目的就是使单片机处于一个基准点,在这个基准点,程序将会从C51的main( )主函数的第一条语句开始执行,.复位工作是一个纯硬件的工作,一般是在上电开始几毫秒内执行完毕.复位的过程很简单,在电源刚刚合上时,电流经过电阻对电解电容充电,这样在电阻上就形成一个电压,对于单片机来说,这个电压就是复位电压.经过若干毫秒以后,电解电容器被充满电,这是电阻就没有电流流过,电阻两端也就没有电压,单片机的复位脚电压恢复为0,复位工作结束,单片机开始工作.图2 晶振复位电路4.1.2 LCD液晶显示部分由RT12864,按键和保护电阻组成的外部扩展电路。

其工作过程是通过单片机P3.6/WR 和P3.7/RD接于RT12864,使其接收单片机由使用者通过按键发来的信息,显示歌曲名称,在没有设备启动没有按键工作时显示“按键选择歌曲”,当有按键工作后,设备播放歌曲同时显示歌曲序号及歌曲名称。

如图3为LCD显示模块.图3 LCD显示模块4.1.3 键盘扫描部分本方案采用独立式按键接口设计,各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。

因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下。

键盘工作方式采用定时扫描方式,采用定时器T0定时,通过读取输出数据,识别按键工作状态。

键盘按键所用开关为机械弹性开关,利用了机械触点的合断作用。

由于机械触点的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动。

抖动时间的长短由按键的机械特性决定,一般为10~100ms。

电平信号的波动,有可能令CPU误解为多次按键操作,从而引起误处理。

为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。

按键的消抖通常有软件和硬件两种消除方法。

如果按键较多,硬件消抖将无法胜任,常采用软件消抖。

本设计虽然按键少但还是采用常规的软件延时的方法:在第一次检测到有键按下时,执行一段延时子程序后,再确认电平是否仍保持闭电平,如果保持闭合状态电平,则确认正有键按下,进行相应处理工作,消除了抖动的影响。

如图6,为键盘判断程序流程图.如附录1所示NO图4 键盘判断程序流程图4.2 电路设计主要芯片介绍4.2.1 AT89C51芯片的内部结构及引脚AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。

图5 AT89C51功能引脚图主要性能特点:⑴4k Bytes Flash片内程序存储器;⑵128 bytes的随机存取数据存储器(RAM);⑶32个外部双向输入/输出(I/O)口;⑷2个中断优先级、2层中断嵌套中断;⑸5个中断源;⑹2个16位可编程定时器/计数器;⑺2个全双工串行通信口;⑻看门狗(WDT)电路;⑼片内振荡器和时钟电路;⑽与MCS-51兼容;⑾全静态工作:0Hz-33MHz;⑿三级程序存储器保密锁定;⒀可编程串行通道;⒁低功耗的闲置和掉电模式管脚说明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口除了作为普通I/O口,还有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(T0定时器的外部计数输入)P3.5 T1(T1定时器的外部计数输入)P3.6 /WR(外部数据存储器的写选通)P3.7 /RD(外部数据存储器的读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。

相关主题