小键盘实现电子琴实验报告_第1页
小键盘实现电子琴实验报告_第2页
小键盘实现电子琴实验报告_第3页
小键盘实现电子琴实验报告_第4页
小键盘实现电子琴实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

小键盘实现电子琴实验报告-PAGE1-小键盘实现电子琴实验报告学生:13410801房皓;13410803张明;13410802张耀荣任课教师:李济生实验目的加强对8253和8255相关知识以及使用的方法的理解、掌握。掌握用软件方法识别行列式键盘按键的原理和方法。锻炼学生对相关知识的自学及研究能力。提高学生小组协调与配合的能力。实验内容设计目标通过实验箱上小键盘实现电子琴,具体的实现方法是按小键盘上的0、1、2、3、4、5、6、7这8个键控制实验箱发出do、re、mi、fa、sol、la、si、do(高音),当按8键时播放《两只老虎》。音阶频率设计每个音阶都有其固定的频率,个音阶的频率值如下:音阶 12 3 4 5 6 7 1*低频率(单位:Hz) 262 294 330 347 392 440 494 524高频率(单位:Hz) 524 588 660 698 784 880 988 1048歌曲《两只老虎》相对应的频率表(高频率)如下:两只老虎:524,588,660,524,524,588,660,524,660,698,784,660,698,784具体设计方法8255的A口和B口分别连接小键盘的行线和列线;8255的C口控制扬声器发声,方法为Pc0直接接与门的A口,Pc1接8253的GATE0,8253的的OUT0接与门的B口,与门的Y口接扬声器;8253的CLK0接1MHZ;8253和8255分别接地址译码的200H和210H;8253初始化为计时器0,工作在3方式,8255初始化为A口输出,B输入,C口输出。连接图设计8255与小键盘的连接设计图1-18255与小键盘链接图8255、8253及扬声器的连接设计图1-28255、8253及扬声器的连接图实验流程图图1-3实验流程图实验步骤根据原理图正确连接实验线路。正确理解实验原理。编写实验程序,并上机调试,观察实验结果。实验结果按小键盘上的0、1、2、3、4、5、6、7这8个键控制实验箱发出do、re、mi、fa、sol、la、si、do(高音),当按8键时播放《两只老虎》。实验分析本实验通过8255与小键盘连接,以软件方法识别行列式键盘按键,其中包括了按键检测、消除抖动、按键分析等过程,并通过分析出的按键数值查表获得相应的音阶的频率,进而获得计数初值写入8253;通过8255的C口与8253的OUT0口控制扬声器发声;其中8255与小键盘的连接及小键盘按键的识别是本实验的难点也是创意所在。通过实验演示可观察到实验结果符合预期的效果。实验体会房皓:通过本次实验,我锻炼了自己的操作能力,小组协调合作的能力,以及加强了对相关知识的研究、理解与掌握,包括加强了对8253以及8255使用方法的理解与掌握,加强了对以软件方法识别小键盘按键的研究,特别是对小键盘按键检测、消除抖动、按键分析等过程,做了多次调试才逐渐理解其中的原理与方法。张明:通过本次实验,我进一步的理解与熟悉了8255和8253的工作方式,并全面掌握了8255和微机接口的连接方法以及8255的基本工作原理,真正做到实际与理论相结合。在本次实验中,由于自由度大,因此更加考验出对于接口的综合性知识的理解水平,对遇到的困难,更加锻炼了我的编程与动手能力,提高了对于处理这类困难的能力,并且明白了团队协作的重要性。张耀荣:通过本次实验,我对8255和8253的工作方式有了更深的了解。特别是对8253芯片的使用有了全面,详细的认识。在确定实验项目之前所做的准备工作使我对接口技术一学期以来所学的知识有了综合性的认识。在做实验的过程中让我更加明白的团队合作的重要性和集思广益的巨大作用!附件:程序代码.Modelsmall.386datasegmentio8255a equ210hio8255b equ211hio8255cequ212hio8255ctlequ213hio8253aequ200hio8253bequ203h;table dw524,588,660,698,784,880,988,1048;高音的table dw262,294,330,347,392,440,494,524 ;低音的Btabledw524,588,660,524,524,588,660,524,660,698,784,660,698,784msg db'Press1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'led_cs equ220hledcode db7fh,5bh,6dh,6dhbzdb0hbuf dw?dataendscodesegmentassumecs:code,ds:datastart: movax,datamovds,ax ;8255初始化L1: movdx,io8255ctlmoval,82h ;82H=10000010B,A口输出,B口输入 outdx,al;输出8255控制字 ;以下是获得小键盘的键值 callreadkeymovbh,ah;AH=行线状态movbl,al;AL=列线状态calldelay;延时30mscallreadkey;再判断一次,排除干扰cmpbl,aljnzL1cmpbh,ahjnzL1 callkeyup;等待键释放后再处理 movax,bx callcmpoffset;求得键值 ;incal ;以上是获得小键盘的键值,存储在al中sing: cmpal,8 jzlzlh cmpal,0jlL1cmpal,7jgL1 ;若不在'1'-'8'之间转sing;subal,31hshlal,1 ;转为查表偏移量movbl,al ;保存偏移到bxmovbh,0movax,4240H ;计数初值=1000000/频率,保存到AXmovdx,0FH divwordptr[table+bx]movbx,axmovdx,io8253b;设置8253计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al ;写计数初值低字节moval,ahoutdx,al ;写计数初值高字节 movdx,io8255ctl;设置8255C口输出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al ;置Pc1Pc0=11(开扬声器)calldelay ;延时movdx,io8255cmoval,00houtdx,al ;置Pc1Pc0=00(关扬声器)jmpL1jmpL1lzlh: movbz,0movcx,14;subal,42hshlal,1;转为查表偏移量movbl,al;保存偏移到bxmovbh,0b:movax,4240H;计数初值=1000000/频率,保存到AXmovdx,0FHdivwordptr[Btable+bx]movbx,axmovdx,io8253b;设置8253计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;写计数初值低字节moval,ahoutdx,al;写计数初值高字节 movdx,io8255ctl;设置8255C口输出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al;置Pc1Pc0=11(开扬声器)calldelay;延时calldelaycalldelaycalldelaycalldelaymovdx,io8255cmoval,00houtdx,al;置Pc1Pc0=00(关扬声器)jmpL1 addbz,2movbl,bzmovbh,0 loopL2 jmpstart L2:calln1n1procnearjmpbretn1endpreadkeyprocmovah,0feh ;PA0=0scan:moval,ahmovdx,io8255a;输出一行线为低outdx,almovdx,io8255binal,dx;输入列线状态oral,0f0h;高四位置1,低四位为列线状态cmpal,0ffh;此行有键按下码?jneexitkey;有键按下,退出rolah,1;没有,检查下一行jmpscanexitkey:retreadkeyendpkeyupprocnoup:moval,ahmovdx,io8255aoutdx,al;输出行线movdx,io8255binal,dx;读入列线oral,0f0hcmpal,0ffh;按键释放了码?jeexit;已释放,退出jmpnoupexit:retkeyupendpcmpoffsetprocnotah;行值取反notal;列值取反movbh,00hmovbl,00hkk:shrah,1jcnext1addbh,4h;一行4列jmpkknext1:shral,1

温馨提示

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

评论

0/150

提交评论