




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
生日歌+流水灯课程项目设计方案第1章 概述1.1单片机简介单片机又称单片微控制器,它不是完成某一逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一个芯片就成了一台计算机。MCS-51单片机是美国INTEL公司于1980年推出的产品,于MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:一、 在智能仪器仪表的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、温度、流量、速度、厚度、角度、长度、硬度、元素、湿度、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各中分析仪)。二、在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子称量设备,五花八门,无所不在。3、 在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,点滴智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 单片机现在可以说是百花齐放,百家争鸣的时期,世界各大芯片制造公司都推出自己的单片机,从8位、16位到32位、数不胜数,应有尽有,有与主流MCS-51系列兼容的,也有你兼容的,但他们各具特色,互成互补,为单片机的应用提供了广阔的天地。1.2任务简介以51系列单片机为核心,以开发板为平台;设计一个音乐播放器,完成播放生日快乐歌曲的功能,流水灯控制电路,使连接在该电路上的8个发光二极管按顺序以次闪烁。设计任务包括控制系统硬件设计和应用程序设计。第2章 系统总体方案设计2.1音乐产生原理2.1.1演奏音乐原理通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经放大后驱动蜂鸣器发出不同音节的声音,即声调。用软件延时来控制发音时间的长短,控制节拍。把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中,由程序查表得到定时常数和延时常数,分别用来控制定时器产生的脉冲频率和发出该音频脉冲的持续时间。 2.1.2定时常数(计数值)与延时常数的确定 产生音乐通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲。用软件延时来控制发音时间的长短,控制节拍,各调1/4节拍时间如下: 曲调值 延时时间 调4/4 125ms 调3/4 187ms 调2/4 250ms本课题要求以单片机为核心设计一个简易音乐播放器,具有自动播放乐曲的功能。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,音阶对应频率关系图:C调各音符频率与计数值T的关系音符频率(Hz)半周期(ms) 简谱码T值定时值(H)简谱码T值定时值(D)低1 Do2621.90F894H62628低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 Do10460.47FE2AH65058高2 Re11750.42FE5CH65110高3 Mi13180.38FE84H65157高4 Fa13970.36FE98H65178高5 So15680.32FEC0H65217高6 La17600.28FEE8H65252高7 Si19670.25FF06H652832.2 系统方案本设计用89C51单片机为核心, 在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样就可以实现“流水”效果。同时扬声器播放生日快乐歌曲!按复位键,单片机重新工作!第3章 硬件设计3.1 89C51单片机AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机编辑本段管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.2 蜂鸣电路发音由单片机程序控制,P3.7端口输出不同频率的高低电平,P3.7输出的脉冲频率不同,从而扬声器根据不同频率的脉冲发出的声音也不相同,发音电路如下图所示: 3.3流水灯电路单片机给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果。如下图 3.4最小系统电路如图第4章 软件设计4.1.软件设计主程序设计的第一步为初始化,初始化I/O口,设置定时器定时时间,写定时器工作方式寄存器,设置允许T0中断。刚开始需要将存储单元置1,全部置1之后更新显示缓冲区。接着进行显示初始化,开定时器T0,这样就可以开始显示了。设置完以后程序就不断检测按键情况。检测使用软件去抖,也就是第一次检测到有键按下后,如果有键按下则执行相应指令。本设计还设计了防误操作程序,也就是对于一个键,按一下和一直按着的效果是一样的,这样可以防止用户还没放开此键时,程序已进行第二次或多次同样的操作。程序中根音选取的是C调三个8度内的音符,共21个音。每个音符对应频率由定时器T0产生(音符频率及对应计数初值见附表)。为了程序调用方便,每个音符都对应一个编码,占用一个字节。在程序中以查表的方式加载计数初值。当值为00H时表示空拍,与节拍码配合完成节拍发音。节拍码也占一个字节,其总时间长度等于基本时间乘以节拍码的值。节拍码值为01H时,表示当前乐曲结束,为00H时,表示全部乐曲结束。为了编码简单,一般节拍码高半字节表示整拍,低半字节表示分数,只要基本延时设定恰当即可,为了及时响应键盘操作,键扫描指令安排在基本延时时间子程序中。按键每按下一次,乐曲数目计数器R5加1或减1,然后根据R5的内容转向不同的乐曲。4.2 系统方案系统初始化后,进入播放功能。开始从第一首曲目开始循环播放。播放过程中如果出现跳选曲目则进入相应的曲目程序程序设计流程如下所示。 根据流程图写程序:#include#define uchar unsigned char#define uint unsigned intsbit BEEP=P37;uchar code SONG_TONE=212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0;uchar code SONG_LONG=9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0;void DelayMS(uint x)uchar t;while(x-) for(t=0;t120;t+);void PlayMusic()uint i=0,j,k;P1=0xfe;while(SONG_LONGi!=0|SONG_TONEi!=0) for(j=0;jSONG_LONGi*20;j+)BEEP=BEEP;for(k=0;kSONG_TONEi/3;k+); P1 = 1; P1 |= 0x01; DelayMS(10);i+;if(P1 = 0x7f) DelayMS(30); P1=0xfe; void main()BEEP=0;while(1)PlayMusic(); DelayMS(500); 第5章 系统调试与仿真5.1软件仿真阶段 单片的程序用KEIL 编写的。在keil内建立工程后建立汇编文件,编写MCS-51程序。1、 编译成功后,分模块调试,分别采用“白盒”和“黑盒”测试法验证程序的正确性2、 将调试成功的各模块,合并到总程序中,进行总体性能测试。3、 联调PROTEUS进行硬件仿真,单步,断点调试,观察运行结果,并修改源程序5.2系统的仿真调试阶段基于单片机的音乐播放器的是利用PROTEUS软件来实现电脑仿真的,仿真步骤如下:4、 打开PROTEUS软件,选择器件,连接电路图;5、 添加已经编译的HEX文件到单片机内;6、 单步运行,观察结果,比较预定结果,修改源程序;7、 总体调试运行;8、 分组测试,看是否达到任务要求。调试图5.3 调试问题处理1、是否短路用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接-调试-另一功能部件的焊接,这样容易找到问题的所在。3、器件功能 1)检查原理图连接是否正确 2)检查原理图与器件的DATASHEET上引脚是否一致 3)用万用表检查是否有虚焊,引脚短路现象 4)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确4、另外,我们有在同学的帮助下做一硬件开发板,由于开发板上用12MHZ的晶振管的晶振管,而老师给的乐谱转换条件为6MHZ,导致在音谱转换过程中,是按6MHZ进行的,在实际播放时,音乐的播放不是特别的清楚。第6章 心得体会这学期学习单片机的时间只有2周时间,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。2在一个好的氛围里才能踏下心来做东西,在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课设中十分重要。3 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在周向红老师的辛勤指导下,终于游逆而解。同时,在周老师那里我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献1、 单片机原理与应用 王迎旭等编 机械工业出版社2、 51系列单片机设计实例 楼然苗等编 北京航空航天大学出版社3、 计算机硬件技术基础实验教程 黄勤等编 重庆大学出版社4、微型计算机接口技术及应用 刘乐善主编 华中科技大学出版社5、单片微型计算机原理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力国外研究现状
- 新质生产力动能涌现
- 民族服饰汉服课件
- 直梁弯曲内力计算及内力图绘制习题讲解
- 2025年口腔颌面外科手术操作规范性评估试题答案及解析
- 2025年免疫学免疫相关疾病诊治技能考核答案及解析
- 2025年眩晕症康复训练方案设计答案及解析
- 2025年皮肤性病诊断与治疗学术能力评估答案及解析
- 2025年传染病防控与处理突发事件练习答案及解析
- 《统计学-SPSS与Excel实现》(第9版)习题答案 贾俊平
- 精神科诊疗指南及操作规范
- 2024年大学试题(宗教学)-道教文化笔试考试历年高频考点试题摘选含答案
- 北师大版四年级数学上册全单元测试题【带答案】
- 雷雨-剧本原文-高中语文雷雨剧本原文
- 万里一线牵课件省公开课一等奖新名师课比赛一等奖课件
- 中医面诊升级版
- 注射用甲苯磺酸瑞马唑仑-临床用药解读
- 消化内科入科培训
- 四川省普通高中2024届高三上学期学业水平考试数学试题(解析版)
- 建筑工地施工现场标准化建设课件
- 胶质细胞在神经炎症中的免疫调控机制
评论
0/150
提交评论