当前位置: 首页 > news >正文

51单片机音乐盒

目录

具体实现功能

设计介绍

51单片机简介

资料内容

原理图和PCB(AD19)

仿真实现(protues8.7)

程序(Keil5)

全部资料

资料获取


具体实现功能

具体功能:
单片机内置8首歌曲,按键可以上一曲,下一曲,开始或暂停。

仿真/实物演示视频:

51单片机音乐盒

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

原理图(AD19)

本系统原理图设计采用Altium Designer19,具体如图。

注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式)!

注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

注1:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式)!

注2:由于仿真软件限制,仿真设计和实物设计无法百分百对应!!

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

//////////////// void main(void) { TMOD=0x11; //T0 T1 均在工作方式1 ET0=1; //T0开中断 EA=1; //CPU开中断 while(1) { music_play(); //根据当前状态播放相应歌曲的某个音符 if(!pause) //暂停键处理 { delayms(5); if(!pause) { if(music_num==0) //music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放 { music_num=1; //歌曲序号置1 num=0; //从头播放 play_enable=1; //允许播放 } else { play_enable=~play_enable; speaker=1; } while(!pause) //若按着暂停键不放手时的处理 { if(play_enable==0){} //如果是暂停,则显示时间不变//(暂停时play_enable==0) } }//暂停键处理结束 }//while结束 if((!play_up)&&(music_num!=0)) //上一首按键 { delayms(5); if((!play_up)&&(music_num!=0)) { speaker=1; music_num-=1;//歌曲编号减一 if(music_num<=0) music_num=8; num=0; //从头开始播放 if(music_num==(sound_amount+1)) music_num=1; delayms(500);//歌曲切换时延时0.5S } } if((!play_down)&&(music_num!=0)) { delayms(5); if((!play_down)&&(music_num!=0)) { speaker=1; music_num+=1;//歌曲编号加一 if(music_num>=9) music_num=1; num=0; //从头开始播放 if(music_num==0) music_num=sound_amount; delayms(500);//歌曲切换时延时0.5S } } } }

程序运行结果如图:

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式)!

全部资料

全部资料包括原理图(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等,全网最全!资料内容如下图所示!!

资料获取

https://docs.qq.com/doc/DT1dDaG1VamdkV2N4

http://www.gsyq.cn/news/1579974.html

相关文章:

  • 线性合约与标准合约选择及支付机制优化实战指南
  • MATRIX框架:基于双通道约束奇偶校验的多层代码水印技术实践
  • 接口幂等性设计与实现
  • 联邦学习在3D物体检测中的应用:Fed3D框架解析与实践
  • 动态列生成在双目标切割问题中的优化应用
  • 成都工装市场,现在到底是啥格局?说点实在的
  • Go语言的race检测器与数据竞争在并发程序中的重现方法
  • 2026 年命理研究工具的功能和配套内容,会不会买了之后就不再更新了?第三方学习路径观察
  • 数字劳动力定价机制解析:从算法压价到垂直集体行动的价值重塑
  • NaijaS2ST:构建低资源尼日利亚语言多口音语音翻译基准
  • DEMUX框架:解密混合加密流量下的多标签网站指纹攻击
  • 大模型推理优化:Tilted Sampling与Beam Search解码策略对比分析
  • 【Claude】OAuth token revoked / Org not allowed 错误的认证链路排查 bug报错已解决
  • hp-鲁棒内罚间断Galerkin方法求解p-Laplacian方程:原理、实现与自适应策略
  • LP2DH:基于局部保持像素差分哈希的动态纹理识别实战解析
  • 基于Reddit历时词嵌入的语义演变追踪:从数据获取到可视化分析
  • VoodooNet:基于高维随机投影与伪逆解析的神经网络瞬时训练技术
  • SecureRouter框架:融合MPC与智能路由实现Transformer安全高效推理
  • RISE方法解析:基于注意力机制的大模型训练数据估值与归因实践
  • Ubuntu 22.04下PostgreSQL静态加密实战:LUKS2全盘加密方案
  • 量子计算优化:常数深度电路高效制备Dicke态的原理与实践
  • Ansible loop 工程实践:从声明式迭代到基础设施自治
  • Matlab版DBSCAN超像素分割工具包:带预编译MEX文件、示例图与结果可视化脚本
  • 基于Canvas与物理模拟的植物形态交互界面设计与实现
  • EmlogPro可用的Simply极简主题包:带夜间切换、阅读时长统计和全端适配
  • 构建高质量专业基准:从知识抽取到专家协同的BAGEL数据集实践
  • Rails 应用何时必须拆出独立 PostgreSQL 实例?
  • Python doctest实战:文档即测试的工程化实践
  • Vue懒加载图片组件:基于Intersection Observer的工程化实践
  • 非相干衰落信道下VLSF解码:可靠性保证与信息密度优化