单片机课程设计报告-按键控制定时器选播多段音乐_第1页
单片机课程设计报告-按键控制定时器选播多段音乐_第2页
单片机课程设计报告-按键控制定时器选播多段音乐_第3页
单片机课程设计报告-按键控制定时器选播多段音乐_第4页
单片机课程设计报告-按键控制定时器选播多段音乐_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Proteus仿真大 作业课题:按键控制定时器选播多段音乐 系部:电子工程系班级: 计算机控制技术 1201班姓名:骗里指导老师:马磊娟2014.11.06Proteus 技术是计算机控制技术的核心课程, 经过一年的学习本人对于其也有了一定的理解此次大型作业的布置正好可以验证自己所学如何能否实际应用本次设计中的硬件设计涉及8051 输入 / 输出 (I/O) 端口独立式键盘、TFT彩屏显示等应用,而软件设计采用C51语言编写。因此我的课程设计基本涵盖了课程的重要内容,较好的检测我的学习效果。Proteus 课程设计是一个工程项目, 在这一工程中包括选题、 绘制电路图+编制程序、Proteus

2、仿真、系统仿真与调试、系统正常运行等流程。在老师的安排下,我严格按照这一流程开展项目,并最终完成本项目基于单片机的推箱子游戏设计。接下来我将具体介绍我们在开展项目中遇到的问题和解决方案的设计。前言 2摘要4硬件设计方案 51 . 单片机及晶振模块 52 .数码管显示模块 73 .按键控制模块 84 .扬声器模块 8程序: 9原理图 : 12安装与调试: 13心得与体会: 14元件清单如下: 15参考文献: 16摘要本课程设计是按键控制定时器选择多段音乐,以 AT89S52 为系统的操作核心,以一个数码管显示播放音乐的序号,通过按键来选择音乐(本课程设计中含3 首音乐) 。硬件设计方案1. 单片

3、机及晶振模块该设计选用的是Atmel 公司生产的 AT89S52 型单片机,由石英晶体振荡器产生单片机工作时所需的时钟信号,振荡器采用的是12M的晶振,使其机器周期为1us,方便发音程序的计算和编译。AT89S52是一种低功耗、高性能 CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。 使用 Atmel 公司高密度非易失性存储器技术制造, 与工业 80C51 产品指令和引脚完全兼容。 片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash, 使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解

4、决方案。AT89S52具有以下标准功能:8k字节Flash, 256字节RAM ,32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个16 位定时器 /计数器,一个6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许RAM 、定时器/计数器、串口、 中断继续工作。 掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。引 脚 分 布AT89S52的>XTAL1XTAL2RSTPSENALFEAT2/P1.

5、0 T2EX/P1. 1Pl. 2Pl. 3 Pl. 4XDSI/Pl. 5 MI S0/P1.6 SCK/P1. 7 RSTRWP3. 0TXD/P3,1 mO/P3, 2 INT1/P3. 3 TQ/P3.4 X1/P3. 5VVR/P3,6KD/P3、7XT AL 2XTAL1PDIP GNDc 匚 r r c: r c c r c c E E c E c2.数码管显示模块01234567030 11 oco。; EJ -ro roo 4 <1 11 11 1* 1* 1* 1* 1* 1* 1A0987654321098765432143333333333222222222Vcc

6、FO. 0 /ADO PO. 1/AD1PO. 2/AD2 PO. 3/AD3 PO, 4/AD4 PO, 5/AD5 P0.6/AD6 PO. 7/AD7 EA/VPP ALE/PKOGPESNP2,“A15 P2,6/A14 P2. 5ZA13 P2.4/A12P2.3/AllP2. 2/A10F2. 1/A9P2, 0/A8该部分只用了一个数码管,用来显示播放的音乐序列,数码管的7个管脚都接了 1K的上拉电阻。数码管显示的歌曲序列为 0,1,2。P04fAD4P0.5/AD5P0,6fAD6P0.7/AD7%-31P2 O/ABP2.1 /AS P2.2/A10 P2 3JA11P2 4

7、JA12P2.S/A13 P2.6/A14P2 7/A15P3 口而 ND P3.1JTXD P3.2/1NT0 P3 3/1NTTP3.47T0 门。C JTdI '21222324252728101112LL143.按键控制模块-K2选择 l . T 0此模块只用了两个按键,按键K1用来控制歌曲的开始和停止, 接P1.0 口,按键K2用于选择歌曲,接P3.2 口。按下K1,开始播放 音乐,随着改变数码管的显示值(0、1、2),将出现对应的音乐。4.扬声器模块扬声器上接了一个三极管,用于放大声音。程序 :#include<reg51.h>#include<intri

8、ns.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1A0; /播放和停止键sbit SPK=P3A7; /独隼鸣器uchar Song_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,

9、246,247,2 48;uchar code LO_LIST=0,4,13,10,20,3,8,6,2,23,5,26,1,4,3;/三段音乐的音符uchar code Song50=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;/三段音乐的节拍uchar code Len50=1,1,1,1,

10、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;/外部中断0void EX0_INT() interrupt 0TR0=0; /播放结束或者播放中途切换歌曲时停止播放Song_Index=(Song_Index+1)%3; /跳到下一首的开头Tone_Index=0;P2=DSY_CODESong_Index;

11、/数码管显示当前音乐段号/定时器0中断函数void T0_INT() interrupt 1TL0=LO_LISTSongSong_IndexTone_Index;TH0=HI_LISTSongSong_IndexTone_Index;SPK=SPK;/延时void DelayMS(uint ms)uchar t;while(ms-) for(t=0;t<120;t+);/主程序void main()P2=0xc0;SPK=0;TMOD=0x00; /T0 方式 0IE=0x83;IT0=1;IP=0x02;while(1)while(K1=1); /未按键等待while(K1=0);

12、/ 等待释放TR0=1; /开始播放Tone_Index=0; /从第 0个音符开始/播放过程中按下K1 可提前停止播放( K1=0 )。/若切换音乐段会触发外部中断,导致TR0=0 ,播放也会停止while(SongSong_IndexTone_Index!=-1&&K1=1&&TR0=1) DelayMS(300*LenSong_IndexTone_Index); / 播放延时 (节拍)Tone_Index+; /当前音乐段的下一音符索引TR0=0; /停止播放while(K1=0); /若提前停止播放,按键未释放时等待原理图U119f 11ru.uwcuP

13、0.1/AD1P0.2/AD2XTAL2PD.3/AD3PD.4/AD4F'0.5/AD5P0.6/AD6RSTP07/AD7P2.0/A8P2.1/A9PSENP2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15Pl .0P3.0XDPI .1P3.1HXDP1.2P3.2JINT0P1.3P3.3JINT1P1.4P3.4/T0PI sP3.5J1P1.6P3.6/WRP1.7P3.7/RDAiescsi .212223243526正二皿一LL .12LL_l± .Ui .16 1?LS1 n /u:x:SOUNDER

14、安装与调试:安装过程:1 检查印刷电路板有无断路、短路,若有,首先处理好。2 焊接顺序:先焊单片机,在焊接各分块电路,先焊平面的,后焊立体的,原则是有利于焊接。要求卧装水平、竖装垂直、相同元件等高。要特别注意元器件的安装方向!3 焊接要点:将元件整形后插入对应位置,电路板平放在台面上,一手握烙铁对焊盘和引脚同时接触预热,另一手持焊锡丝与焊盘处烙铁接触,使锡丝熔化,当锡丝熔化一定量时(多了不好少了不行) ,立即将锡丝离去,烙铁继续保持少许时间,让焊锡围绕焊盘自由流动,形成一个完全覆盖焊盘的钟形(忌讳球形)焊点。切勿将焊锡先溶化在烙铁上再去焊接,这样锡丝里的助焊剂在未焊接前先挥发了,不利于焊接,而

15、且焊点没有光泽。4 剪脚:元件焊好后,将多余引脚剪掉,剪脚后的焊点应露出引脚0.5-1mm。本课设要求引脚露出2mm以利于元件重复使用。5 检查各元件是否出现焊接错误情况以及短路、断路情况。6 将 5V 直流电源接入单片机以及其他各分模块电源端。若发现元器件发热或者有异味,应立即切断电源检查。7 .正常电路LED灯以及数码管会工作在较为稳定、准确的状态,可据此来进一步检测电路连接是否、存在问题调试过程:接上 5V 电源后,按下 K1 键,会有音乐,随着 K2 的按下,音乐也随之改变。过程较为顺利。心得与体会:在这次课程设计中,我们把学习的单片机理论知识运用到了实践中,加 深了我们对单片机理解,同时熟悉了单片机的使用,加强了我们的动手 能力。在电路的焊接方面,也学到了一些知识,如怎样使排版好看,不 要杂乱无章。焊接时,要注意很多的细节,排线走线都要小心,很容易 造成短路。元件清单如下22pf 的电容两个12MHZ1J 振一个10K 电阻一个10uf 电容一个2 个按键1 个共阳数码管8 个 1K 的电阻1 个蜂鸣器1个89S52单片机参考文献:1 . 谢维成、杨加国 单片机原理与应用及c51 程序设计 . 北京:清华大学出版社2 . 阎石 . 数字电子技术基础. 北京:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论