欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    c51单片机课程设计——电子琴.docx

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

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

    c51单片机课程设计——电子琴.docx

    单片机课程设计简易电子琴目 录1 .设计题目 32 .设计目的 33 .主要内容 34 .音符频率与计数初值对照表 35 .定时/计数器的工作原理 45.1 方式寄存器 45.2 启/停控制寄存器TCON 66 .中断控制 66.1 TCON用于中断请求 66.2 中断允许寄存器IE 77 .系统分析 77.1 系统组成 87.2 系统工作原理 88 .系统硬件设计 88.1 系统硬件总体设计88.2 LED显示模块98.3 扬声器模块 98.4 子系统(模块)电路图108.4.1 共阳极电路图108.4.2 上位开关 109 .系统软件设计 109.1 系统软件总体设计109.2 本系统总体代码 1110 .课程设计成果 1511 .个人总结 15参考文献 1717一、设计题目:简易电子琴二、设计目的:(1)熟悉单片机的内部结构;(2)掌握C51编程方法;(3)掌握定时器与发声的关系;(4)掌握交流蜂鸣器的发声原理和程序控制方法;(5)掌握串行控制键盘键的识别方法;(6)掌握声音频率的计算方法。三、主要内容本系统设计制作一个可演奏的电子琴。综合应用了两项设计(1)能产生纯音,了解音调高低的控制方法。(2)用键盘代替电子琴的键盘,控制演奏音乐。(a)掌握串行控制键盘键的识别方法;(b)根据键值控制发声。(3)至少演奏一支乐曲。四、音符频率与计数初值对照表:音符所计数 处之音符所计数 初值音符所计数 初值«12200xefa9中音14400xf7d8高音18800xfbe f« 22470xf173中音24940xf8b d高音29880xfc62« 32770xf307中音35540xf987高音311090xfcc7« 42940xf3c8中音45870xf9e4高音411750xfcf6« 53300xf51 e中音56590xfa9 0高音513180xfd4 b« 73700xf64c中音67400xfb29高音614800xfd98« 74150xf75 a中音78310xfbb 1高音716610xfdd c五、定时/计数器原理MCS-51单片机内部有2个16位的可编程定时/计数器,定时/计 数器0由计数器TH0和TL0组成,定时/计数器1由计数器TH1和TL1 组成,THX和TLX (X=0,1)分别为两个8位计数器,连接起来可组成 16位计数器。定时/计数器的工作方式由方式控制字 TMO选择,定时/ 计数器的启停由控制寄存器TCON空制,这两个寄存器均属于特殊功能 寄存器。定时/计数器的工作原理图如下:其核心是一个加1计数器,加1计数器的脉冲有两个来源:一个是外部脉冲源,另一个是系统的 时钟振荡器。当脉冲源为时钟振荡器(等间隔脉冲序列)时,由于计 数器脉冲周期相同,所以脉冲数乘以脉冲周期就是定时时间,此时为 定时功能。当脉冲源为外部脉冲时,就是外部事件的计数器,此时为 计数功能。据篇58 * X1 匚厅:口A、巴0 T TFX 0 中映TM(端6=1|启动信号耨时7计麴器的结构框图。二必。5.1 方式寄存器TMODD7D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0定时/计数器1方式字定时/计数器0方式字GATE=0时,外部中断信号不参预控制,此时,只要控制位,TR0(TR1)为1时,定时/计数器就开始计数,而不管外部中断信号的电 平为高还是为低。C/T:计数方式还是定时方式选择位,当为 。时为定时方式,当为 1时为计数方式。M1和M0操作方式选择位。对应4种操作方式,当系统发生复位 时,TMO函位为0。操作方式选择如下图:M1M0操作方式功能00方式013位计数器01方式116位计数器10方式2可自动再装载的8位计数器11方式3定时/计数器0分为两个独立计数器,定时/计数器1为串行口波特率发生器如:若单片机晶振为12MHz设定时/计数器1作定时器,以方式 1工作,定时时间为5ms定时/计数器0作计数器,以方式2工作, 外界发生一次事件(一个负脉冲)即产生溢出。解:定时/计数器0的初值为:X= 28 1 = 255=FFH即:FFH装入 TH0, FFH装入 TL0。定时/计数器1的初值为:X= 2165ms/1 pS = EC78H: ECHg入 TH1, 78H装入 TL1。方式寄存器 TMOD=00010110B=16H5.2 启/停控制寄存器TCON定时/计数器的控制寄存器也是一个 8位的特殊功能寄存器,字节地址为88H,可以位寻址。其格式如下:TF1TR1TF0TR0IE1IT1IE0IT0TF1(TF0):定时/计数器1 (0)溢出标志。当定时/计数器1 (0)产生 溢出时,由硬件置1,可向CPU发中断请求。CPU响应中断后被硬件 自动清0,也可以由程序查询后清0.TR1(TR0):定时/计数器1 (0)启/停控制位,由软件置1或置0来启 动或关闭定时/计数器1工作。六、中断控制6.1 TCON用于中断请求TF1TF0IE1IT1IE0IT0IT0:外部中断请求触发方式。当IT0=0时,低电平触发;当IT0=1时, 下降沿触发。IT1外部中断请求触发方式。作用同IT0。IE0:外部中断请求标志位。当发中断请求时,置 1,否则置0。IE1:外部中断请求标志位。作用同IE0。TF0:片内定时/计数器0的溢出请求标志位,定时/计数器0溢出时,置1,否则置0.TF1:片内定时/计数器1的溢出中断请求标志位,作用同 TF0.6.2 中断允许寄存器IEEAESET1EX1ET0EX0EA:开中断标志位。当 EA=1时,CPU开中断;EA=0时,CPU关中 断。ES:串行口的中断允许位。当 ES=1时,串行口允许中断;ES=0时, 则不允许中断。ET0(ET1):定时/计数器0 (1)的中断允许位。当ET0=1,定时/计数器 0 (1)溢出,允许中断,否则不允许。EX0(EX1): INTO的中断允许位,当EX0=1时,允许中断,否则,不 允许。七、系统分析:7.1 系统组成本系统由矩阵键盘、扬声器、LED显示管模块一起组合而成。如下:单片机键盘明邛r仁二17.2系统_L作原理本系统扫描键盘矩阵、显示按键、fH,数码管/ 1 、扬声器'-一-扬声器发出对应音符。4X2行列式键盘识别及显示原理如下:编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码送往 CPU所以,编码键盘接口简 单、使用方便。但由于硬件电路较复杂,因而价格较贵。键盘接口必须具有去抖动、防串键、按键识别和键码4个基本 功能。(1)去抖动:所谓抖动是指在识别被按键是必须避开抖动状 态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。(2)防串键:防串键是为了解决多个键同时按下或者前一 按键没有释放又有新的按键按下时产生的问题。 常用的方法有双键 锁定和N键轮回两种方法。(3)被按键识别:如何识别被按键是接口解决的主要问题, 一般可通过软 硬结合的方法完成。常用的方法有行扫描法和线反转法两种。(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89C52的并彳f 口 P1接4X2矩阵键盘,以P1.0 P1.3作输入线,在数码管上显示每个按键的“ 1 8”序号。八、系统硬件设计8.1 系统硬件总体设计本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符,最终还要完整的演唱一首 歌曲。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频 率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的 音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用 单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要 把一首歌曲的音阶对应频率关系正确即可。利用AT89C52的内部定时器使其工作计数器模式(MODEE1下,改 变计数值TH0及TL0以产生不同频率的方法产生不同音阶。8.2 LED显示模块LEDM示模块如图2-2所示,禾I用AT89S5弹片机的P0端口的P0.0 -P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块如下:8.3 扬声器模块矩阵扫描扬声器发出对应音符模块如下:8.4子系统(模块)电路图8.4.1共阳极电路图8.4.2上位开关P10P1.1sda明:tv并丹妞比J-K1j_K2_|_K3dli nIP1.29.系统软件设计9.1 系统软件总体设计本系统的软件流程图如下:9.2 本系统总体代码如下:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit BEEP=P1A7;sbit SDA=P1A0;sbit CLK=PW1;sbit P12=PW2;sbit P13=PW3;uint flag,t0,n;uchar m,q;code uchar Table8=0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80;/数码管显示数据Codemusic=0xfbef,0xfbef,0xfd4b,0xfd4b,0xfd98,0xfd98,0xfd4b,0,0,0,0xfcf6,0xfcf6,0xfc c7,0xfcc7,0xfc62,0xfc62,0xfbefQ0,0,0xfd4b,0xfd4b,0xfcf6,0xfcf6,0xfcc7,0xfcc7,0xfc 62,0,0,0,0xfd4b,0,0;乐谱Codeuintfreq21=0xefa9,0xf173,0xf307,0xf3c8,0xf51e,0xf64c,0xf75a,0xf7d8,0xf8bd,0xf987, 0xf9e4,0xfa90,0xfb29,0xfbb1,0xfbef,0xfc62,0xfcc7,0xfcf6,0xfd4b,0xfd98,0xfddc; /低中高音的频率void delay()/ 延时函数uint i;for(i=0;i<5000;i+); timer0()interrupt 1 发声函数 TH0=t0/256;TL0=t0%256;BEEP=BEEP;timer1()interrupt 3 n+;TH1=0xd8;/ 定时 5001 0*50=500TL1=0xf0;/65536-10ms/1us=55536->0xd8foif(n=50) n=0; q+; TR0=0; TR1=0; void send(uchar a)用并转换函数uchar j;for(j=0;j<8;j+)if(_crol_(a,j)&0x80)SDA=1;else SDA=0;CLK=0;CLK=1;void main(void)主函数uchar key8_count,com,i,a,j;key8_count=0;n=0;TMOD=0x11;/定时/计数器0和定时/计数器1工作与方式1EA=1;/cpu 开中断ET0=1;/定时/计数器0开中断ET1=1;/定时/计数器1开中断TH1=0xd8;/65536-10000=55536 -> 0xd8f0TL1=0xf0;/th1=0xd8TR0=0;/thl=0xf0TR1=0;BEEP=1;q=0;m=0;while(1)/歌曲自动循环播放 if(q>=33)q=1;m=0;自动播放音乐if(key8_count=3&&q>m) t0=musicm+;if(t0=0)delay(); q+;elseTH0=t0/256;TL0=t0%256;TH1=0xd8;TL1=0xf0;TR0=1;TR1=1;elsedelay();flag=0;/快速扫描a=0x00;P13=1;send(a);if(P12=0)m=q=0;com=0xfe;for(i=0;i<8;i+)P13=1;send(com);if(P12=0)flag=1;P13=1; send(Tablei); delay();P13=0; break;elsecom=_crol_(com,1);一 一if(flag=1)for (j=0;j<5;j+) delay();TR1=0;TR0=0;if(i=7) key8_count+;key8_count=key8_count%4;/由频率为断按键音或才播放歌曲 if(key8_count=3).q+; else switch(key8_count)case 0:t0=freqi;TH0=t0/256;TL0=t0%256;TH1=0xd8;TL1=0xf0;TR1=1;TR0=1;break;case 1:t0=freqi+7;TH0=t0/256;TL0=t0%256;TH1=0xd8;TL1=0xf0;TR1=1;TR0=1;break;case 2:t0=freqi+14;TH0=t0/256;TL0=t0%256;TH1=0xd8;TL1=0xf0;TR1=1;TR0=1; break;case 3:q+;break;十、课程设计成果:课程设计结果和要求一样,能实现(1)能产生纯音;(2)用键盘代替电子琴的键盘,控制演奏音乐,并根据键值控制发声;(3)演奏一支乐曲。十一、个人总结:通过两周的课程设计,我学到了很多,这些不仅仅局限于巩固复 习了课本上知识点,还锻炼了自己分析问题以及动手实际操作的能力, 将以前学过的零散的知识串到一起冰学以致用。小组两个人长时间的 讨论以及调试,本系统基本上实现了按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符,同时单个程序也能播放歌 曲,不足之处在于不能将按键和播放音乐的程序不能完美融合,只能 在一定范围内满足按键或播放歌曲一种需要。本次综合设计主要涉及硬件和软件两方面的内容, 通过这次课程, 我的硬件和软件开发能力都获得了提高。首先硬件方面,更加熟悉了 51单片机的结构以及它的实用,基本了解了电子产品的开发流程和所 要做的工作。基本掌握了 C51并设计了一个单片机最小系统。通过 C 语言编程的过程,使我对 C语言的编程能力和C51单片机的功能有了 更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法, 如LED数码管,键盘等,并且我学会了遇到问题要分析问题及解决问 题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到 了很大的提高,尤其是团队合作和沟通交流能力得到明显锻炼。每次实际的经历都会给自己带来很多技能的提升, 虽然现在的自己 还仅仅是一名学生,可也就是学生的不断学习和创新,一个又一个创 新和进步带来了生活的丰富,把握实践,成就将来,感谢老师的辛勤 给我带来的收获,以后更加努力。参考文献:1彭伟.单片机C语言程序设计实训100例.电子工业出版社.2009 年2李建忠.单片机原理及应用.西安:西安电子科技大学,2002年3周润景等.Proteus 在MCS-51&ARM7统中的应用百例M.电子 工业出版社,20064马忠梅等.单片机的C语言应用程序设计M.北京航空航天大学 出版社,2006单片机课程设计简易电子琴课 程设 计报 生 口姓名:卢飞班级:通信0802班学号:200807020227课程设计名:简易电子琴1单片机课程设计简易电子琴硬件综合设计课程设计任务书题目简易电子琴学生姓名一、,I专业班一,、卢飞学号200807020227皿通彳W 0802级设计内容与要求1 .设计目的:(1)熟悉单片机的内部结构;(2)掌握C51编程方法;(3)掌握定时器与发声的关系;(4)掌握交流蜂鸣器的发声原理和程序控制方法;(5)掌握串行控制键盘键的识别方法;(6)掌握声音频率的计算方法。2 .设计内容及基本要求:(1)能产生纯音,了解音调高低的控制方法要求:掌握发声的原理并实现发声。(2)用键盘代替电子琴的键盘,控制演奏音乐。要求:(a)掌握串行控制键盘键的识别方法;(b)根据键值控制发声。(3)演奏至少一支乐曲。3 .撰写课程设计报告。报告内容要求如下:设计题目、目的、内容;设计思路;系统结构图;硬件资源分配说明,说明控制系统用到的接口电路模块、实现的功能、模块控制方法;软件资源分配说明,包括存储器、中断等资源的分配;程序流程图;程序清单;设计时碰到的问题及解决方法;课程设计总结。起止时间2011年12月19日 至 2011年12月30日指导教师签名年 月 日系(教研室)主任签 名年 月 日学生签名卢飞2011年12月15日2

    注意事项

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

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开