微机课程设计电子琴_第1页
微机课程设计电子琴_第2页
微机课程设计电子琴_第3页
微机课程设计电子琴_第4页
微机课程设计电子琴_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、微机实验及课程设计课程设计报告电子琴14 / 12名:*学号:*专 业:*枠实验室:电工电子实验中心103设计时间:2009年5月30 B 2009年6月4 H评定成绩:审阅教师:一. 实验简介3二. 基本设计思想3三. 程序流程和程序实现3四. 测试方案和测试结果10五. 分析与总结10一. 实验简介目的:检验和提髙我在原理与接口综合应用方而分析问题与解决问题的能力,同时也给我提供更多、更好的训练机会。 根据设计要求,尽可能完成设计要求的功能,选择最合适的器件,构成最有效的硬件电路来完成。基本实验要求:构造一模拟/数字电子琴1、选择利用实验仪扬声器/PC机内8253驱动内扬声器与键盘1、2、

2、3、4、5、6、7、8设计一个电子琴, 通过按数字键响相应的乐符1、2、3、4、5、6、7、i,使能演奏简单的乐曲。按18数字键同时点亮相应 的8个LED灯,使具有声、光效果;2、利用实验仪DAC和喇叭,软件控制上述功能。选择机内还是实验仪由开关设置,课随时切换:3、在8*8点阵上表示音节髙低;4、精确显示从第一个键按下后的时间(单位秒,要求精确到0秒,显示到秒)。进一步设计要求:1、能准确记录开始演奏到结朿演奏的时间,在八段码上显示;2、数字、模拟合奏,能同时指示音阶:3、自动录音,并具有回放功能(分两种水平、难易不等、即记录按键,同时记录按键和时间。实现情况:实现基本实验要求的3。二. 基

3、本设计思想1、先分別设汁机内电子琴和实验仪电子琴。机内电子琴参照实验五8253汁数器/左时器的选做与探索中 使用PC机内8253驱动声音接口;实验仪电子琴参照实验中演示实验的电子琴流程图;2、再把两者结合起来,用一个高低电平作开关控制是机内还是实验仪,可通过8255A 口输入,判断10(二 进制)则实验仪DAC, 00则机内喇叭;3、点阵显示。根据输入的数字判断应显示点阵的哪一行。具体可先把点阵的8列全选通,输入为18某 个数字时,判断显示相应的行:4、LED灯显示。同样,根据输入的数字判断应显示哪一个LED灯。具体可设置8255B 口为输岀,根据输入 的数字,输出控制LED灯相应灯亮。三.

4、程序流程和程序实现1、机内电子琴流程图:;扬声器发声各频率值msg db Press 1,2,3,4,567,8,ESC:;0dh,0ah,$程序:dseg segmentfreq dw 262,294,330.349,392.440494.523tim dw 400num db ?dseg endssseg segment stackdw 256 dup(?)sseg endscseg segmentassume cs:cseg,ds:dsegstart: mov ax,dsegmov ds,axmov dx,offset msgmov ah,9int 21h;显示提示信息sss: mov

5、ah,7int 21 h;等待从键盘接收字符,不回显al=asc码cmp aljbhje exit;若为ESC键,则转EXIT退岀cmp al,31hjl sss ;小于 31hcmp al,38h ;大于 38hjg sss ;不在T8之间转ssssub aL31hmov num.al ;num求出相应的时间常数的序号 jinei:mov aLnumadd aLalmov ah,00hmov si,axagain: mov di,freqsimov bx,timcall gen2、实验仪电子琴流程图:jmp sssexit:mov ah、4chint21hgen proc nearmov a

6、l,0b6h ;设置8253通道2方式3二进制计数 out 43h.almov dxJ2hmov ax J 2928:DXAX=896*533h= 18*65536+12928= 1.I9Mdiv diout 42h.al ;8253通道2 口设置初值mov al.ahout 42h.alin al,61h ;读 8255PB 口mov ah,alor al,3out 61h.alwaitl: mov cx,Ohdelay3: mov ax JO涎时子程序delay2: nopdec axjnz delay2loop delay3dec bxjnz waitlmov al.ahout 6 Ur

7、alretgen endpcseg endsend start开始延时子程序主程序实脸电路:S2538255DAC98321 MHZ280H J28 8H - 230H程序: data segment ioport io8253a io8253b io8255a io8255bequ 0d400h-0280hequ ioport+280hequ ioport+283hequ ioport+288hequ ioport+28bhequ ioport+290hio0832adata 1 db 80h.96h,0ach.0c5h.0d8h.0c9h,0f5h,0fdhdb 0ffh,0fdh,0f5

8、h0e9h0d8h.0c5h.0ach96hdb 80h.66h,4eh38h,25h5hO9h04hdb 00h,04h,09hJ 5h,25h,38h,4eh,66h;正弦波数据time db 120J 06.94,897950.63,59 ;发不同音时8253的计数器初值db Press 123.4,567,8,ESC:;0dh,0ah,$db ? :num为8253计数器初值的序号data endscode segmentassume cs:code,ds:data start: mo v ax.datamov ds,axmov dx.offset msg mov ah,9 int21

9、hmov ah,7int 21h;显示提示信息sss:;从键盘接收字符,不回msg numcmp al.lbh je exitcmp al.31h jl ssscmp al.38h jg sss sub al,31h;若为ESC键,则转EXIT;若不在之间转sssmov numal;求岀相应的时间常数ccc: mov bx.offset time的序号mov dxjo8253b;置8253通道0为方mov cx.60;取60次32个正弦波式0工作数据mov al J Ohddd: mov si,0out dx,al111: mov al,datalsi;取正弦波数据mov dxjo8255b;

10、设8255A 口输入mov al,9bhout dx.almov al,num;取相应的时间常数mov dxjo0832axlatout dx.al;放音mov dxjo8253acall delay;调延时子程序out dx.al;向8253通道0输岀inc sikkk: mov dxjo8255acmp si,32;是否取完32个数据in aLdx;从8255A 口读一字节jllll;若没有,则继续test al,01;判PA0 口是否为1loop ddd;总循环次数60是否完,jz kkk;若不为1,则转KKK没有,则继续ret;子程序返回jmp sssdelay endpexit: m

11、ov ah.4chint21hcode endsend startdelay proc near;延时子程序3 电子琴总设计流程图:Y电路图:8个LED灯程序:data segmentioport equ 0c800h-0280hio8253a equ ioport+280h;8253 通道 0 地址io8253b equ ioport+283h:8253 控制字寄存器地址io8255a equ ioport+288h ;8255A 口地址io8255b equ ioport+289h ;8255B 口地址io8255d equ ioport+28bh;8255 控制字寄存器地址io0832a

12、 equ ioport+290hprothequ ioport+2a8h ;点阵行选的地址protlrequ ioport+2b0h ;点阵列选的地址data 1 db 80h,96h.0ach0c5h、0d8h0c9h、0f5h,0fdhdb 0ffh,0fdh.0f5h.0e9h,0d81L0c5h,0aeh.96hdb 80h.66h,4eh38h,25h5h.09h.04hdb 00h.04h.09h J 5h,25h、38h4ch.66h;正弦波数据time db 120 J 06.94,897950.63,59;发不同音时8253的计数器初值banquan db Odh.Oahdb

13、 1*導導*$* 0dh 0ahdb*0dh,0ahdb 1*WELE TO USEdianziqin*0dh,0ahdb 1*THIS PROGRAMME IS*0DH.0AHzhouqiuping 61007204DESIGHED BYdb 1*0DH.0AHdb 1* *0dh,0ahdb 1* 0dh 0ahdb 1Press 1,234,5.6,7,&ESC::0dh.0ah,$num db ? :num为8253计数器初值的序号freqdw 262,294.330,349,392.440494,523;扬声器发声各频率值timdw 400data endsstack segment

14、 stackdw 256 dup(?)stack endscode segmentassume cs:code.ds:datastart: mov ax,datamov ds.axmov dx.offset banquan;显示mov ah,9int 21h ;显示提示信息sss:mov ah,7int21h ;等待从键盘接收字符,不回显al=asc码cmp aljbhje exit;若为ESC键,则转EXIT推出cmp aL31hjl sss ;小于 31hcmp al,38h ;大于 38hjg sss ;不在之间转ssssub al,31hmov num.al:num求出相应的时间常数的

15、序号dianzhen:mov al.Offh ;点阵板的列全部选通mov thout dx.almov aLOOOOOOOl :点阵的行赋初值shl al.num;根据输入的数字,左移相应位数,即点阵亮相应行 mov num,al;如输入3,则num为2,左移两位,第三行亮 mov thlout dx,alled: mov dx,io8255dmov aL99h :设置 8255A 口入 B 口出mov dxjo8255bout dx.num;根据移位后的num点亮相应led灯kaiguan: mov dxjo8255a;判断机内机夕卜in alJx ;从 8255B

16、口读一字节test al J Ob;判断PAO 口是否为10(二进制)jzjiwai ;是的话转实验仪 jmp nei;否则转机内;-jiwaijiwai:mov cx,60 ;取60次32个正弦波数据ddd: mov si、0111: mov al,datalsi;取正弦波数据mov dxjo0832aout dx.al;放音call delay;调延时子程序inc sicmpsi,32 ;是否取完32个数据jllll;若没有,则继续loop ddd ;总循环次数60是否完,没有,则继续jmp sssexit:mov ah,4chint21hdelay proc near;延时子程序ccc:

17、mov bx.offset timemov dx,io8253b;置8253通道0为方式0工作mov al J Ohout dx.almov al,num ;取相应的时间常数xlatmov dx.io8253aout dx.al ;向8253通道0输岀kkk: mov dx,io8255ain aLdx ;从 8255A 口读一字节 test al.01 ;判戸人0 口是否为1 jz kkk;若不为1,则转KKK ret ;子程序返回delay endp;机内部分jinei:mov aLnumadd aLalmov ah,00hmov si,axagain: mov di,freqsimov

18、bx,timcall genjmp sssgen proc nearmov al.0b6h;设巻8253通道2方式3二进制计数out 43h,almov dxJ2hmov ax, 12928;DX AX=896*533h= 18*65536+12928= 1.19Mdiv diout 42h,al ;8253通道2 口设置初值mov al.ahout 42h,alin al,61h;读 8255PB 口mov ah,alor al,3 out 61h,al;延时子程序waitl: inov ex,Oh delay3: mov axJO dclay2: nopnop dec axjnz dela

19、y2 loop delay3 dec bx jnz waitl mov al.ah out 61h,al ret gen endpcode ends end start四. 测试方案和测试结果测试方案测试结果启动程序,岀现按键提示,按下18键机内/实验仪发出相应的音阶同时led和点阵板亮相应的灯和行改变开关状态(可随时任意改变),按18键对应发岀相应的音阶“弹琴”发出优美旋律按下ESC键退出程序五. 分析与总结问题分析:关于开关改变发声源为机内或机外和led灯的点亮,原来想用前而学过的简单输入输岀实验,用74LS273 做输出,到led上驱动led灯亮:用74LS244做输入,耙开关值输入控制发声源。后来发现这样很麻烦, 虽然在程序上没有太繁杂,但是这样就加了两个地址,而且对于电路来说,就很复杂。因此,后来想到直 接用8255做输入输出,设A 口为输入,B 口输出,这样用一个片子即可完成几个功能。关于点亮点阵板,原来想将num逐个与07比较,来判断亮哪一行,后来这样写代码时比较繁杂,就 改成移位来实现,给点阵的行赋初值00000001,然后再左移num位,即可亮相应的行。实验总结:这次微机实验课程设讣,使我对微机软硬件结合有了进一步的了解。原来并

温馨提示

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

评论

0/150

提交评论