基于cpld与51单片机的定时器与音乐播放器

基于cpld与51单片机的定时器与音乐播放器

ID:9002345

大小:264.22 KB

页数:8页

时间:2018-04-14

基于cpld与51单片机的定时器与音乐播放器_第1页
基于cpld与51单片机的定时器与音乐播放器_第2页
基于cpld与51单片机的定时器与音乐播放器_第3页
基于cpld与51单片机的定时器与音乐播放器_第4页
基于cpld与51单片机的定时器与音乐播放器_第5页
资源描述:

《基于cpld与51单片机的定时器与音乐播放器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《电子系统设计》课程设计报告基于CPLD与51单片机的定时器与音乐播放器马大康06007122万树06007113覃朋060071102009.127《电子系统设计》课程设计报告一、系统简介本系统利用CPLD和51单片机联合实现了倒计时器和音乐播放器的功能。作为《电子系统设计》的课程设计,本系统充分利用了两块开发板上的资源,并实现了可编程器件与单片机之间的串口异步通信,器件连接方便,并有良好的人机交互界面。二、系统结构框图与思路图1系统结构框图图2CPLD内部功能模块划分及连接经过对两块开发板板上资源的对比,我们发现,CPLD板上的资源

2、较为丰富,尤其是其8个独立按键和1602液晶屏,十分适合人机交互,因此我们选择用CPLD开发板作为主控板。单片机板上拥有4个七段数码管,显示变化的数字十分方便,可以构成1~60分钟可变初值的倒计时器。由于之前的实验中已经实现了在CPLD中嵌入简易的UART,因此可以利用CPLD上的8个拨码开关设定倒计时器的初值,并通过异步串行通信传输给单片7《电子系统设计》课程设计报告机。单片机上的拨码可以实现对倒计时器进行暂停、清零。除此之外,由于CPLD板上已有蜂鸣器,可以播放预先存入的歌曲,并通过板上的其他按键控制音乐的暂停与继续播放。介于上述分

3、析,设计的系统结构框图如图1所示,CPLD中功能模块的划分如图2所示。操作流程:CPLD板上:Key1—>进入倒计时器模式,设定倒计时器初值(通过8个拨码),液晶屏上显示“D-counterSettimeneeded”。Key2—>发送倒计时器初值到单片机,单片机开始倒计时,液晶屏上显示“D-counterD-countering”Key3—>进入音乐盒模式,播放音乐《喀秋莎》。Key4—>暂停音乐播放单片机板上:在倒计时过程中,将拨码开关1向上拨,倒计时暂停,向下拨后继续倒计时。在倒计时过程中,按下CPLD板上的Key1后(此时为设定

4、初值模式),将拨码开关2向上拨,倒计时器清零,此时可对其重新置初值。三、功能模块的实现1、异步串行发送模块想要在CPLD中嵌入异步串行通信模块,就必须对异步串行通信协议有深入的理解,由于系统中只用到了发送模块,这里仅对发送模块的设计做介绍。在空闲时,发送1。当发送使能WR为高电平且发送缓冲寄存器为高电平时,向发送缓冲寄存器中写入待发送的数据。当发送移位寄存器为空时,将发送缓冲寄存器中的值置入发送移位寄存器,并将TxDone变为低电平,表示发送一个字节的周期开始,此时不能向发送寄存器中置数。发送周期开始首先发送一个低电平作为起始位,接着从

5、数据的低位开始发送数据,发送结束后发送高电平作为结束位,并将TxDone变为高电平,表示发送一个字节结束。整个模块的状态图如图3所示。图37《电子系统设计》课程设计报告图4标准的UART设计是将系统时钟分频成16×Baudrate的频率,然后每个16个这样的时钟周期发送一位数据。我们这里的设计与标准设计有些不同,我们直接把系统时钟分频成波特率时钟,然后每个周期发送一位数据,这样的效果与原先相同,但在编程上轻松了许多。2、按键检测模块图5通过在每个时钟的上升沿检测引脚的值,经过延时再判断达到消抖的作用,再将其转化为键值输出。3、液晶显示模

6、块图6LCD_Top模块内部由时钟分频模块与LCD驱动模块构成,其中时钟分频模块负责将50M的系统时钟分频成500Hz的LCD驱动时钟。LCD驱动模块主要负责产生控制信号并发送显示数据。LCD驱动模块的状态流程图如下图所示。图74、蜂鸣器模块7《电子系统设计》课程设计报告图8蜂鸣器演奏音乐模块较为简单,我们参考实验指导书中的代码,将《梁祝》的谱换成了《喀秋莎》。5、定时器模块定时器模块在单片机中,其程序流程图如下:图107《电子系统设计》课程设计报告在这块单片机板上做倒计时器有两个缺陷:第一,我们采用的是软件定时的方式,精确度不如硬件电

7、路高;第二,此开发板的按键和拨码没有直接接到单片机的I/O口上,而是通过锁存器挂在总线上,这就决定了使用按键只有采取查询的方法,而不能采用中断的方法。因此在倒计时的过程中,每延时1秒前需要查询按键的值来实现暂停或停止的功能,指令也是需要执行时间的,这样会使延时时间超过1s,而且数码管略微有些闪烁。不过,经过缩短延时1s程序的时间,我们将每秒钟的误差控制在了1/30秒。四、系统调试过程本系统由三人共同合力完成,具体分工如下:马大康负责完成了串口通信模块、液晶显示模块和按键控制模块,并撰写了最终的设计文档。万树负责完成了单片机上倒计时模块以

8、及乐谱的输入,覃朋负责完成了蜂鸣器模块。系统的调试是按照先单独模块测试,再组合拼接整体调试的步骤进行的,整个过程有条不紊,系统的总体设计也根据单独模块测试的情况与原先计划做出了相应调整。比如原先是计划利用U

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。