您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 单片机课程设计报告-按键控制定时器选播多段音乐
Proteus仿真大作业课题:按键控制定时器选播多段音乐系部:电子工程系班级:计算机控制技术1201班姓名:张坤指导老师:马磊娟2014.11.06前言Proteus技术是计算机控制技术的核心课程,经过一年的学习本人对于其也有了一定的理解此次大型作业的布置正好可以验证自己所学如何能否实际应用本次设计中的硬件设计涉及8051输入/输出(I/O)端口独立式键盘、TFT彩屏显示等应用,而软件设计采用C51语言编写。因此我的课程设计基本涵盖了课程的重要内容,较好的检测我的学习效果。Proteus课程设计是一个工程项目,在这一工程中包括选题、绘制电路图+编制程序、Proteus仿真、系统仿真与调试、系统正常运行等流程。在老师的安排下,我严格按照这一流程开展项目,并最终完成本项目—基于单片机的推箱子游戏设计。接下来我将具体介绍我们在开展项目中遇到的问题和解决方案的设计。前言................................................................................................................................2摘要..................................................................................................................................4硬件设计方案..................................................................................................................51.单片机及晶振模块.............................................................................................52.数码管显示模块...................................................................................................73.按键控制模块.......................................................................................................84.扬声器模块...........................................................................................................8程序:......................................................................................................................9原理图:........................................................................................................................12安装与调试:................................................................................................................13心得与体会:................................................................................................................14元件清单如下:............................................................................................................15参考文献:....................................................................................................................16摘要本课程设计是按键控制定时器选择多段音乐,以AT89S52为系统的操作核心,以一个数码管显示播放音乐的序号,通过按键来选择音乐(本课程设计中含3首音乐)。硬件设计方案1.单片机及晶振模块该设计选用的是Atmel公司生产的AT89S52型单片机,由石英晶体振荡器产生单片机工作时所需的时钟信号,振荡器采用的是12M的晶振,使其机器周期为1us,方便发音程序的计算和编译。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的引脚分布:2.数码管显示模块该部分只用了一个数码管,用来显示播放的音乐序列,数码管的7个管脚都接了1K的上拉电阻。数码管显示的歌曲序列为0,1,2。3.按键控制模块此模块只用了两个按键,按键K1用来控制歌曲的开始和停止,接P1.0口,按键K2用于选择歌曲,接P3.2口。按下K1,开始播放音乐,随着改变数码管的显示值(0、1、2),将出现对应的音乐。4.扬声器模块扬声器上接了一个三极管,用于放大声音。程序:#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintsbitK1=P1^0;//播放和停止键sbitSPK=P3^7;//蜂鸣器ucharSong_Index=0,Tone_Index=0;//当前音乐段索引,音符索引//数码管段码表ucharcodeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//标准音符频率对应的延时表ucharcodeHI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248};ucharcodeLO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};//三段音乐的音符ucharcodeSong[][50]={{1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,6,5,3,5,3,2,1,2,1,-1},{3,3,3,4,5,5,5,5,6,5,3,5,3,2,1,5,6,53,3,2,1,1,-1},{3,2,1,3,2,1,1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1}};//三段音乐的节拍ucharcodeLen[][50]={{1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,-1},{1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,-1},{1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,-1}};//外部中断0voidEX0_INT()interrupt0{TR0=0;//播放结束或者播放中途切换歌曲时停止播放Song_Index=(Song_Index+1)%3;//跳到下一首的开头Tone_Index=0;P2=DSY_CODE[Song_Index];//数码管显示当前音乐段号}//定时器0中断函数voidT0_INT()interrupt1{TL0=LO_LIST[Song[Song_Index][Tone_Index]];TH0=HI_LIST[Song[Song_Index][Tone_Index]];SPK=~SPK;}//延时voidDelayMS(uintms){uchart;while(ms--)for(t=0;t120;t++);}//主程序voidmain(){P2=0xc0;SPK=0;TMOD=0x00;//T0方式0IE=0x83;IT0=1;IP=0x02;while(1){while(K1==1);//未按键等待while(K1==0);//等待释放TR0=1;//开始播放Tone_Index=0;//从第0个音符开始//播放过程中按下K1可提前停止播放(K1=0)。//若切换音乐段会触发外部中断,导致TR0=0,播放也会停止while(Song[Song_Index][Tone_Index]!=-1&&K1==1&&TR0==1){DelayMS(300*Len[Song_Index][Tone_Index]);//播放延时(节拍)Tone_Index++;//当前音乐段的下一音符索引}TR0=0;//停止播放while(K1==0);//若提前停止播放,按键未释放时等待}}原理图:安装与调试:安装过程:1检查印刷电路板有无断路、短路,若有,首先处理好。2焊接顺序:先焊单片机,在焊接各分块电路,先焊平面的,后焊立体的,原则是有利于焊接。要求卧装水平、竖装垂直、相同元件等高。要特别注意元器件的安装方向!3焊接要点:将元件整形后插入对应位置,电路板平放在台面上,一手握烙铁对焊盘和引脚同时接触预热,另一手持焊锡丝与焊盘处烙铁接触,使锡丝熔化,当锡丝熔化一定量时(多了不好少了不行),立即将锡丝离去,烙铁继续保持少许时间,让焊锡围绕焊盘自由流动,形成一个完全覆盖焊盘的钟形(忌讳球形)焊点。切勿将焊锡先溶化在烙铁上再去焊接,这样锡丝里的助焊剂在未焊接前先挥发了,不利于焊接,而且焊点没有光泽。4剪脚:元件焊好后,将多余引脚剪掉,剪脚后的焊点应露出引脚0.5-1mm。本课设要求引脚露出2mm,以利于元件重复使用。5检查各元件是否出现焊接错误情况以及短路、断路情况。6将5V直流电源接入单片机以及其他各分模块电源端。若发现元器件发热或者有异味,应立即切断电源检查。7.正常电路LED灯以及数码管会工作在较为稳定、准确的状态,可据此来进一步检测电路连接是否、存在问题调试过程:接上5V电源后,按下K1键,会有音乐,随着K2的按下,音乐也随之改变。过程较为顺利。心得与体会:在这次课程设计中,我们把学习的单片机理论知识运用到了实践中,加深了我们对单片机理解,同时熟悉了单片机的使用,加强了我们的动手能力。在电路的焊接方面,也学到了一些知识,如怎样使排版好看,不要杂乱无章。焊接时,要注意很多的细节,排线走线都要小心,很容易造成短路。元件清单如下:22pf的电容两个12MHZ晶振一个10K电阻一个10uf电容一个2个按
本文标题:单片机课程设计报告-按键控制定时器选播多段音乐
链接地址:https://www.777doc.com/doc-6023568 .html