【单片机】电子音乐播放器的设计与制作(说明书)

这篇具有很好参考价值的文章主要介绍了【单片机】电子音乐播放器的设计与制作(说明书)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前   言

        这是本人在大学期间的《单片机控制技术》课程中,所作的结课作业项目,而我也正想要一个电子音乐播放器,而且这样设计的音乐播放器可以发出宜人的音乐旋律,能给生活增加不少的乐趣,本次作业项目也就让我用51系列单片机设计这个电子音乐播放器。

        这方面不仅仅是需要掌握单片机的基本知识、也是需要掌握一定的单片机程序设计的知识,也包括硬件方面的选型、电路设计、各元器件的作用等。

【单片机】电子音乐播放器的设计与制作(说明书)

 

        1、基本概论

        2、使用说明

                2.1 按键部分

                2.2 接口部分

        3、电路设计

                3.1 原硬件设计方案

                3.2 重新选型

                3.3 新型设计方案

        4、程序设计

                4.1 定时器初始化设置

                4.2 中断程序

                4.3 蜂鸣器头文件程序

                4.4 音乐节奏头文件程序

        5、总结收获

==================================================

        1、基本概论:

        音乐盒可以发出宜人的音乐旋律,能给生活增加不少的乐趣,本次作业项目也让我想到了用51系列单片机设计一个电子音乐播放器。

        这方面不仅仅是需要掌握单片机的基本知识、也是需要掌握一定的单片机程序设计的知识,也包括硬件方面的选型、电路设计、各元器件的作用等。

        经过思考与验证,决定基本功能如下:

  1. 基本功能实现:

利用I/0口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲;

  1. 按键功能实现:

可通过功能键选择乐曲,暂停,播放;

  1. USB供电功能:

可以通过USB接口进行电源输入,系统得电运行;

  1. 整机小型化:

通过选型和优化整体设计,才用9CM*7CM的板子为基底设计电路。

【单片机】电子音乐播放器的设计与制作(说明书)

 

        2、使用说明

        2.1 按键部分:

        电路硬件设计上有四处按键,而上部分的TS6643ZJ轻触开关是原先设计的方案遗留,实则没有作用。

        侧边三个按键分别是:

        红色按键为播放键,红色为中心,两边按键分别为“上一首”和“下一首”的切换键。

        2.2 接口部分:

        电路硬件设计上有两处接口,分别为USB接口和4PIN接口。

        USB接口可以直接接入DC 5V电源的USB接口,以此得电,让播放器工作;

        4PIN接口可以通过USB转TTL接口连接电脑,编译程序和供电调试工作。

        3、电路设计

        最初的电路设计当中,我采用的是STC89C51单片机,经过Proteus 8.11仿真软件设计和实际电路焊接后,调试发现效果不佳,询问专业的同学和查阅资料所知,若要实现更好的功能应当采用更好的单片机系统,在后期就换选了STC15F2K60S2单片机,而这种单片机与之前的STC89C51单片机有以下区别(通过芯片说明手册对比):

  1. 两者都是直流供电电压单片机,STC89C51电压为4.5V-5.5V,而STC15F2K60S2为3.8V-5.5V,而且其Flash程序存储器是60K;
  2. STC15F2K60S2不需要外部晶振和外部复位的单片机;大容量2K字节SRAM;双串口;高速10位8通道A/D转换器T0-T2 三个定时器:EEPROM;CCP/PCA/PWM;SPI功能;
  3. STC15F2K60S2有先进的指令集结构,也可以兼容原先的普通8051指令集,也有硬件乘法/除法指令。

        总体而言,可以理解成STC15F2K60S2芯片就是增强版的STC89C51芯片。

        3.1 原硬件设计方案:

        在硬件设计工具的选用上,开始还是Proteus 8.11仿真工具,后来随着需求增加,进而增用了立创EDA工具,该软件也同时支持STC15F2K60S2芯片的设计,BOM表的制作与对比。

        起初用Proteus 8.11对STC89C51单片机设计的最基本的音乐播放器电路设计方案设计如下:

【单片机】电子音乐播放器的设计与制作(说明书)

        时钟电路:左上处以晶振为主的电路为时钟电路,本音乐播放器配备的单片机系统是一个复杂的同步时序电路,为了保证该系统的同步工作的实现,加入这种唯一时钟信号控制下进行有序工作。

        复位电路:左中处以一个复位按键为主的电路为复位电路,该系统刚开始接上电源时,还是断电或者发生故障后都要复位。而这样的设计就是使 CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。

        发光电路:右上处以两个二极管(不同色)所组装的电路为播放器的发光二极管示意,一边绿色与一边红色所示意两种音乐的播放。

        发声电路:右下处以蜂鸣器为主的电路为发声电路,通过9012三极管配置产生向系统外发声信号,而蜂鸣器发声原理则是电流通过内部的电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动发声。

        电路焊接设计后如下:

【单片机】电子音乐播放器的设计与制作(说明书)

        3.2 重新选型:

        该电路设计完之后,在实际硬件设计下设计出现了一些问题,首先蜂鸣器的选型存在问题,再者最为主要的是芯片选型上档次较低,后来选用STC15F2K60S2芯片。

        STC15F2K60S2系列单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时器、I/0口、高速A/D转换、看门狗、UART超高速异步串行通信口1/串行通信口2,CCP/PWM/PCA,1组高速同步电行端口SPI,片内高精度R/C时钟及高可靠复位等模块。STC15F2K60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上是一个片上系统。

【单片机】电子音乐播放器的设计与制作(说明书)

        重新选型后的硬件系统就要换上其他关键元器件,以下表格则为更换的关键元器件以及使用原因:

元件名称

型号

数量

使用原因

无源电磁蜂鸣器

SEA-12095-16

1

发声部分

稳压二极管

1N4148W

1

续流作用

4PIN排针

X6511WV-04H-C30D60

1

方便USBTTL

发光二极管

204-10SURT/S530-A3

2

方便观察电路状态

三极管

MPS8550-D-AT/PC

1

放大作用

芯片

STC15F2K60S2-28I-PDIP40

1

相较于STC89C51芯片有更佳的性能

USB接口

USB-05

1

USB供电方式

        3.3 新型设计方案:

        通过使用立创EDA软件设计了个STC15F2K60S2芯片为主的音乐播放器电路:

【单片机】电子音乐播放器的设计与制作(说明书)

       因为起初还想着用STC89C51芯片继续原方案设计,仅是改动部分电路和程序,所以在实际硬件电路中还留着晶振时钟电路。

       实际焊接后电路如下:

【单片机】电子音乐播放器的设计与制作(说明书)

        红圈为复位电路:以一个复位按键为主的电路为复位电路,该系统刚开始接上电源时,还是断电或者发生故障后都要复位。而这样的设计就是使 CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作,但其实更换了STC15F2K60S2芯片后,这个功能没有什么用了。

        黄圈为时钟电路:本音乐播放器原方案的STC89C51单片机系统是一个复杂的同步时序电路,为了保证该系统的同步工作的实现,加入这种唯一时钟信号控制下进行有序工作,但是后来STC15F2K60S2则不需要外部晶振,所以故此设计是原方案遗留,实际电路工作没有作用。

        蓝圈为发声电路:以蜂鸣器为主的电路为发声电路,通过1N4148W稳压二极管和MPS8550三极管配置产生向系统外发声信号,而因为蜂鸣器在电气属性上是属于电感类元件,会自感产生电动势,所以需要有个稳压二极管来放电,无源电磁蜂鸣器发声原理则是利用电磁感应现象,为音圈接入电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声。

        白圈为USB接口电路:本音乐播放器可以通过USB接口供电工作,一边直接介入5V电路,一遍直接接地,其中通过电解电容过滤低频杂波,USB的两端EH端直接短接一起并接地。

        绿圈为发光电路:以两个二极管(不同色)所组装的电路为播放器的发光二极管示意,一边绿色与一边红色所示意两种音乐的播放。

        灰圈为4PIN电路:通过4PIN排针可以接入USB转TTL电平转换板。

        4、程序设计

        基本的程序部分参考了许多资料,尤其是音乐演奏程序部分,这方面是进制转换与音乐节奏相关专业的交叉学科内容,所以参考了CSDN论坛的资料,集合了各种方式来调试,调用部分的.h头文件。

        4.1 定时器初始化设置:

        定时器,简单来说可以比喻为一个闹钟,当你把他打开以后,他就会每秒动一下,+1,+1,+1,+1,如果你设置了某一个时间点闹钟会向以后,那么当闹钟的时间点+1,+1,+1,+到了你设置的时间的就会进入中断,也就是闹钟响了。

        程序及其注释:

        void Timer0Init(void)             //1毫秒@24.000MHz

        {

               AUXR |= 0x80;         //定时器时钟1T模式

               TMOD &= 0xF0;             //设置定时器模式

               TL0 = 0x40;        //设置定时初始值

               TH0 = 0xA2;             //设置定时初始值

               TF0 = 0;              //清除TF0标志

               ET0=1;

               TR0 = 1;             //定时器0开始计时

        }

        配置好定时器,并且设置了定时器要做什么事,接下把他放进main函数里面:

        void main()

        {

               Timer2Init();

               Timer0Init();

               EA=1;

        4.2 中断程序:

        其作用是中断此线程(此线程不一定是当前线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。

        程序示例:

        void Timer0 ()interrupt 1

        {

               Keyboard_out();

               Buzzer_out();

               LED_flash();

        }

        4.3 蜂鸣器头文件程序:

        蜂鸣器程序的无符号数据类型有做每分钟的节拍数节拍延时计数、音乐计数等;变量时会发生字节截断的整型数据有单个节拍的时间、音高序号、音乐开始标志位等。

        程序示例:

        typedef struct

        {

               unsigned char flag;

               unsigned char divisions;//divisions值暂且不明

               unsigned int BeatNumber;//每分钟的节拍数

               unsigned char BeatTime;//单个节拍的时间

               unsigned char PitchNumber;//音高序号

               unsigned char Start_flag; //音乐开始标志位

               unsigned int BeatCount;//节拍延时计数

               unsigned int MusicCount;// 音乐计数

               unsigned char *Music;

               unsigned char Music_num; //乐曲序号

        }BuzzerTypedef;

        extern BuzzerTypedef Buzzer;

        void Buzzer_out();

        void Buzzer_start(unsigned char Music[]);

        void Buzzer_stop();

        void Timer2Init(void);            //毫秒@24.000MHz

        void Switch_music(unsigned Music_num);

        void Switch_music_Init();

        #endif

        关于divisions值这个代表一个基本节拍时间,也就是10ms。拿生成的节拍数/基本节拍时间,就可以知道这个音符需要保持的时长。

        4.4 音乐节奏头文件程序:

        添加音乐对应的单片机代码,程序里边的数字为每分钟节拍数、数组结尾放入0表示结束。中间的值按顺序每两个表示一个音高和维持的时间(需要通过换算求出实际时间)

      程序示例(生日快乐歌):

        code unsigned char happy_birthday_to_you[]={

        2,96,

        8,6,2,8,6,2,5,4,2,

        5,4,1,6,4,2,5,4,2,

        1,5,2,7,4,4,5,4,1,

        5,4,1,6,4,2,5,4,2,

        2,5,2,1,5,4,5,4,1,

        5,4,1,5,5,2,3,5,2,

        1,5,2,7,4,2,6,4,2,

        4,5,1,4,5,1,3,5,2,

        1,5,2,2,5,2,1,5,6,

        0

        };

        5、总结收获

        经过对这一段时间对单片机控制技术作业项目的研究与制作,我不仅收获到了STC89C51系列单片机的一些基础知识,以及它的控制原理,在这次作业当中,经过不断的调试之后,我决定选用其他的 芯片,也就换成了STC15F2K60S2芯片,而在这个过程当中,也懂得了新芯片的连接方式,以及包括USB的基本连接和知识。

        硬件方面采用的是STC89C51单片机,经过Proteus 8.11仿真软件设计和实际电路焊接后,调试发现效果不佳,询问专业的同学和查阅资料所知,若要实现更好的功能应当采用更好的单片机系统,在后期就换选了STC15F2K60S2单片机,而这种单片机与之前的STC89C51单片机有以下区别(通过芯片说明手册对比):

        a)    两者都是直流供电电压单片机,STC89C51电压为4.5V-5.5V,而STC15F2K60S2为3.8V-5.5V,而且其Flash程序存储器是60K;

        b)    STC15F2K60S2不需要外部晶振和外部复位的单片机;大容量2K字节SRAM;双串口;高速10位8通道A/D转换器T0-T2 三个定时器:EEPROM;CCP/PCA/PWM;SPI功能;

        c)    STC15F2K60S2有先进的指令集结构,也可以兼容原先的普通8051指令集,也有硬件乘法/除法指令。

        总体而言,可以理解成STC15F2K60S2芯片就是增强版的STC89C51芯片。

        而程序方面其实是参考了相对多的资料,在整个过程中是比较煎熬的,因为换过很多程序,也出过很多BUG,搬运过不少资料,也借鉴了很多CSDN上面的资料,也翻阅了很多芯片的说明书,在硬件选型上面也是换过几个题材,最开始的是有流水灯,然后简易音乐盒到现在的小型USB接口的音乐盒。文章来源地址https://www.toymoban.com/news/detail-462659.html

到了这里,关于【单片机】电子音乐播放器的设计与制作(说明书)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机的音乐播放器系统(仿真+程序)

    该系统由AT89C51单片机+数码管模块+蜂鸣器模块+按键模块构成 可实现功能: 1、按键切换歌曲(4首) 2、数码管显示歌曲序号 proteus 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以

    2024年02月12日
    浏览(30)
  • 51单片机mp3音乐播放器设计

    一.硬件方案        mp3音乐播放器是以51单片机为核心控制器,设计一个音乐播放器,主要完成TF卡存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐播放软件,可识别、提取TF卡所存储的WMA、MP3格式的文件并可自行完成音频解码数据处理,最后送扬声

    2024年02月11日
    浏览(29)
  • 【无标题】单片机小项目———音乐播放器(keil+protues)

    刚学完单片机的朋友可以看一看。 主要功能: 1.播放音乐 2.切歌 3.显示歌曲数 仿真:  代码: #includeREG52.H //#define sound_amount 5  sbit play_up=P1^0;        sbit play_down=P1^1;    sbit pause=P1^2;        sbit speaker=P3^1;      unsigned char timer0h,timer0l,time,n; unsigned char music_num;    unsigned int

    2024年02月11日
    浏览(35)
  • 【单片机毕设选题】Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(38)
  • 【AT89C52单片机项目】音乐播放器的设计

    实验目的 用51系列单片机设计一个可以切歌的音乐播放器。 实验仪器 AT89C52单片机。 音乐播放模块。 设计要求 采用重装定时器计数方式1的初值来实现发出不同频率的声音,通过控制延时长度来实现不同的节拍,之后将音乐数据表填入,即可实现音乐播放。 可通过功能按键

    2024年02月16日
    浏览(46)
  • 单片机毕设 STM32音乐播放器设计与实现(原理图+源码+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(39)
  • 通信工程毕设 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(32)
  • 82、基于stm32单片机音乐喷泉设计播放器频谱彩灯系统设计(程序+原理图+参考论文+开题报告+任务书+设计资料+元器件清单等)

    随着人们生活水平的提高和建立绿色城市的向往,音乐喷泉以其独特的魅力和特殊的功能,愈来愈成为休闲娱乐产业中的一项重要产品,音乐喷泉的兴建也越来越多。 根据目前音乐喷泉的发展现状,介绍了一个以STM32单片机为核心的小型音乐喷泉控制系统。给出了一个简洁的单

    2024年02月12日
    浏览(75)
  • 基于粤嵌gec6818开发板嵌入式开发电子相册,音乐播放,视频播放,2048游戏

    实现功能:本系统需要使用粤嵌的GEC-6818开发板设计一款娱乐影音系统,其中包括图片显示(相册)、音乐播放、视频播放,游戏四个部分,在每个部分内部,具有操控各个部分的功能触摸按键。本系统还应具有蓝牙远程操控功能。 具体要求:对使用者具有良好的可视交互体

    2024年02月13日
    浏览(43)
  • 使用单片机控制蜂鸣器播放音乐的代码

    在嵌入式系统中,单片机常常被用于控制各种外设,其中包括蜂鸣器。蜂鸣器是一种能够发出声音的电子元件,可以通过单片机的控制来播放各种音乐或声效。本文将介绍如何使用单片机控制蜂鸣器播放音乐,并提供相应的源代码。 在开始编写代码之前,我们首先需要确定使

    2024年02月01日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包