单片机课程设计报告_按键控制定时器选播多段音乐.doc

单片机课程设计报告_按键控制定时器选播多段音乐.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . . Proteus 仿 真 大 作 业 课题:按键控制定时器选播多段音乐 系部: 电子工程系 班级: 计算机控制技术1201班 姓名: 张坤 指导老师:马磊娟 2014.11.06 前 言 Proteus技术是计算机控制技术的核心课程,经过一年的学习本人对于其也有了一定的理解此次大型作业的布置正好可以验证自己所学如何能否实际应用 本次设计中的硬件设计涉及8051输入/输出(I/O)端口独立式键盘、TFT彩屏显示等应用,而软件设计采用C51语言编写。因此我的课程设计基本涵盖了课程的重要内容,较好的检测我的学习效果。 Proteus课程设计是一个工程项目,在这一工程中包括选题、绘制电路图+编制程序、Proteus仿真、系统仿真与调试、系统正常运行等流程。在老师的安排下,我严格按照这一流程开展项目,并最终完成本项目—基于单片机的推箱子游戏设计。接下来我将具体介绍我们在开展项目中遇到的问题和解决方案的设计。 TOC \o 1-2 \h \z \u 前 言 2 摘要 4 硬件设计方案 5 1. 单片机及晶振模块 5 2.数码管显示模块 7 3.按键控制模块 8 4.扬声器模块 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 #define uchar unsigned char #define uint unsigned int sbit K1=P1^0; //播放和停止键 sbit SPK=P3^7; //蜂鸣器 uchar Song_Index=0,Tone_Index=0; //当前音乐段索引,音符索引 //数码管段码表 uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //标准音符频率对应的延时表 uchar code HI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248}; uchar code LO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3}; //三段音乐的音符 uchar code Song[][50]= { {1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,3,

文档评论(0)

zxiangd + 关注
实名认证
内容提供者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档