欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    797.可存储式电子琴设计报告(包含小组成员报告源代码等).doc

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

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

    797.可存储式电子琴设计报告(包含小组成员报告源代码等).doc

    计算机科学与技术学院硬件课程设计报告组 长: 学 号: 专 业: 信息安全 班 级: 设计题目: 可存储式电子琴 成 员: 指导教师: 职 称: 副教授 2008年 7月 课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要在这次的硬件实验中,我们利用学习的微机原理与接口技术这门课程课上我们学到的一些计算机硬件工作的基本原理, 汇编语言程序设计方法,微型计算机接口技术,建立微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力。为了能够学以致用,同时也为了更深入的了解熟悉可编程定时器8253和8255可编程并行通信控制器。在汇编语言环境下,利用上述两种芯片,编程让8255通过识别键盘产生键值,8253识别发声从而实现计算机按照按键的不同而发出不同频率的声音。可存储式电子琴可用于设计小型发声玩具,由于本电子琴设计简单,稍加修改便可用于其它地方,如报警防盗器部件,音乐门铃等,具有一定的商业价值。 关键词: 可存储电子琴;8255;8253;门控信号;程序代码目 录总体设计部分1设计任务与要求1 2 总体方案1 3分工与协作14硬件方案15软件方案36 流 程 图47 程序源代码88分析与测试139实验体会1310参考文献14 总体设计部分1 设计任务与要求 本次硬件课程设计的任务和要求是通过居于8255A芯片和8253芯片上的电路设计和电路连接并通过对它们进行编程实现一个具有可存储音乐和电子琴的基本功能的小器件。该器件不仅具有基本的弹奏功能(输入不同的键能发出不同频率的声音即音符),还具有弹奏存储功能(在先后输入不同的键后,它能将这些键存储起来,然后一并输出)。1.1 本次硬件课程设计是为了实现一个可以存储音乐且具有一般电子琴的基本功能的小器件。1.2 通过硬件设计熟悉并掌握微型计算机与接口技术课程中的关于各个芯片的知识和一些具体应用;1.3 通过此次硬件课程设计培养自己的对于微型计算机与接口技术课程的兴趣;1.4 通过此次硬件课程设计培养自己的动手能力和创新精神,培养自己的提出问题并解决问题的能力;1.5 通过此次课程设计锻炼同学们的彼此配合,彼此合作的能力和意识;2总体方案:2.1 用PC机的键盘数字键对应电子琴的8个琴键和2功能键。2.2 8255A和8253配合构成音频发生器。8255A的PB0口控制扬声器的开关,8253控制扬声器的发声频率。2.3 8255A门控信号与8253的频率控制信号经与门后驱动扬声器发出各种音频和音长声音。3 分工协作一个好的团队是完成工作作业最前提的前提,团队之间需要共同协作,而分工也是更好完成作业的前提,这次设计我们小组先经过协商完成功能分析、总体硬件规划、程序总体设计,然后小组成员各自情况进行分工如下:组长XXX:实现,编写存储子程序部分和播放子程序部分及程序的调试。搜集资料、硬件8253部分功能的连接、及相关程序初始化,编写总体实验报告。4硬件设计方案 4.1可存储式电子琴硬件课程设计主要是居于8255A芯片和8253芯片的基本功能进行设计的。我们将8255A芯片的A端口作为输出端口,而B端口作为输入端口,两个端口都与键盘相连接:A端口的低四位连在键盘的行线上,B端口的高四位连在键盘的列线上。再将它的输出端口PC0与8253相应门控信号GATE0相连接。这样可以通过控制PC0来控制8253的输出:当PC0为“1”时,GATE0有效,8253能够输出频率方波;当PC0为“0”时,GATE0无效,OUT0无法输出频率方波。而8253的时钟输入引脚CLK0与相应的时钟发生器相连接,8253的0通道的OUT0信号与8255A的PC1通过与门以后与蜂鸣器相连接,从而驱动并控制蜂鸣器发音的发音和终端:当PC1为“1”时蜂鸣器连通,能够发出声音;当PC1为“0”时蜂鸣器被中断,不能发出声音。这样,我们在硬件上实现了通过8255A芯片输入设备的输入信号并通过它传送给8253,让8253进行相应的处理后输出给蜂鸣器的功能。我们要通过对8255A的初始化和编程控制它的相关工作,使其能够实现上面提到的相应功能。然后,我们对8253进行编程,使其初始化,并根据从8255A芯片传递来的信息的种类为8253的运行编写不同的程序段,使其在运行中根据8255A芯片传递来的信息的不同执行不同的程序(输出不同的音频)。 4.2可存储式电子琴硬件课程设计中的各键所对应的音符及频率和N值如下表:键值01H02H03H04H05H06H07H08H音符1234567中止频率5245886606987848809881048N值381734013030286525512273202419084.3可存储式电子琴硬件课程设计的电路图设计如下:图2-1 8255A芯片与键盘的连接PC1PC0CS 8253GATE0OUT0 CSU87接扬 声器频率发生器Y0 Y1 74LS138 8255A地址为300H303H8253 地址为308H30BH图2-2 8255A与8253芯片之间的连接5 软件设计方案5.1对8255A及8253芯片进行初始化。8255A的A,B,C以及控制字端口的地址分别是300H,301H,302H,303H;8255A的初始化控制字为10000010B。8253的0,1,2通道以及控制字端口的地址分别为308H,309H,30AH,30BH;8253的初始化控制字为00110111B。5.2从8255A芯片的端口中确认是键盘中的哪一个键被按下,并进行编码。从8255A的B端口中读入键盘的状态,进行一系列的比较。确认是哪一个键按下了,接着再通过着不同的键被按下进行执行不同的程序段。将不同的键所对应的频率的N值送入8253的0通道。这样,就产生了不同频率的方波。在送入扬声器后就能发出不同音频和音长的声音。6 流程图开始初始化8255A和8253检测键盘是否有键按下,对键进行编码,并跳转PLAY子程序执行PLAY子程序结束 图4-1总体流程图开始 保存所按下的键8255A中输出8253的0通道的门控允许信号并记时8253的OUT0中输出键值所对应的音符的频率键盘是否仍按着? 是 否8255A中输出8253门控禁止信号,保存时间结束返回图4-2 PLAY子程序流程开始所有键都松开有键按下消除抖动,确认按下,编码跳转ENCODE按键松开?Y 图4-3键盘检测流程图YDO键?LEI键?NYNYMI键?NFA键?YNSO键?YLA键?NYNXI键?YNZONZI键Y跳转PLAY子程序N跳转回放回放键?N Y跳转文件播放N文件播放?Y返回继续检测键盘状态 图4-4 编码流程图 7 程序源代码,-,数据段定义,-DATA SEGMENT KEY_TABLE DW 7634,6802,6061,5764,5102,4545,4049,3759 ,定义各音符所对应的N值表 KEY_NUM DB 100 DUP(?) ,键盘存储数组的定义 KEY_TIME DB 100 DUP(?) , TWOTIGERS_FRE DW 2 DUP(3817,3401,3030,3817,0) , 音乐文件的定义 DW 2 DUP(3030,2865,2551,0) DW 2 DUP(2551,2273,2551,2865,3030,3817,0) DW 2 DUP(3344, 5102,3817,0) TWOTIGERS_TIME DW 10 DUP(100),200,100,100,200 DW 2 DUP(50,50,50,100,100) DW 2 DUP(100,100,200) KEY_LONG EQU $-KEY_NUM FILE_LONG EQU $-TWOTIGERS_FRE DATA ENDS,-,代码段定义,- CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,303H MOV AL,10000010B ,8255初始化 ,控制字为10000010B OUT DX,AL MOV DX,30BH MOV AL,00110111B ,8253初始化,控制字为00110111B OUT DX,AL MOV DX,300H MOV AL,00H ,初始化8255的A端口 OUT DX,AL MOV DX,301H WAIT_OPEN: IN AL,DX ,检测键盘是否松开,若无则循环检测 AND AL,0FH CMP AL,0FH ,检测各列是否还有键按下 JNE WAIT_OPEN WAIT_PRES: IN AL,DX ,检测键盘的键是否有键按下,若无这循环检测 AND AL,0FH CMP AL,0FH ,检测列上是否有键按下 ,即是否又不唯一的列 JE WAIT_PRES MOV CX,16EAH ,消除抖动 DELAY: LOOP DELAY MOV DI,OFFSET KEY_NUM MOV SI,OFFSET KEY_TIME IN AL,DX AND AL,0FH CMP AL,0FH ,确认有键按下 JE WAIT_PRES MOV AL,0FEH MOV CL,AL NEXT_ROW: MOV DX,300H ,检查是哪一行的键按下 OUT DX,AL MOV DX,301H IN AL,DX AND AL,0FH CMP AL,0FH ,检测是否是这一行的键按下 JNE ENCODE,-,编码确认是哪一个键按下,- ENCODE: CMP AL,11101110B JZ DO CMP AL,11101101B JZ LEI CMP AL,11101011B JZ MI CMP AL,11100111B JZ FA CMP AL,11011110B JZ SO CMP AL,11011101B JZ LA CMP AL,11011011B JZ XI CMP AL,11010111B JZ ZONZI CMP AL,10111110B JZ BACK_PLAY CMP AL,10111101B JZ FILE_PLAY,-,确认哪一键被按下后,跳转这一个键所对应的键的功能程序段实现其功能,- DO: MOV BX,7634 CALL PLAY ,调用PLAY 子程序 JMP WAIT_PRES LEI: MOV BX,6802 CALL PLAY JMP WAIT_PRES MI: MOV BX,6061 CALL PLAY JMP WAIT_PRES FA: MOV BX,5764 CALL PLAY JMP WAIT_PRES SO: MOV BX,5102 CALL PLAY JMP WAIT_PRES LA: MOV BX,4545 CALL PLAY JMP WAIT_PRES XI: MOV BX,4049 CALL PLAY JMP WAIT_PRES ZONZI: MOV BX,3759 CALL PLAY JMP WAIT_PRES BACK_PLAY: MOV CX,KEY_LONG ,回放键所对应的程序段 ,实现回放功能 MOV DI,OFFSET KEY_NUM MOV SI,OFFSET KEY_TIME MOV BX,0 NEXT: MOV AX,KEY_TABLEBX ,按顺序调出在输入时被按下的键 MOV DX,308H OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,SI DEC_AL: DEC AL ,发出跟该键被按下的时间一样长的音长 JNZ DEC_AL INC DI INC SI INC BX INC BX LOOP NEXT JMP WAIT_PRES ,转回等待键盘的输入 FILE_PLAY: MOV DI,OFFSET TWOTIGERS_FRE ,音乐文件的播放程序段 MOV BX,OFFSET TWOTIGERS_TIME MOV CX,FILE_LONG NEXT_PLAY: MOV DX,308H MOV AL,DI OUT DX,AL INC DI MOV AL,DI ,调出音乐文件中的各个音符所对应的 N 值 OUT DX,AL MOV DL,BX INC BX MOV DH,BX DX_DEC: DEC DX ,各个音符所对应的音长控制 JNZ DX_DEC INC DI INC BX LOOP NEXT_PLAY JMP WAIT_PRES ,转回等待键盘的输入,-,PLAY 子程序的定义,- PLAY PROC MOV DI,AL ,将当前被按下的键进行保存 INC DI MOV AH,AL OR AL,03H ,形成8253门控信号 MOV DX,302H ,输出门控信号 OUT DX,AL MOV DX,308H MOV AL,BL ,在8253中输出各音符的频率 OUT DX,AL MOV AL,BH OUT DX,AL MOV DX,301H MOV BL,00H ,初始化计时器 TEST_OPEN: INC BL ,给按键进行计时并检测键盘是否松开 IN AL,DX AND AL,0FH CMP AL,0FH JNZ TEST_OPEN MOV SI,BL ,存储计时器中的时间 INC SI MOV AL,AH AND AL,11111000B ,输出门控信号使8253停止输出 MOV DX,302H OUT DX,AL RET PLAY ENDP CODE ENDS END START,-,代码段定义结束,-8 分析与测试可存储式电子琴的关键在于存储和播放两个模块,这次的课程设计过程我们经过精心的准备与设计,通过资料的查询和自己思维的创造,所完成的作品能够达到课程设计的要求,但是由于设备条件的限制,我们只设计了10个按钮键实现乐音的演奏与播放,从8个开关按钮来输入控制演奏过程,设计过程中程序能够无错运行,唯一遗憾的就是器材所限,没有扬声器来实现最后的演奏过程,只能用LED灯来模拟演示.9 实验体会XXXX在此次项目开发中,我担任组长,同时也负责软件主要部分的编程。由于在平时我都有认真学习,上课时都有认真听讲,因此,我在接到这一个课题后,觉得非常简单,因此,马上就进行硬件和软件的设计,设计出来后满以为能马上完成设计,但是令我很失落的是在调试程序时,程序出现非常多的奇奇怪怪的错误。后来找了好久才找出来,改正后,才知道很多错误都是因为自己对汇编语言的一些语法只是一些模糊的概念导致的。当等到所有的错误都改正后,我又有些困惑了。在调试系统时,小灯泡根本不会像我想象的那样发亮。我调试了很久,后来经过我跟组员的探讨和问老师,问同学后才解决。才把试验完成。心里挺高兴的。下面我谈谈我的体会:在一些工作或生活中,当我们遇到问题时不要感到恐惧也不要轻视,否则,小小的问题都有可能让你陷入僵局中。在遇到这些问题时,我们要充分利用我们身边的可利用的资源。比如说:请求他人的帮助;在处理问题时,我们要努力的拉动团队的积极性,培养和促进团队的合作精神。因为队伍的力量非常大。一些问题只能通过团队来来解决。并且当今社会团队精神越来越重要了。XXX在做这次大作业之前,我对计算机地了解只限于计算机系统地各个主要组件,比如主板,内存,硬盘,光驱等,是在微机原理课上我才开始真正接触计算机的基本工作方式,知道了几种最简单但是也很常用的几种接口芯片,让我深切地感受到计算机地奇妙,尤其是我们这次地题目:可存储式电子琴,让我知道了竟然不用音箱竟然也可以听歌,编写一个简单的程序竟然还可以弹奏!于是我就开始积极准备这个大作业。但在准备的过程中,我深感自己所学有限,很有一种书到用时方恨少的感觉,于是就一有空就钻进图书馆查资料,在完成过程中,我们还充分地利用了网络,通过它获取了不少知识,解决了不少实际问题,总之,我感觉自己几个星期的辛苦没有白费,虽然最终结果可能仍然很幼稚,但我认为自己在这个过程学到了很多东西,自身能力也得到了提高,知道了如何去查找资料,解决问题,知道了如何在一个团队里取长补短,发挥每个人地特长,更好地完成任务,真的很感谢老师提供的这样一个机会!经过一个月的奋战,我们的项目终于完成了,但这并不意味着结束,反而是起点。开发过程虽然短暂但有意义。它是我们发现了许多不足,激发了我们的兴趣,激励我们去更好的学习和完善自己。团队的合作也使我们真正懂得了“众人添柴火焰高的道理”。我们将不骄不躁,继续努力,在这里感谢老师提供的这样一个机会!XXX这一学期参加微机原理课程加入了实践环节,那就是软硬件开发实验。自己动手去做东西激起我的兴趣,这使我能有机会能够将课本上学到的东西学以致用。我们小组选的题目是可存储式电子琴这一硬件问题,刚开始觉的这个题目应该不难,但随着设计的深入我发现好多东西并不象想象中的那么简单,虽然我们已学过此类的硬件,但毕竟是纸上的东西,在实际的应用中认有很多的东西需要学习和了解(例如8255,以前只知道怎么用,并不了解它的实质,经过链接键盘和8255对这个芯片有了新的认识,也了解了键盘识别机制)。因而这期间翻阅了大量的资料,经过和同组成员的讨论以及询问老师对一些难点都有了比较深刻的认识。在这次开发工作通过我们的努力,在最后通过了程序的调试,我感觉到团队是最重要的一个环节,成员的努力,最终得到的是完美的结果,个人也感觉到很欣慰。10 参考文献1 微型计算机原理与接口技术吴秀清,周荷琴 编著 第二版 合肥:中国科学技术出版社 2001,1 2汇编语言 王爽 著 第一版 北京:清华大学出版社 2003,7

    注意事项

    本文(797.可存储式电子琴设计报告(包含小组成员报告源代码等).doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开