微机课程设计电子琴
《微机课程设计电子琴》由会员分享,可在线阅读,更多相关《微机课程设计电子琴(12页珍藏版)》请在装配图网上搜索。
1、微机实验及课程设计报告 微机实验及课程设计课程设计报告电子琴姓 名: 学 号: 专 业: 实 验 室: 同组人员: 学 号: 设计时间: 2011年 9 月 19日 2011年 10 月 31日评定成绩: 审阅教师: 目 录一实验简介3二基本设计思想3三程序流程和程序实现3四测试方案和测试结果10五分析与总结10一实验简介 目的: 检验和提高我在原理与接口综合应用方面分析问题与解决问题的能力,同时也给我提供更多、更好的训练机会。根据设计要求,尽可能完成设计要求的功能,选择最合适的器件,构成最有效的硬件电路来完成。 基本实验要求:构造一模拟/数字电子琴、选择利用实验仪扬声器/PC机内8253驱动
2、内扬声器与键盘1、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秒,显示到秒)。 进一步设计要求:1.、能准确记录开始演奏到结束演奏的时间,在八段码上显示;2、 数字、模拟合奏,能同时指示音阶;3、自动录音,并具有回放功能(分两种水平、难易不等、即记录按键,同时记录按键和时间。 实现情况
3、:实现基本实验要求的13。二基本设计思想1、先分别设计机内电子琴和实验仪电子琴。机内电子琴参照实验五8253计数器/定时器的选做与探索中使用PC机内8253驱动声音接口;实验仪电子琴参照实验中演示实验的电子琴流程图;2、再把两者结合起来,用一个高低电平作开关控制是机内还是实验仪,可通过8255A口输入,判断10(二进制)则实验仪DAC,00则机内喇叭;3、点阵显示。根据输入的数字判断应显示点阵的哪一行。具体可先把点阵的8列全选通,输入为1某个数字时,判断显示相应的行;、LED灯显示。同样,根据输入的数字判断应显示哪一个LED灯。具体可设置8255B口为输出,根据输入的数字,输出控制LED灯相应
4、灯亮。三程序流程和程序实现1、机内电子琴开始流程图:键盘读入一个字符是ESC键吗?YNN返回DOS是数字18键吗?Y求出音阶值保存赋相应频率值延时程序:dseg segment freq dw 262,294,330,349,392,440,494,523 ;扬声器发声各频率值msg db Press 1,2,3,4,5,6,7,8,ESC:,0dh,0ah,$tim dw 400num db ?dseg endssseg segment stack dw 256 dup(?)sseg endscseg segment assume cs:cseg,ds:dsegstart: mov ax,d
5、seg mov ds,ax mov dx,offset msg mov ah,9 int 21h ;显示提示信息sss: mov ah,7 int 21h ;等待从键盘接收字符,不回显al=asc码 cmp al,1bh je exit;若为ESC键,则转EXIT退出 cmp al,31h jl sss ;小于31h cmp al,38h ;大于38h jg sss ;不在1-8之间转sss sub al,31h mov num,al ;num求出相应的时间常数的序号jinei: mov al,num add al,al mov ah,00h mov si,axagain: mov di,fr
6、eqsi mov bx,tim call gen jmp sssexit: mov ah,4ch int 21hgen proc near mov al,0b6h ;设置8253通道2方式3二进制计数 out 43h,al mov dx,12h mov ax,12928; DX AX=896*533h=18*65536+12928=1.19M div di out 42h,al ;8253通道2口设置初值 mov al,ah out 42h,al in al,61h ;读8255PB口 mov ah,al or al,3 out 61h,alwait1: mov cx,0hdelay3: mo
7、v ax,10 ;延时子程序delay2: nop dec ax jnz delay2 loop delay3 dec bx jnz wait1 mov al,ah out 61h,al retgen endp cseg endsend start2、实验仪电子琴流程图:实验电路:程序:data segmentioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+283hio8255aequ ioport+288hio8255bequ ioport+28bhio0832aequ ioport+290hdata1 db 80h
8、,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波数据time db 120,106,94,89,79,70,63,59;发不同音时8253的计数器初值msg db Press 1,2,3,4,5,6,7,8,ESC:,0dh,0ah,$num db ?;num为8253计数器初值的序号data endscode segment assume cs
9、:code,ds:datastart:mov ax,datamov ds,axmov dx,offset msgmov ah,9int 21h ;显示提示信息sss:mov ah,7int 21h ;从键盘接收字符,不回显cmp al,1bhje exit ;若为ESC键,则转EXITcmp al,31hjl ssscmp al,38hjg sss ;若不在1-8之间转ssssub al,31hmov num,al ;求出相应的时间常数的序号mov cx,60 ;取60次32个正弦波数据ddd:mov si,0lll:mov al,data1si ;取正弦波数据mov dx,io0832aou
10、t dx,al ;放音call delay ;调延时子程序inc sicmp si,32 ;是否取完32个数据jl lll ;若没有,则继续loop ddd ;总循环次数60是否完,没有,则继续jmp sssexit:mov ah,4chint 21hdelay proc near ;延时子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0为方式0工作mov al,10hout dx,almov dx,io8255b ;设8255A口输入mov al,9bhout dx,almov al,num ;取相应的时间常数xlatmov dx,io8253
11、aout dx,al ;向8253通道0输出kkk:mov dx,io8255ain al,dx ;从8255A口读一字节test al,01 ;判PA0口是否为1jz kkk ;若不为1,则转KKKret ;子程序返回delay endpcode endsend start3.电子琴总设计流程图:开始键盘读入一个字符Y是ESC键吗?NN是数字18键吗?返回DOSY点亮点阵Y点亮LED灯N是机内吗?60个正弦波完了吗?YN求出音阶值保存正弦波个数计数器赋值60每个正弦波数据个数计数器赋初值取正弦波数据送DAC0832求出音阶值保存Y赋相应频率值一个正弦波完了吗?N延时延时电路图: 8个LED灯
12、PB7PB0 PA0PA1 CSCLK0GATE0 OUT0CS 8253 82551MHZ+5V DAC0832CS280H K0开关 288H 290H程序:data segmentioportequ 0c800h-0280hio8253aequ ioport+280h;8253通道0地址io8253bequ ioport+283h;8253控制字寄存器地址io8255aequ ioport+288h ;8255A口地址io8255bequ ioport+289h ;8255B口地址io8255dequ ioport+28bh;8255控制字寄存器地址io0832aequ ioport+2
13、90hproth equ ioport+2a8h ;点阵行选的地址protlr equ ioport+2b0h ;点阵列选的地址data1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波数据time db 120,106,94,89,79,70,63,59;发不同音时8253的计数器初值banquan db 0dh,0ahdb*,0
14、dh,0ahdb* *,0dh,0ahdb* WELCOME TO USE dianziqin *,0dh,0ahdb* THIS PROGRAMME IS DESIGHED BY *,0DH,0AHdb* zhouqiuping 61007204 *,0DH,0AHdb* *,0dh,0ahdb*,0dh,0ah db Press 1,2,3,4,5,6,7,8,ESC:,0dh,0ah,$num db ? ;num为8253计数器初值的序号freq dw 262,294,330,349,392,440,494,523 ;扬声器发声各频率值tim dw 400data endsstack s
15、egment stack dw 256 dup(?)stack endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,offset banquan ; 版权显示 mov ah,9 int 21h ;显示提示信息sss: mov ah,7 int 21h ;等待从键盘接收字符,不回显al=asc码 cmp al,1bh je exit ;若为ESC键,则转EXIT推出 cmp al,31h jl sss ;小于31h cmp al,38h ;大于38h jg sss ;不在1-8之间转sss sub
16、al,31h mov num,al ;num求出相应的时间常数的序号dianzhen: mov al,0ffh ;点阵板的列全部选通 mov dx,proth out dx,al mov al,00000001 :点阵的行赋初值 shl al,num ;根据输入的数字,左移相应位数,即点阵亮相应行 mov num,al ;如输入3,则num为2,左移两位,第三行亮 mov dx,prothl out dx,alled: mov dx,io8255d mov al,99h ;设置8255A口入B口出 mov dx,io8255b out dx,num ;根据移位后的num点亮相应led灯kaig
17、uan: mov dx,io8255a ;判断机内机外 in al,dx ;从8255B口读一字节 test al,10b ;判断PA0口是否为10(二进制) jz jiwai ;是的话转实验仪 jmp nei ;否则转机内;-jiwaijiwai:mov cx,60 ;取60次32个正弦波数据ddd:mov si,0lll:mov al,data1si ;取正弦波数据mov dx,io0832aout dx,al ;放音call delay ;调延时子程序inc sicmp si,32 ;是否取完32个数据jl lll ;若没有,则继续loop ddd ;总循环次数60是否完,没有,则继续j
18、mp sssexit: mov ah,4chint 21hdelay proc near ;延时子程序ccc: mov bx,offset timemov dx,io8253b ;置8253通道0为方式0工作mov al,10hout dx,almov al,num ;取相应的时间常数xlatmov dx,io8253aout dx,al ;向8253通道0输出kkk:mov dx,io8255ain al,dx ;从8255A口读一字节test al,01 ;判PA0口是否为1jz kkk ;若不为1,则转KKKret ;子程序返回delay endp;-机内部分jinei: mov al,
19、num add al,al mov ah,00h mov si,axagain: mov di,freqsi mov bx,tim call gen jmp sss gen proc near mov al,0b6h ;设置8253通道2方式3二进制计数 out 43h,al mov dx,12h mov ax,12928 ; DX AX=896*533h=18*65536+12928=1.19M div di out 42h,al ;8253通道2口设置初值 mov al,ah out 42h,al in al,61h ;读8255PB口 mov ah,al or al,3 out 61h,alwait1: mov cx,0hdelay3: mov ax,10 ;延时子程序delay2: nop nop dec ax jnz delay2 loop delay3 dec bx jnz wait1 mov al,ah out 61h,al retgen endp code endsend start四测试方案和测试结果
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园绘本故事当我睡不着的时候课件
- 人教版小学五年级品德与社会上册《五十六个民族五十六朵花》ppt课件
- 人教版小学一年级音乐下册红眼睛绿眼睛ppt课件
- 人教版小学数学四年级上册《数学广角》ppt课件
- 幼儿园优质课件小猫的生日
- 幼儿园科学活动区创设与材料投放课件
- 人教版小学四年级音乐小螺号ppt课件
- 幼儿园科学教育的方法和途径课件
- 开盘前广告策略案课件
- 人教版小学一年级品德与生活《校园铃声》ppt课件
- 人教版小学五年级音乐吹起羌笛跳锅庄ppt课件
- 人教版小学四年级英语下册unit3_weather第三课ppt课件
- 人教版小学一年级上册数学第二单元上下前后ppt课件
- 人教版小学五年级美术第17课电脑动画ppt课件
- 幼儿园优质课件-幼儿园中班“我们都是好朋友”课件