欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    音乐提示定时器单片机课程设计.docx

    • 资源ID:95080       资源大小:144.04KB        全文页数:23页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    音乐提示定时器单片机课程设计.docx

    1、音乐提示定时器单片机课程设计第1章 课程设计的要求、目的1.1 课程设计的要求音乐提示定时器要求通过设计4个按键设置现在想要倒数的时间:K1-可调整倒数时间为1-60分钟,能够实现时间可调;K2设置倒数计时时间为5分钟,显示为“0500”;K3设置倒数计时时间为10分钟,显示为“1000”;K4设置倒数计时时间为20分钟,显示为“2000”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时人为停止;内定倒数计时时间为5分钟,显示为0500。1.2 课程设计的目的(1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。(2)掌握单片机的接口技术及相关外围芯片的

    2、外特性,控制方法。明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。(3) 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。(4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。了解程序设计总体功能及结构,对各子模块的功能以及各子模块之间的关系有较详细的描述。(5) 通过完成一个包括电路设计和程序开发的完整过程,通过实际操作,将理论用于实践,提高对本课程的实际运用能力,在设计的过程中发现问题、解决问题,掌握更多的知识。第2章 总体设计方案2.1 总体方案的选择本课题要求以单片机为核心设计一个音乐提示定时器,具备倒数计时、

    3、时间设置、音乐演奏等功能。设计20分钟、10分钟、5分钟的设置开关或按键,例如20分钟,显示为“20.00”,内定倒数计时时间为5分钟,显示为05.00(开机状态)。一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时停止。根据题目要求,音乐定时系统由核心处理模块、数码管显示模块、音乐模块、及倒计时模块等组成。通过对P2口的查询,实现不同时间的设定和调整,系统晶振为11.0592MHz,利用单片机的RESET管脚作为系统开关。利用查询方式设定倒计时时间。进行总体设计前需先设计出各子功能模块的程序,并进行调试,各子模块调试成功后,再用一定的连接方法把各子程序连接起来,再次进行

    4、调试,直至正确可以实现总体功能为止。2.2 总体方案的说明通过计算某一音频周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲,再结合中断延时程序,程序中节拍控制是通过调用延时子程序DELAY的次数来实现,产生音乐。利用P2.3、P2.4、P2.5管脚,对应开关K2、K3、K4,分别启动不同的倒计时程序5分钟、10分钟、20分钟。通过查询方式对P3.2管脚进行查询,进入1到60分钟的时间调整程序。P0引脚作为显示输出连至LED显示器,P

    5、2.0、P2.1、P2.2、P2.3为位选信号,控制不同位的数码管。程序中使用定时器T0方式1来产生歌谱中各音符对应频率的音频脉冲,由P3.7通放大输出,1拍为748 ms。确定了设计思路后,就可以具体设计了。先编写程序,然后加入硬件进行调试。第3章 系统方框图与工作原理3.1 系统设计框图3.2 基本工作原理音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反

    6、相,这样就能在此I/O口上得到此频率的脉冲。通常,利用单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同频率。对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。总而言之,一首乐曲是由音阶和节拍两大要素构成。一首乐曲演奏的原理是:不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应

    7、的节拍变化,即可演奏一首乐曲。根据这一特点,我们采用单片机辅以相应的接口来设计音乐播放器3。第4章 各单元硬件设计及说明4.1 单片机的选择 单片机/EA管脚始终接高电平,单片机复位方式采用按键电平触发复位,通过计算可知单片机频率为11.0592MHz时,计时误差最小,精度越高,因此内部时钟频率设为11.0592MHz。ST89C51系列与MCS-51系列单片机相比,有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。它以较小的体积、良好的性能价格比倍受青睐。本次课程设计采用89C51单片机。4.2 复位电路复位电路根据应用

    8、的要求,复位操作有两种基本形式:上电复位和上电或开关复位。当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 上电复位要求接通电源后,自动实现复位操作。电容C13和电阻R19对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R19,也能达到上电复位的操作功能。 要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。由于电容C13的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时

    9、,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。本系统的复位电路采用上电复位。 RET按键可以选择专门的复位按键,也可以选择轻触开关。4.3 晶振电路晶振电路单片机工作的时间基准是由时钟电路控制的。在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。 电路中,电容器C14和C15对振荡频率有微调作用,通常的取值范围为30PF左右。石英晶体选择12MHZ就可以。本次设计应用的电压有+5V。220V交流电源经变压器,整流,滤波后分别进入芯片7805,产生+5V,这些电源的具体应用情况如下:+5V电源:单片机及外围电路所用电源+

    10、9V电源:压电喇叭所用电源 4.4 音乐播放电路蜂鸣器有长声有短声两种,可以根据需要进行选择,通过软件编程控制。在程序里可以设计不同的歌曲来通过播放器进行播放,所以,在这个设计里,是可以有不同的铃声的。第5章 器件说明5.1 单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, 1主要特性:与MCS-51 兼容4K字节可编程闪烁

    11、存储器.寿命:1000写/擦循环.数据保留时间:10年全静态工作:0Hz-24Hz 三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合

    12、,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。5.2 LED显示器 LED显示器数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数

    13、码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。第6章 软件设计与说明6.1 定时显示子程序6.2 系统软件设计方案的确定 根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。6.3

    14、 音乐定时常数的确定产生音乐通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。利用AT89C52单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同的频率。若单片机采用12MHz晶振,要产生频率为587Hz的音频脉冲时,其音频脉冲信号的周期T=1/587=1703.577us,约1704us,半周期的时间852us,因此只要今计数器计数=852us/1us=852,在每计数852次时将I/O口反相,就可得C调中音Re。计数脉冲值与频率的关系如下: N=Fi/2/Fr式中:N计数值 Fi机器频率。晶体振荡器为12MHz时,内部计时一次为1us,故其频率为1MHz

    15、Fr想要产生的频率所以定时常数(计数值T)的求法: T=65536-N=65536-Fi/2/Fr例如,设Fi=1MHz,求低音Do(262Hz)、中音Do(523Hz)和高音Do(1046Hz)的计数初值。解:T=65536-N=65536-Fi/2/Fr=65536-500000/Fr 低音Do的T=65536-500000/262=63628 中音Do的T=65536-500000/523=64580 高音Do的T=65536-500000/1046=65058C调各音符频率与计数值T的关系音符频率(Hz)半周期(ms) 简谱码T值定时值(H)简谱码T值定时值(D)低1 Do2621.9

    16、0F894H62628低2 Re2941.70F95CH63835低3 Mi3301.51FA1AH64021低4 Fa3491.43FA6AH64103低5 So3921.28FB00H64260低6 La4401.14FB8CH64400低7 Si4941.01FC0EH64524中1 Do5230.95FC4AH64580中2 Re5870.85FCAEH64684中3 Mi6590.76FD08H64777中4 Fa6980.72FD30H64820中5 So7840.64FD80H64896中6 La8800.57FDC6H64966中7 Si9880.51FE02H65030高1

    17、Do10460.47FE2AH65058高2 Re11750.42FE5CH65110高3 Mi13180.38FE84H65157高4 Fa13970.36FE98H65178高5 So15680.32FEC0H65217高6 La17600.28FEE8H65252高7 Si19670.25FF06H65283第7章 调试步骤、结果、使用说明P2.4接开关K1,P2.5接开关K2,P2.6接开关K3,P2.7口接开关K4,P1.7口接起动按钮K5,当按下K1,倒计时时间加一分钟,可选择1到60分钟的定时;按下K2,计时时间为5分钟;按下K3,计时时间为10分钟;按下K4,计时时间为20分钟

    18、;按下起动按钮K5,定时器开始计时,再次按下,停止计时。同时利用P2.0、P2.1、P2.2、P2.3作为位选管脚,从P0口输出代码至LED显示器,设计消影功能和显示延时程序实现动态显示。当计时结束时跳转到音乐产生子程序。当需要音乐停止时,按下复位按钮STOP,音乐即停止,显示器显示内定的倒计时时间0500第8章 设计总结学校每次课程设计都能让我全身心投入,废寝忘食也不为过,因为我始终觉得实践才能让我们成长。同时还能学到很多专业知识,加深对课本内容的理解,虽然会遇到很多困难,却总能得到收获。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际

    19、工作能力的具体训练和考察过程。如今电子行业已经慢慢取代手工业了,而单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为电子信息工程专业的学生来说掌握单片机的开发技术是十分重要的。 我的题目是音乐提示定时器的设计,对于我们这些工科学生来说,这是一次小小的锻炼。因为平时老师的细心教导,和自己也自学过单片机,所以这次课程设计还算简单。但是这次课程设计我还是学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进

    20、行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中发现了自己的不足之处,以及对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机C语言掌握得不够熟练等。这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成了。谢谢老师!附录:程序清单 #include #define uint unsigned int #define uchar unsigned char uchar pre_time;

    21、/时钟标志 uchar time,tz,tz1;/tz调整标志,tz调整所在位 char fen1,fen,miao1,miao;/时钟 uchar shu,ding; uchar l;sbit ADDR0 = P10;sbit ADDR1 = P11;sbit ADDR2 = P12; sbit ADDR3 = P13;sbit ENLED1 = P14; sbit SPK=P12; sbit k1=P32; sbit k2=P33; sbit k3=P34; sbit k4=P35;sbit dula=P26; /段锁存器sbit wela=P27; /位锁存器 sbit k5=P20;

    22、uchar code duanma= /段码列表(0-9) 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90;uchar code weima= /位码列表(8个数码管) 0x80,0x40,0x20,0x10, 0x08,0x04,0x02,0x01;uchar code song=0X54,0XC4,0X12,0X32,0X34,0X52,0X52,0X52,0X52,0X42,0X32,0X34, 0XC1,0XC2,0X52,0XC2,0X12,0X32,0X34,0X11,0X12,0X31,0X12,0XC2, 0X78,0X72

    23、,0X52,0X52,0X42,0X32,0X42,0X52,0X11,0XC1,0XC4,0XC1, 0XC1,0XC1,0XC1,0X12,0X32,0X32,0X12,0X42,0X42,0X44,0XC2,0X12, 0X32,0X42,0X52,0X72,0X72,0X82,0X41,0X51,0X42,0X48,0X42,0X12, 0X3C,0X72,0X62,0X3C,0X72,0X62,0X3C,0X72,0X62,0x21,0x31,0x41, 0x51,0x61,0x71,0x81,0x91,0x61,0x71,0x81,0x91,0X3F,0X3F,0X54, 0XC2

    24、,0XC2,0X42,0XC2,0XC4,0X34,0X32,0X42,0X52,0XC2,0XC4,0XD2, 0XC2,0X12,0X22,0X38,0X12,0X22,0X32,0X42,0X48,0xFF;/ uchar yin= 0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,0xFC, 0xAC,0xFD,0x09,0xFD,0x34,0xFD,0x82,0xFD,0xC8, 0xFE,0x06,0xFE,0x22,0xFA,0X15,0XFB,0x04,0xFA,0x67,0xFE,0x85; void timer0() interrupt 3 T

    25、H1=yin2*1; TL1=yin2*1+1; SPK = !SPK; /void delay187ms() unsigned char i,j,k; for(i=200;i0;i-) for(j=20;j0;j-) for(k=15;k0;k-) ;/置对应音符频率数值void sing_song() unsigned int data j=0; unsigned char data i; unsigned char data k; while(*(song+j)!=0xFF) k=*(song+j)&0x0F; l=*(song+j)4; TH1=yin2*l; TL1=yin2*l+1

    26、; TR1=1; if (yin2*l=0xff)&(yin2*l+1=0xff) TR0=0;SPK=1; for(i=k;i0;-i) delay187ms(); TR1=0; j+; / / /延时函数void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);/时钟显示void display(uint fen1,uint fen2,uint miao2,uint miao1) P0=0xff; wela=1; P0=weima3; wela=0; dula=1; P0=duanmafen1; dula=0; delay(1

    27、); P0=0xff; wela=1; P0=weima2; wela=0; dula=1; P0=duanmafen2; dula=0; delay(1); P0=0xff; wela=1; P0=weima1; wela=0; dula=1; P0=duanmamiao2; dula=0; delay(1); P0=0xff; wela=1; P0=weima0; wela=0; dula=1; P0=duanmamiao1; dula=0; delay(1); TR0=0;void t0() interrupt 1 TL0=(65536-50000)%256; TH0=(65536-50

    28、000)/256; shu+; if(shu=20) shu=0; miao-; if(miao=-1) miao=9; miao1-; if(miao1=-1) miao1=5; fen-; if(fen=-1) fen=9; fen1-; if(fen1=-1) fen1=5; / 主程序void main() shu=0; TMOD=0X01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; ET0=1; /允许开T0定时器中断 ET1=1; EA=1; /开总中断 TR0=0; /定时器0工作/ P3=0XFF;/ P2=0XFF;/ P1=0XFF;/ P0=0XFF; miao=0; miao1=0; fen=5; fen1=0; ding=0; while(1) display(fen1,fen,miao1,miao); if(k1=0) delay(20); if(k1=0) miao1=0; miao=0; fen+; if(fen=10) fen=0; fen1+; if(fen1=6) fen1=0; while(!k1); if(k2=0) delay(20); if(k2=0) miao1=0; miao=5; f


    注意事项

    本文(音乐提示定时器单片机课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开