【毕业设计】28-基于单片机的音乐播放器简易音乐播放器设计(原理图+源代码+仿真工程+答辩PPT+答辩论文)

news2025/1/15 6:26:49

typora-root-url: ./

【毕业设计】28-基于单片机的音乐播放器简易音乐播放器设计(原理图+源代码+仿真工程+答辩PPT+答辩论文)

文章目录

    • typora-root-url: ./
  • 【毕业设计】28-基于单片机的音乐播放器简易音乐播放器设计(原理图+源代码+仿真工程+答辩PPT+答辩论文)
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

设计说明书

摘要

本文介绍了一种以STC89C52单片机为控制核心的播放器。系统采用液晶模块LCD12864作为显示界面,蜂鸣器作为发声元件,并利用定时器进行中断控制,通过按键来控制音乐播放器的乐曲切换、暂停功能。在系统的设计过程中需要确定实现的功能分析,确定硬件设计方案;对系统对硬件电路设计;对系统的软件程序设计;最后对系统使用仿真软件Protues仿真测试系统,完成了音乐播放、乐曲切换、乐曲暂停的功能。本次设计在软件、硬件的设计上均采用模块化的功能设计,为了保证系统设计的可移植性、拓展性、迭代性。在硬件电路的设计上查看元器件手册对外围电路进行设计,软件程序设计上参考Keil软件给出的例程,保证系统在运行上有较好的实时性。系统设计上考虑到系统硬件电路的抗干扰能力、耐久性以及系统性价比,所以本设计具有较高的推广意义。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,24084字
英文文献及翻译
答辩PPT
visio流程图工程

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 研究背景… 2

第二节 研究意义… 2

第三节 研究现状… 3

第四节 本文的主要研究内容… 3

第五节 本章小结… 4

第二章 简易播放器系统方案设计… 5

第一节 播放器功能分析… 5

第二节 系统主要元器件选型… 5

一、主控制器选型… 5

二、显示器选型… 6

第三节 播放器工作原理… 6

第四节 系统设计总框图… 7

第五节 本章小结… 8

第三章 简易播放器系统硬件电路设计… 9

第一节 主控制器最小系统电路设计… 9

一、主控制器介绍… 9

二、主控制器最小系统设计… 10

第二节 电源电路设计… 11

第三节 按键电路设计… 12

第四节 LCD液晶显示电路设计… 12

第五节 音乐播放电路设计… 14

第六节 系统总电路图… 15

第七节 本章小结… 15

第四章 简易播放器系统软件设计… 17

第一节 Keil软件介绍… 17

第二节 主程序设计… 17

第三节 按键程序设计… 19

第四节 液晶显示程序设计… 20

第五节 音乐播放程序设计… 21

第六节 本章小结… 23

第五章 简易音乐播放器的仿真实现… 24

第一节 开发工具Proteus介绍… 24

第二节 系统调试与功能测试… 24

一、系统调试… 24

二、功能测试… 26

第三节 本章小结… 30

总 结… 31

致 谢… 32

参考文献… 33

附 录… 35

一、英文原文… 35

二、英文翻译… 40

三、系统原理图… 45

四、程序源码… 46

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码展示

#include <reg52.h>
#include "ziku.h" 
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define Play_speed  20000//32000 //25000	// 播放速度,数值越大播放越慢
#define Pitch       6//调整音调
#define LCDLCDDisp_Off   0x3e
#define LCDLCDDisp_On    0x3f
#define Page_Add     	0xb8//页地址
#define LCDCol_Add     	0x40//列地址
#define Start_Line     	0xC0//行地址
/*****液晶显示器的端口定义*****/
#define data_ora P0 /*液晶数据总线*/
sbit LCD_CS1=P3^3 ;    /*片选1*/
sbit LCD_CS2=P3^7 ;    /*片选2*/
sbit LCDDi=P3^5 ;     /*数据/指令 选择*/
sbit LCDRW=P3^6 ;     /*读/写 选择*/
sbit LCDEnable=P3^4 ;     /*读/写 使能*/
//定义按键K1,K2的硬件接口
sbit K1=P1^6;
sbit K2=P1^7;
sbit BEEP=P3^2;	//蜂鸣器端口   
uchar th0_f; //在中断中装载的 T0 的值高 8 位 
uchar tl0_f; //在中断中装载的 T0 的值低 8 位 
uchar  key_num=0;		//按键数值
uchar  song_num=0; 		//歌曲数
uchar  play_song_step=0;//播放音乐的步骤
uchar  stop=0;	 		//停止标志
uchar  key_flag=0; 		//按键标志
//老鼠爱大米 
uchar code dami[]={ 
  "321-|3.2_1-|3231|3_6.5-|"};
uchar code dami2[]=
{"3_5_665|65-3_2_|122_3_2|12--|" 
}; 
//世上只有妈妈好 
//世上只有妈妈好 
uchar code mamahao[]={ 
  "6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|" 
}; 
uchar code mamahao2[]={
  "2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"};
//**《贝加尔湖畔》简谱**
uchar code Baikal000[]={
  ",6_,7_15|4-|,5_,6_,74|3-"
};
uchar code Baikal001[]={
  "3_3_65|42-"
};
uchar code Baikal002[]={
  ",7_|,71_2_24|3--"
};
uchar code Baikal003[]={
  ",7_|,7,7_3_33|,6,6_,6_,66|6--"
};
uchar code Baikal004[]={
  "6_`1_75_3.|3--"
};
uchar code Baikal005[]={
  "1_|,7,7_3_33|,6,6_,6_,66|6---|7_`1_`2-|`273-|3_3_6.5_42--|"
};
uchar code Baikal006[]={
  "567.7_|`3--`2_`1_|7---|,6_,7_15|4--"
};
uchar code Baikal007[]={
  ",5_,6_,74|4_3_3--|3_3_65|42-1_|,73_3_31|,6---|"
};
//T0 的值,及输出频率对照表 
uchar code freq[36*2]={ 
  0xA9,0xEF,//00220HZ ,1  //0 
  0x93,0xF0,//00233HZ ,1# 
  0x73,0xF1,//00247HZ ,2 
  0x49,0xF2,//00262HZ ,2# 
  0x07,0xF3,//00277HZ ,3 
  0xC8,0xF3,//00294HZ ,4 
  0x73,0xF4,//00311HZ ,4# 
  0x1E,0xF5,//00330HZ ,5  
  0xB6,0xF5,//00349HZ ,5# 
  0x4C,0xF6,//00370HZ ,6 
  0xD7,0xF6,//00392HZ ,6# 
  0x5A,0xF7,//00415HZ ,7     
  0xD8,0xF7,//00440HZ 1     //12 
  0x4D,0xF8,//00466HZ 1#    //13 
  0xBD,0xF8,//00494HZ 2     //14 
  0x24,0xF9,//00523HZ 2#    //15 
  0x87,0xF9,//00554HZ 3     //16 
  0xE4,0xF9,//00587HZ 4     //17 
  0x3D,0xFA,//00622HZ 4#    //18
  0x90,0xFA,//00659HZ 5     //19 
  0xDE,0xFA,//00698HZ 5#    //20 
  0x29,0xFB,//00740HZ 6     //21 
  0x6F,0xFB,//00784HZ 6#    //22 
  0xB1,0xFB,//00831HZ 7     //23 
  0xEF,0xFB,//00880HZ `1 
  0x2A,0xFC,//00932HZ `1# 
  0x62,0xFC,//00988HZ `2 
  0x95,0xFC,//01046HZ `2# 
  0xC7,0xFC,//01109HZ `3 
  0xF6,0xFC,//01175HZ `4 
  0x22,0xFD,//01244HZ  `4# 
  0x4B,0xFD,//01318HZ `5 
  0x73,0xFD,//01397HZ `5# 
  0x98,0xFD,//01480HZ `6 
  0xBB,0xFD,//01568HZ `6# 
  0xDC,0xFD,//01661HZ `7     //35 
}; 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

麦芽糖-聚乙二醇-甲氨蝶呤 MTX-PEG-maltose

麦芽糖-聚乙二醇-甲氨蝶呤 MTX-PEG-maltose 中文名称&#xff1a;麦芽糖-甲氨蝶呤 英文名称&#xff1a;maltose-MTX 别称&#xff1a;甲氨蝶呤修饰麦芽糖&#xff0c;甲氨蝶呤-麦芽糖 PEG接枝修饰麦芽糖&#xff0c;麦芽糖-聚乙二醇-甲氨蝶呤&#xff0c;MTX-PEG-maltose&…

【visual studio】visual studio 2022 无法 复制黏贴

visual studio 2022 cannot copy paste 其他网友也有反馈到微软&#xff1a;VS 2022 Copy and Paste form feature Broken?Copy paste still not fixed in Visual studio 2022表现是突然就无法复制和黏贴了其他的app 就没有这个问题每次都是重启电脑解决。 2022年11月fix 今…

java中csv导出-追加-列转行

1、问题描述 业务数据量比较大&#xff0c;业务上查询条件写入数据库&#xff0c;java定时去读&#xff0c;然后导出csv&#xff0c;供用户下载&#xff0c;因为有模板要求&#xff0c;前一部分是统计信息&#xff0c;后一部分是明细信息&#xff1b;首先csv中写入统计信息&am…

gradle安装配置

Gradle和Maven都是当前热门的自动化构建工具。 这里以安装6.8版本为例 下载地址 https://services.gradle.org/distributions/ 环境配置 新建系统环境 GRADLE_HOME D:\software\gradle-6.8 新建系统环境 GRADLE_USER_HOME D:\gradle\repository 找到path变量,后面添加 %…

uniapp 短信监听(验证码)插件 Ba-Sms

简介&#xff08;下载地址&#xff09; Ba-Sms 是一款用于拦截实时短信的插件&#xff0c;可以进行短信过滤&#xff0c;得到自己想要的内容&#xff0c;可以用于需要自动填写短信验证码的项目 支持监听当前接收到的短信信息支持过滤接收到的短信&#xff0c;默认过滤4~8位的…

Python学习笔记之进程池pool

平时很多操作都会用到多进程&#xff0c;比如爬虫、数据处理。 下面介绍一下多进程的函数方法、参数及使用方法。 目录 一.进程池Pool介绍 1.apply() 2.apply_async 3.map() 4.map_async() 5.close() 6.terminal() 7.join() 二&#xff0e;进程池Pool使用 1.map用法…

【虚幻引擎UE】UE5 材质动态修改的2种方法(含工程源码)

演示效果&#xff1a; 示例工程源码 一、直接材质参数变量 1、贴图变量&#xff1a; 在材质蓝图中右键&#xff0c;创建变量TextureSampeParameter2D&#xff08;贴图变量&#xff09;。 输入RGB到基础颜色 2、单色变量&#xff1a; 在材质蓝图中右键&#xff0c;创建变量…

[附源码]计算机毕业设计springboot高校商铺管理系统论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

要想后期修改少,代码重构要趁早

摘要&#xff1a;在敏捷中&#xff0c;让设计简单化&#xff0c;必须让设计从简单开始&#xff0c;然后变得成熟。要做到这一点&#xff0c;重构是唯一的出路。本文分享自华为云社区《敏捷技术实践之重构》&#xff0c;作者&#xff1a;华为云PaaS服务小智 。 前言 极限编程&…

Flink Forward Asia 2022 主论坛概览

2022 年 11 月 26-27 日&#xff0c;Flink Forward Asia&#xff08;FFA&#xff09;峰会成功举行。Flink Forward Asia 是由 Apache 软件基金会官方授权、由阿里云承办的技术峰会&#xff0c;是目前国内最大的 Apache 顶级项目会议之一&#xff0c;也是 Flink 开发者和使用者的…

使用nohup命令 或者 代码创建守护进程

目录 一、什么是守护进程&#xff1f; 1、守护进程的概念 2、为什么需要守护进程 二、理解进程组、会话、终端 三、创建守护进程的两种方式 1、nohup命令创建守护进程 2、代码创建守护进程 (1) 创建子进程&#xff0c;父进程退出 (2) 子进程创建新的会话 (3) 更改守护…

jsp美食共享平台系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 美食共享平台系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用mvc开发结构 serlvetdaobean模式&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.0,Myecl…

二叉树链式结构-c语言实现

文章目录二叉树链式结构实现1. 链式二叉树结构2. 二叉树的遍历2.1 前序遍历2.2 中序遍历2.3 后序遍历2.4 层序遍历3. 常见功能3.1 二叉树结点个数3.2 二叉树叶子结点个数3.3 第K层结点的个数3.4 二叉树的深度3.5 判断是不是树是不是完全二叉树3.6 在二叉树中查找值为x的结点3.7…

VM系列振弦采集读数模块的测量模式

VM系列振弦采集读数模块的测量模式 模块有连续测量和单次测量两种测量模式&#xff0c; 通过向测量模式寄存器 WKMOD.[0]写入 1 使模块工作于连续测量工作模式&#xff0c; 写入 0 使模块工作于单次测量工作模式。 WKMOD.[15]用来设置是否在模块“ 忙” 时禁用数字接口&#xf…

京东低代码平台:水滴表单联动可视化配置的实现与思考

TL;DR drip-form在0.9.0的alpha版支持了可视化配置联动的功能&#xff08;仍在测试中&#xff09;drip-form通过协议到代码的转换&#xff0c;尽可能降低常见联动配置的开发成本探讨&#xff1a;JSON diff动态生成常见联动和校验drip form的后续更新&#xff1a;v0.9.0是v0最后…

计算机组成原理-总线详细讲解(持续更新中)

总线概念与分类 定义 总线是一组能为多个部件分时共享的公共信息传送线路 共享是指总线上可以挂接多个部件&#xff0c;各个部件之间互相交换的信息都可以通过这组线路分时共享。 分时是指同一时刻只允许有一个部件向总线发送信息&#xff0c;如果系统中有多个部件&#xf…

React源码分析1-jsx转换及React.createElement

jsx 的转换 我们从 react 应用的入口开始对源码进行分析&#xff0c;创建一个简单的 hello, world 应用&#xff1a; import React, { Component } from react; import ReactDOM from react-dom; export default class App extends Component {render() {return <div>h…

科普下抖音的规则,为什么别人的内容很容易火,而我的很难?

今天给大家科普下抖音的规则&#xff0c;为什么别人的内容很容易火&#xff0c;而我的很难&#xff1f; 上一篇给大家讲了现在做抖音还来得及么&#xff1f;肯定的回答&#xff0c;一直都来得及。 既然来得及&#xff0c;那么我们怎么才能做好抖音呢&#xff1f; 在我看来&a…

Rust 基础(四)

十、泛型、Traits和生命周期 每种编程语言都有有效处理概念重复的工具。在Rust中&#xff0c;一个这样的工具就是泛型:具体类型或其他属性的抽象替身。我们可以表达泛型的行为&#xff0c;或者它们如何与其他泛型相关联&#xff0c;而不知道在编译和运行代码时它们的位置会是什…

[C++]C++入门--引用

​ &#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 博主Gitee 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎>在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode…