单片机课程设计 音乐播放系统设计

合集下载

音乐播放器-单片机课程设计

音乐播放器-单片机课程设计

设计内容与设计要求设计内容:本课题要求以单片机为核心设计一个音乐播放器,完成多曲选择播放控制、停止控制、省电模式控制等功能。

音乐播放器利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由喇叭发出声音,选取某段音乐使单片机连续播放。

设计3个按键:播放/停止、下一曲、上一曲;4位LED 显示器,用来显示所选曲目,该显示器在播放期间为了节省电源,设计为关闭状态,当一歌曲演奏结束,或选曲时显示器才显示曲目信息。

要求焊接好开发板,在开发板上进行调试。

设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)开发板焊接及测试5)系统软件设计及调试;6)系统联调及操作说明7)写说明书主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件,仿真软件proteus;3、开发板1块;4、制作工具1套;5、系统设计所需的元器件。

说明书格式目录第1章、概述第2章、系统总体方案设计第3章硬件设计第4章软件设计及调试第5章系统联调及操作说明第6章总结参考文献附录A系统硬件原理图附录B程序清单进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。

下午:借阅有关资料,总体方案讨论。

星期二、分班级焊接开发板星期三、确定总体方案,学习与设计相关内容。

星期四、各部分方案设计,各部分设计。

星期五、设计及上机调试。

星期六、设计并调试第二周星期一:设计及上机调试。

星期二:调试,中期检查。

星期三:调试、写说明书。

星期四--星期五上午:写说明书、完成电子版并打印成稿。

星期五下午:答辩。

参考文献参考文献1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.第1章概述... ... ... ... ... ... ... ... .. .. . 61.1单片机简介... ... ... ... .. ... ... ... (6)1.2 任务简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7第2章系统总体方案设计 (8)2.1 音乐的产生... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.2 系统方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10第3章硬件设计 (11)3.1 89C51单片机 (12)3.2 I/O并行口直接驱动LED显示 (14)3.3 蜂鸣电路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153.4控键电路.. . . . . . . . . . . . . . . . . . .163.5时钟电路 . . . . . . . . . . . . . . . . .. .173.6电源电路 . . . . . . . . . . . . . . . . . . 17 第4章软件设计 (18)4.1.软件设计 (18)4.2 设计方案. . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . .. . . . .19第5章系统调试与仿真 (20)5.1软件仿真阶段 (20)5.2系统的仿真调试阶段 (20)5.3调试问题处理 (21)第6章心得体会 (22)参考文献 (23)附录A:音乐播放器电路设计图 (24)附录B:程序清单 (25)第1章概述1.1单片机简介单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

单片机课程设计报告(利用蜂鸣器播放音乐)

单片机课程设计报告(利用蜂鸣器播放音乐)

课程设计:嵌入式系统应用题目名称:利用蜂鸣器实现音乐播放功能姓名:学号:班级:完成时间:1设计的任务设计内容:动手焊接一个51单片机设计目标:利用单片机上的蜂鸣器实现音乐播放功能2 设计的过程2.1 基本结构1.STC89C52RC在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K字节。

(STC89C52RC引脚图)STC89C52RC单片机的工作模式:(1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序(2)空闲模式:典型功耗2mA(3)正常工作模式:典型功耗4Ma~7mA(4)唤醒,适用于水表、气表等电池供电系统及便携设备2.蜂鸣器及其工作原理:蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

本实验采用的是电磁式蜂鸣器。

蜂鸣器按其是否带有信号源又分为有源和无源两种类型。

有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。

无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。

本实验采用的是有源蜂鸣器。

(蜂鸣器与单片机连接电路图)2.2 软件设计过程1.蜂鸣器发声原理本实验由于采用有源蜂鸣器,只需将引脚端口P3^4清零,蜂鸣器即可发声;P3^4置位,蜂鸣器停止发声。

单片机音乐播放器课程设计

单片机音乐播放器课程设计

单片机音乐播放器课程设计一、课程目标知识目标:1. 理解单片机的基础知识,掌握其内部结构与工作原理;2. 学会使用C语言编写单片机程序,实现音乐播放器的功能;3. 了解音乐播放器的基本组成部分,如音符产生、音调控制等;4. 掌握音乐理论知识,能将简单的乐谱转换为单片机程序。

技能目标:1. 能够运用所学知识,设计并实现一个具有基础音乐播放功能的单片机系统;2. 熟练使用编程软件进行单片机程序编写、调试与优化;3. 学会使用相关工具和仪器,进行电路搭建、测试与故障排查。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发创新精神;2. 培养学生的团队协作能力,学会与他人共同解决问题;3. 增强学生的自信心,敢于面对挑战,勇于克服困难;4. 培养学生的责任心,关注环境保护,养成良好的操作习惯。

课程性质:本课程为实践性较强的课程,以项目为导向,结合单片机原理与应用,培养学生的动手能力和创新能力。

学生特点:本课程针对高中年级学生,学生具备一定的物理、数学基础,对电子制作有一定兴趣,但编程能力参差不齐。

教学要求:教师需结合学生特点,采用循序渐进的教学方法,注重理论与实践相结合,关注个体差异,提高学生的实践操作能力。

在教学过程中,注重引导学生思考,激发学生的学习兴趣,培养其创新精神。

通过课程学习,使学生能够独立完成一个简单的单片机音乐播放器设计。

二、教学内容1. 单片机基础知识:介绍单片机的内部结构、工作原理、性能特点,引导学生了解并掌握单片机的基本概念。

教材章节:第一章 单片机概述2. C语言编程基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生编写单片机程序奠定基础。

教材章节:第二章 C语言基础3. 单片机程序设计与调试:学习如何使用编程软件进行程序编写、调试与优化,掌握单片机程序的开发流程。

教材章节:第三章 单片机程序设计与调试4. 音频信号处理:介绍音频信号的基本知识,如音符、音调、节拍等,学习如何将乐谱转换为单片机程序。

音乐播放系统设计--单片机课程设计报告

音乐播放系统设计--单片机课程设计报告

单片机课程设计报告单片机课程设计报告音乐播放系统设计音乐播放系统设计姓 名:名: 陈 志 祥,祥, 陈 琪,琪,温 雪 云 班 级:级: 04电信(3)班)班学 号:号:2004358307 2004358308 2004358324 指导老师:指导老师:日期:日期:2007.7.2~2007.7.13华南农业大学工程学院华南农业大学工程学院摘 要要作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me““Me“----等音阶在内的各种频率声音。

在此设计中我们采用12MHz 的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发出声音。

声音。

乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。

音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。

便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。

其它节拍与时间的对应关系也可以从两者关系表中得到。

也可以从两者关系表中得到。

定时器T0工作在定时方式1,改变TH0及TL0TL0,产生不同的音频频率。

要编写的乐,产生不同的音频频率。

要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。

主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。

进行工作。

目 录录1 方案比较与选择(须详细阐述创新点或新见解)方案比较与选择(须详细阐述创新点或新见解)············································· 1 2 电路仿真与分析电路仿真与分析······································································································· 2.1 电路仿真电路仿真········································································································ 2.2 电路分析电路分析········································································································ 3电路板制作、焊接、调试电路板制作、焊接、调试························································································ 3.1 电路板制作电路板制作····································································································· 3.2 电路板焊接电路板焊接····································································································· 3.3 电路板调试电路板调试···································································································· 4讨论及进一步研究建议讨论及进一步研究建议···························································································· 5课程设计心得课程设计心得············································································································ Abstract ·Abstract ··························································································································参考文献参考文献 ·······················································································································1.方案比较与选择方案一:利用AT89C2051和三级管9012构成的音乐播放器一、功能特色一、功能特色本播放器可实现循环播放、上一曲、下一曲、复位等功能。

单片机MSP430G2课程设计音乐播放器

单片机MSP430G2课程设计音乐播放器

单片机期末检测报告学生姓名:***学生学号:********专业班级:自动化12-2班基于MSP430G2的音乐切换器一、内容通过MSP430G2播放自己所设置的歌曲,并通过按键S2切换另一首歌曲二、思路与方法(1)思路:通过老师上课所讲的F6638音乐器播放实例,想利用MSP430G2来进行音乐播放,阅读网上单片机播放音乐例程并加以改编,并试想利用按键S2来进行歌曲的实时切换(2)音乐:通过MSP430蜂鸣器音高音长对照表,将自己喜欢的音乐通过音乐简谱改成相应代码,利用播放函数play_song()进行歌曲播放。

演奏乐曲对于一个音符应该包括两个部分,声调用简单的延时-电平翻转来实现,改变了延时的时间就改变了声调,而时间通过计数比较来实现,当计数值相等时就跳出循环演奏下一个音符。

(3)按键S2:通过中断服务、事件检测、事件处理函数,通过按键S2切换歌曲(4)硬件:无源蜂鸣器、MSP430G2单片机有流程图:三、程序调试(1)遇到的问题与解决方法按键S2切换歌曲开始不能进行实时切换,首先是我将实验是检测按键的程序进行整改加入主程序中while(1),这样只有长按S2键才能播放下一曲。

后来查阅书籍关于MSP430G2中断服务的程序后,调用这些函数,并设置变量i放在两个音乐播放函数中,通过判断i=1或0进行选歌。

开始编曲时候并未按照音高、音长对照表进行编曲,所以导致歌曲无调子,后在搜集到资料后进行整改进行改曲。

开始蜂鸣器声音略小,后发现是正负导线接反所致。

(2)程序段/*********************************************时钟频率务必为8MHz,定时器为8分频*********************************************/#include<msp430g2553.h>typedef unsigned char uchar;#include"music.h"//乐曲1#include"te.h"//乐曲2#define Buzzer BIT3#define Buzzer_Port P2OUT#define Buzzer_DIR P2DIRuchar counter;void Play_Song(void);void Delay_Nms(uchar n);void ss(void);void P1_IODect();void P13_Onclick();static int i=0;/***************主函数****************/void main(void){WDTCTL = WDTPW + WDTHOLD;//关闭看门狗P1DIR |= BIT0;P1OUT |= BIT0;P1REN |= BIT3;P1OUT |=BIT3;P1DIR &=~BIT3;P1IES |= BIT3;P1IE |= BIT3;BCSCTL1=CALBC1_8MHZ; //晶振选择DCO中的8MHzDCOCTL=CALDCO_8MHZ; //选择系统主时钟为8MHz//CCTL0 = CCIE;CCR0 = 7200; //设定拍速TACTL |= TASSEL_2 + ID_3; //TimerA定时器分频要选8分频 Buzzer_DIR |= Buzzer; //设置控制蜂鸣器的IO方向为输出 _EINT(); //打开全局中断//循环演奏歌曲while(1){if (i==0)//按键没按下{Play_Song();}else {ss();}}}/*******************************************函数名称:TimerA_ISR功能:定时器A的中断服务函数********************************************/#pragma vector = TIMER0_A0_VECTOR__interrupt void TimerA_ISR(void){counter++;}/*******************************************函数名称:PORT1_ISR功能:响应p1口的外部中断服务********************************************/#pragma vector =PORT1_VECTOR__interrupt void PORT1_ISR(void){P1_IODect();P1IFG=0;}/*******************************************函数名称:P1_IODect()功能:判断具体引发中断的I/O,并调用相应I/O的中断事件处理函数********************************************/void P1_IODect(){unsigned int Push_Key=0;Push_Key=P1IFG&(~P1DIR);__delay_cycles(10000);if((P1IN&Push_Key)==0){switch(Push_Key){case BIT3:P13_Onclick(); break;default: break;}}}/*******************************************函数名称:P13_Onclick()功能:事件处理函数********************************************/void P13_Onclick(){if(i==0){i=1;}elsei=0;P1OUT ^=BIT0;}/*******************************************函数名称:Delay_Nms功能:延时N个ms的函数参数:n--延时长度返回值:无********************************************/void Delay_Nms(uchar n){uchar i,j;for( i = 0;i < n; i++ ){for( j = 0;j < 3;j++ )_NOP();}}/*******************************************函数名称:Play_Songss********************************************/void Play_Song(void){uchar Temp1,Temp2;//Temp1放音调决定了音调的高低,Temp2放音长决定了某个音的演奏时间uchar addr = 0; //SONG数组中每两个为一组第一字节为音调,第二字节为音长counter = 0; //中断计数器清0while(i==0){Temp1 = songsong[addr++];if ( Temp1 == 0xFF ) //休止符{TACTL &=~MC_1; //停止计数Delay_Nms(100);}else if ( Temp1 == 0x00 ) //歌曲结束符{return;}else{Temp2 = songsong[addr++];TACTL |=MC_1; //开始计数while(1){Buzzer_Port ^= Buzzer;Delay_Nms(Temp1);if ( Temp2 == counter ){counter = 0;break;}}}}}void ss(void){uchar Temp1,Temp2;//Temp1放音调决定了音调的高低,Temp2放音长决定了某个音的演奏时间uchar addr = 0; //SONG数组中每两个为一组第一字节为音调,第二字节为音长counter = 0; //中断计数器清0while(i==1){Temp1 = gg[addr++];if ( Temp1 == 0xFF ) //休止符{TACTL &=~MC_1; //停止计数Delay_Nms(100);}else if ( Temp1 == 0x00 ) //歌曲结束符{return;}else{Temp2 = gg[addr++];TACTL |=MC_1; //开始计数while(1){Buzzer_Port ^= Buzzer;Delay_Nms(Temp1);if ( Temp2 == counter ){counter = 0;break;}}}}}const unsigned char songsong[]= //歌曲1 CCR0=7200,格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,{0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,}; const unsigned char gg[]= //歌曲2 CCR0=7200{ 0x18, 0x30, 0x1C , 0x10, 0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 ,0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C, 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18, 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00 };四、调试结果红灯亮第一首歌:红灯灭第二首歌:结果说明:调试结果,达到了预期通过S2切换歌曲的功能五、总结与体会通过这次的课程设计,我学会了MSP430单片机定时器、中断服务模块、I/O 输入输出系统等。

音乐播放器单片机课程设计-基于单片机的音乐播放器

音乐播放器单片机课程设计-基于单片机的音乐播放器

⾳乐播放器单⽚机课程设计-基于单⽚机的⾳乐播放器⼀.概述 (2)⼆.系统总体⽅案设计 (3)三.硬件设计 (6)3.1 89C51单⽚机 (6)图3-1和3-2 (7)3.2 I/O并⾏⼝直接驱动LED显⽰ (7)四.软件设计 (10)4.1.软件设计 (10)五.系统调试与仿真 (12)5.1软件仿真阶段 (12)5.2系统的仿真调试阶段 (12)5.3硬件安装调试 (12)六.总结 (14)参考⽂献 (15)附录A:⾳乐播放器电路设计图 (16)附录B:程序清单 (17)⼀.概述本课题要求以单⽚机为核⼼设计⼀个⾳乐播放器,完成多曲选择播放控制、停⽌控制、省电模式控制等功能。

⾳乐播放器利⽤单⽚机的定时器产⽣乐谱的各种频率⽅波,信号经过放⼤后由喇叭发出声⾳,选取某段⾳乐使单⽚机连续播放。

设计3个按键:播放/停⽌、下⼀曲、上⼀曲;4位LED显⽰器,⽤来显⽰所选曲⽬,该显⽰器在播放期间为了节省电源,设计为关闭状态,当⼀歌曲演奏结束,或选曲时显⽰器才显⽰曲⽬信息。

总体的设计思路是这样的。

⼆.系统总体⽅案设计本课题要求以单⽚机为核⼼设计⼀个简易⾳乐播放器,具有⾃动播放乐曲的功能。

⼀⾸⾳乐是许多不同的⾳阶组成的,⽽每个⾳阶对应着不同的频率,这样我们就可以利⽤不同的频率的组合,即可构成我们所想要的⾳乐了,⾳阶对应频率关系图1-1:图2-1本设计⽤89C51单⽚机为核⼼,利⽤8段数码管显⽰器.采⽤动态显⽰输出,声⾳输出⽤蜂鸣器来实现。

采⽤8段数码管显⽰器进⾏动态显⽰需要占⽤4根I/O线,蜂鸣器占⽤1根I/O线,89C51单⽚机有⾜够的线,不⽤扩展I/O⼝。

⽤⼀⽚单⽚机即可满⾜本设计的输⼊输出。

系统框图如图1-2所⽰:图2-2通过对⾳乐播放器主体部分的电路进⾏模仿设计,达到播放器固有的基本功能,设定按钮K1、 K2和K3。

按钮K1打开并⾃动播放乐曲1;按钮K2打开并⾃动播放乐曲2;按钮K3为⼿动控制⾳乐停⽌的按键。

单片机音乐播放课程设计

单片机音乐播放课程设计

单片机音乐播放课程设计一、课程目标知识目标:1. 学生能理解单片机的原理和基本结构,掌握音乐播放器的设计流程。

2. 学生能掌握音乐播放器编程的基本语法和逻辑,如音符的时长、音调控制等。

3. 学生能了解并运用数字信号处理基本概念,如采样、量化等,解释音乐播放过程。

技能目标:1. 学生能运用单片机开发环境进行音乐播放器的程序编写、调试与下载。

2. 学生能通过实验和项目实践,掌握音乐播放器硬件与软件的协同设计方法。

3. 学生能够独立或合作完成音乐播放器的制作,展示作品并进行简单的故障排查。

情感态度价值观目标:1. 学生培养对电子技术和编程的兴趣,激发创新意识和探索精神。

2. 学生通过实践,培养问题解决能力和团队协作能力,增强自信心。

3. 学生通过创作音乐播放器,体会技术对生活的影响,培养社会责任感。

课程性质分析:本课程为实践性强的单片机应用课程,结合了电子技术、编程和音乐知识,旨在培养学生的动手能力、创新思维和综合应用能力。

学生特点分析:假设学生为高中生,具有一定的物理电子知识基础,对编程有一定了解,对音乐有基本的感知能力。

教学要求:课程需注重理论与实践相结合,鼓励学生主动探索和动手实践,强调过程评价和成果评价相结合,确保学生达到预定的学习目标。

二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,重点讲解AT89C51单片机的内部结构、引脚功能及其编程特性。

相关教材章节:第一章单片机概述。

2. 音乐播放器原理:讲解音乐播放器的基本原理,包括音符的生成、音调控制、节拍控制等。

相关教材章节:第三章数字信号处理基础。

3. 编程语言与开发环境:学习单片机编程语言(如C语言),熟悉Keil、Proteus等开发工具的使用。

相关教材章节:第二章单片机编程语言与开发环境。

4. 硬件电路设计:学习音乐播放器硬件电路的设计,包括单片机、音频放大器、扬声器等元件的选型和连接。

相关教材章节:第四章单片机外围电路设计。

单片机音乐播放器课程设计

单片机音乐播放器课程设计

摘要本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。

在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。

校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。

此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。

本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C 语言进行程序设计。

通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。

把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。

这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。

关键词:单片机;音乐播放器;C语言。

目录绪论 (1)第1章音乐盒的设计总体方案 (2)第2章硬件电路设计 (3)2.1 总体设计框图 (3)2.2 时钟电路 (3)2.3 复位电路 (3)2.4 选曲按键电路 (3)2.5 音频发生及放大电路 (4)第3章软件程序设计 (5)3.1单片机发声概述 (5)3.2 程序流程图 (6)3.3 音乐的产生 (7)第4章 KEIL仿真软件的应用 (8)第5章调试与故障分析 (9)5.1 软件程序调试 (9)5.2 硬件电路调试 (9)总结 (10)致谢 (11)参考文献 (12)附录1:原理图 (13)附录2:源程序 (14)绪论单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。

它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理及应用》课程设计报告书课题名称音乐播放器姓名学号专业指导教师机电与控制工程学院年月日任务书本次课题是:设计一个以单片机为核心的音乐播放器,该音乐播放器具有音乐的循环播放及播放时的音乐显示等功能。

具体要求如下:设计三个键分别实现:播放/停止、下一曲、上一曲;同时用LED显示器显示播放曲目,为了节省电源,LED显示器在播放期间设计为关闭状态,只有当一首歌演奏结束或选曲时显示器才显示曲目信息。

当播放键打开时音乐开始播放,同时LED显示器显示,假如是第一首歌则LED显示器显示数字1,当打开下一曲按键时播放器开始播放第二首歌,同时LED显示器显示数字2。

声音经过三级管放大后由蜂鸣器输出。

音乐可以给我们的生活带来乐趣,音乐可以放松我们的心情,音乐可以让我们得到释怀。

而且通过这次设计我们可以学到关于单片机在实际生活中的设计应用,同时也使我们加深了对单片机的认识,提高了我们的编程能力,为我们能够更好的学习单片机有很大的帮助。

目录1.绪论 (1)2.方案论证 (2)3.方案说明 (2)4.硬件方案设计 (3)5.软件方案设计 (13)6.调试 (14)7.小结 (17)8.参考文献 (11)9.附录 (14)1.绪论二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,现代家庭更加注重生活品质,健康、安全、舒适、便捷成为人们的迫切需要。

智能家电控制系统为智能家居的一个重要组成部分,为人们提供方便、安全、智能化、舒适的数字化生活提供解决方案。

随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。

本设计以数字集成电路技术为基础,单片机技术为核心。

本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。

系统以单片机的汇编语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。

系统通过扬声器为载体发出声音,所以具有人性化的操作和悦耳的歌声。

要产生音频信号,只要算出某一音频的周期(频率的倒数),将此周期除以2即为半周期的时间,利用定时器计时此半周期时间,计时到后取反输出,重复此过程即得到此频率的声音信号。

此信号从P1.7脚输出。

定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。

必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。

一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表1中所给的定时初值就是考虑中断响应后的定时常数。

另外,为避免T1中断可能引起杂音,应将定时器T0中断设为高优先级。

这样编写出来的程序播放的音与标准音叉进行差频校音,非常准确和谐。

2.方案论证首先设定三个键分别将三个开关键接到单片机的三个端口P1.0—P1.2,P3.5作为输出接口。

8255的A口接LED显示器的字形控制端口,PC0接位控制端口,并将片选信号接口接好。

将输出信号通过三极管放大后由蜂鸣器输出,三极管的一端接高电平,一段接低电平,另一端接地。

3.方案说明当打开播放键时系统经过判别选出第一首歌曲,首先将歌曲地址送到寄存器中,然后调用音乐频率数码表,经过P3.5口输出,再经三极管放大,最后由蜂鸣器发出音乐。

同时在音乐播放期间,显示电路通过并行方式与单片机扩展的8255的PA口相连,用74LS244译码后接到显示上。

假如是第一首歌则显示器显示1,第二首则显示相应的数字2。

同时也可以通过相应的开关选择相应的歌曲。

4.硬件方案设计4.1单片机的选择单片机采用应用最为普遍的MCS-51系列单片机。

MCS-51单片机是由8位CPU、只读存储器EPROM/ROM、读写存储器RAM、并行I/O口、串行I/O口、定时器/计数器、中断系统、振荡器和时钟电路等部分组成,各部分之间通过内部总线相连。

MCS-51系列单片机的主要性能有:1)8位字长CPU和指令系统;2)1个片内时钟振荡器和时钟电路;3)64K外部数据存储器的地址空间;4)64K外部程序存储器的地址空间;5)32条双向且分别可位寻址的I/O口线;6)128B的片内RAM;7)2个16位定时器/计数器;8)具有2个优先级的5个中断源结构;9)1个全双工串行口;10)1个布尔处理器。

MCS-51单片机的核心部分是中央处理器CPU,它由运算器和控制器两大部分组成。

运算器用来完成算术运算、逻辑运算和进位操作,由算术逻辑单元(ALU)、位处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2等组成,与一般运算器的作用类似。

控制器是用来统一指挥和控制计算机进行工作的部件,它由定时和控制逻辑、内部振荡电路OSC、指令寄存器及其译码器、程序计数器PC 及其增量器、程序地址寄存器、程序状态寄存器PSW、RAM地址寄存器、数据指针DPTR、堆栈指针SP等部分组成。

单片机工作的时间基准是由时钟电路提供的。

在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。

电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为(30+10)pF。

石英晶体选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值。

如图所示:单片机的RST管脚为主机提供一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

单片机的复位方式有上电自动复位和手工复位两种。

4.4 8255A芯片的简介Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。

它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。

8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。

4.4.1 8255SA的内部结构可编程并行接口Intel8255A, 其内部结构如图3.4.1所示,由以下4个部分组成:图4.4.1 8255A内部结构1.输入/输出端口A、B、C 。

这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。

A口和B口是一个独立的8位I/O口。

C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。

2.A组和B组控制电路。

这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。

A组控制电路用来控制A口及C口的高4位;B 组控制电路用来控制B口及C口的低4位3.读/写控制逻辑。

(同上:它负责管理8255A的数据传输过程。

它接收CS*及RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。

将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。

)4.数据总缓冲器。

(同上:它是8位的双向的三态缓冲器。

作为8255A 与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。

4.4.2 8255A的引脚信号如图3.4.2所示是8255A的芯片引脚信号。

除了电源和地以外,其他信号可以分为两组。

1.和外设一边相连的:PA7-PA0:A组数据信号PB7-PB0:B组数据信号PC7-PC0:C组数据信号2.和CPU一边相连的:RESET:复位信号,低电平有效。

当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。

D7-D0:它们是8255A的数据线,和系统数据总线相连。

CS\:芯片选择信号,低电平有效。

在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255A的CS*端输出一个低电平,于是8255A被选中。

只有当CS\有效时,读信号RD\和写信号WR\才对8255A有效。

RD*:芯片读出信号低电平有效。

WR*:芯片写入信号低电平有效。

A1、A0:端口选择信号。

8255A内部有3个数据端口和一个控制端口,共四个端口。

规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。

8255A的几个控制信号和传输动作之间的关系如下表8255A的控制信号与传输动作的对应关系4.4.3 8255A的控制1.工作方式控制字8255有三种工作方式:方式0、方式1、方式2。

两组端口可分别指定不同的工作方式。

每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。

方式选择控制字的格式如图3.4.3所示。

图3.4.3 方式选择控制字的格式2.PC口控制字PC口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置0。

这种操作用向PC口控制字寄存器送出PC口控制字来实现。

PC口控制字格式如图3.4.4所示。

应用注意:PC口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到PC数据口。

编程举例:设PA数据口地址00E0H,PB数据口地址00E2H,PC 数据口地址00E4H,控制口00E6H例子一:当要求端口A工作在方式0,输出;端口B工作在方式1,输入;端口C的高4位为输入,低4位为输出;则方式控制字为10001110B 或8EH,如图3.4.5所示汇编指令如下:MOV DX,00E4HMOV AL,8EHOUT DX,AL例子二:当要求端口A工作在方式1,输入;端口B工作在方式0,输入;端口C的高4位为输出,低4位为输出;则方式控制字为10110010B 或0B2H,如图3.4.6所示汇编指令如下:MOV DX,00E4HMOV AL,0B2HOUT DX,AL4.5 LED显示电路设计单片机应用系统中,通常都需要进行人机对话。

这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。

显示器、键盘电路就是用来完成人机对话活动的人机通道。

常用的LED数码显示器由7个发光二极管组成7段LED显示器,其排列形状如图所示。

相关文档
最新文档