【毕业设计】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 
}; 


  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值