微机课程设计电子琴优秀.docx

上传人:b****3 文档编号:3208111 上传时间:2022-11-20 格式:DOCX 页数:17 大小:136.69KB
下载 相关 举报
微机课程设计电子琴优秀.docx_第1页
第1页 / 共17页
微机课程设计电子琴优秀.docx_第2页
第2页 / 共17页
微机课程设计电子琴优秀.docx_第3页
第3页 / 共17页
微机课程设计电子琴优秀.docx_第4页
第4页 / 共17页
微机课程设计电子琴优秀.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机课程设计电子琴优秀.docx

《微机课程设计电子琴优秀.docx》由会员分享,可在线阅读,更多相关《微机课程设计电子琴优秀.docx(17页珍藏版)》请在冰豆网上搜索。

微机课程设计电子琴优秀.docx

微机课程设计电子琴优秀

 

《微机实验及课程设计》

课程设计报告

电子琴

 

姓名:

***学号:

********

专业:

********实验室:

电工电子实验中心103

设计时间:

2009年5月30日——2009年6月4日

评定成绩:

审阅教师:

 

一.实验简介……………………………………………………………3

二.基本设计思想………………………………………………………3

三.程序流程和程序实现………………………………………………3

四.测试方案和测试结果………………………………………………10

五.分析与总结…………………………………………………………10

一.实验简介

目的:

检验和提高我在原理与接口综合应用方面分析问题与解决问题的能力,同时也给我提供更多、更好的训练机会.根据设计要求,尽可能完成设计要求的功能,选择最合适的器件,构成最有效的硬件电路来完成.

基本实验要求:

构造一模拟/数字电子琴

1、选择利用实验仪扬声器/PC机内8253驱动内扬声器与键盘1、2、3、4、5、6、7、8设计一个电子琴,通过按数字键响相应的乐符1、2、3、4、5、6、7、i,使能演奏简单的乐曲.按1~8数字键同时点亮相应的8个LED灯,使具有声、光效果;

2、利用实验仪DAC和喇叭,软件控制上述功能.选择机内还是实验仪由开关设置,课随时切换;

3、在8*8点阵上表示音节高低;

4、精确显示从第一个键按下后的时间(单位秒,要求精确到0.1秒,显示到秒).

进一步设计要求:

1.、能准确记录开始演奏到结束演奏的时间,在八段码上显示;

2、数字、模拟合奏,能同时指示音阶;

3、自动录音,并具有回放功能(分两种水平、难易不等、即记录按键,同时记录按键和时间.

实现情况:

实现基本实验要求的1~3.

二.基本设计思想

1、先分别设计机内电子琴和实验仪电子琴.机内电子琴参照实验五8253计数器/定时器的选做与探索中使用PC机内8253驱动声音接口;实验仪电子琴参照实验中演示实验的电子琴流程图;

2、再把两者结合起来,用一个高低电平作开关控制是机内还是实验仪,可通过8255A口输入,判断10(二进制)则实验仪DAC,00则机内喇叭;

3、点阵显示.根据输入的数字判断应显示点阵的哪一行.具体可先把点阵的8列全选通,输入为1~8某个数字时,判断显示相应的行;

4、LED灯显示.同样,根据输入的数字判断应显示哪一个LED灯.具体可设置8255B口为输出,根据输入的数字,输出控制LED灯相应灯亮.

 

三.程序流程和程序实现

1、机内电子琴

流程图:

程序:

dsegseg米ent

freqdw262,294,330,349,392,440,494,523

;扬声器发声各频率值

米sgdb'Press1,2,3,4,5,6,7,8,ESC:

',0dh,0ah,'$'

ti米dw400

nu米db?

dsegends

ssegseg米entstack

dw256dup(?

ssegends

csegseg米ent

assu米ecs:

cseg,ds:

dseg

start:

米ovax,dseg

米ovds,ax

米ovdx,offset米sg

米ovah,9

int21h;显示提示信息

sss:

米ovah,7

int21h

;等待从键盘接收字符,不回显al=asc码

厘米pal,1bh

jeexit;若为ESC键,则转EXIT退出

厘米pal,31h

jlsss;小于31h

厘米pal,38h;大于38h

jgsss;不在'1'-'8'之间转sss

subal,31h

米ovnu米,al;nu米求出相应的时间常数的序号

jinei:

米oval,nu米

addal,al

米ovah,00h

米ovsi,ax

again:

米ovdi,freq[si]

米ovbx,ti米

callgen

j米psss

exit:

米ovah,4ch

int21h

genprocnear

米oval,0b6h;设置8253通道2方式3二进制计数

out43h,al

米ovdx,12h

米ovax,12928

;DXAX=896*533h=18*65536+12928=1.19米

divdi

out42h,al;8253通道2口设置初值

米oval,ah

out42h,al

inal,61h;读8255PB口

米ovah,al

oral,3

out61h,al

wait1:

米ovcx,0h

delay3:

米ovax,10;延时子程序

delay2:

nop

decax

jnzdelay2

loopdelay3

decbx

jnzwait1

米oval,ah

out61h,al

ret

genendp

csegends

endstart

2、实验仪电子琴

流程图:

实验电路:

程序:

dataseg米ent

ioportequ0d400h-0280h

io8253aequioport+280h

io8253bequioport+283h

io8255aequioport+288h

io8255bequioport+28bh

io0832aequioport+290h

data1db80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh

db0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h

db80h,66h,4eh,38h,25h,15h,09h,04h

db00h,04h,09h,15h,25h,38h,4eh,66h;正弦波数据

ti米edb120,106,94,89,79,70,63,59;发不同音时8253的计数器初值

米sgdb'Press1,2,3,4,5,6,7,8,ESC:

',0dh,0ah,'$'

nu米db?

;nu米为8253计数器初值的序号

dataends

codeseg米ent

assu米ecs:

code,ds:

data

start:

米ovax,data

米ovds,ax

米ovdx,offset米sg

米ovah,9

int21h;显示提示信息

sss:

米ovah,7

int21h;从键盘接收字符,不回显

厘米pal,1bh

jeexit;若为ESC键,则转EXIT

厘米pal,31h

jlsss

厘米pal,38h

jgsss;若不在'1'-'8'之间转sss

subal,31h

米ovnu米,al;求出相应的时间常数的序号

米ovcx,60;取60次32个正弦波数据

ddd:

米ovsi,0

lll:

米oval,data1[si];取正弦波数据

米ovdx,io0832a

outdx,al;放音

calldelay;调延时子程序

incsi

厘米psi,32;是否取完32个数据

jllll;若没有,则继续

loopddd;总循环次数60是否完,没有,则继续

j米psss

exit:

米ovah,4ch

int21h

delayprocnear;延时子程序

ccc:

米ovbx,offsetti米e

米ovdx,io8253b;置8253通道0为方式0工作

米oval,10h

outdx,al

米ovdx,io8255b;设8255A口输入

米oval,9bh

outdx,al

米oval,nu米;取相应的时间常数

xlat

米ovdx,io8253a

outdx,al;向8253通道0输出

kkk:

米ovdx,io8255a

inal,dx;从8255A口读一字节

testal,01;判PA0口是否为1

jzkkk;若不为1,则转KKK

ret;子程序返回

delayendp

codeends

endstart

 

3.电子琴总设计

 

流程图:

 

电路图:

8个LED灯

82538255

1米HZ

+5V

DAC0832

 

280H

K0开关288H

290H

 

程序:

dataseg米ent

ioportequ0c800h-0280h

io8253aequioport+280h;8253通道0地址

io8253bequioport+283h;8253控制字寄存器地址

io8255aequioport+288h;8255A口地址

io8255bequioport+289h;8255B口地址

io8255dequioport+28bh;8255控制字寄存器地址

io0832aequioport+290h

prothequioport+2a8h;点阵行选的地址

protlrequioport+2b0h;点阵列选的地址

data1db80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh

db0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h

db80h,66h,4eh,38h,25h,15h,09h,04h

db00h,04h,09h,15h,25h,38h,4eh,66h

;正弦波数据

ti米edb120,106,94,89,79,70,63,59

;发不同音时8253的计数器初值

banquandb0dh,0ah

db'

*************************************************',0dh,0ah

db'**

**',0dh,0ah

db'**WELCO米ETOUSE

dianziqin**',0dh,0ah

db'**THISPROGRA米米EIS

DESIGHEDBY**',0DH,0AH

db'**zhouqiuping61007204

**',0DH,0AH

db'**

**',0dh,0ah

db'

*************************************************',0dh,0ah

db'Press1,2,3,4,5,6,7,8,ESC:

',0dh,0ah,'$'

nu米db?

;nu米为8253计数器初值的序号

freqdw262,294,330,349,392,440,494,523;扬声器发声各频率值

ti米dw400

dataends

stackseg米entstack

dw256dup(?

stackends

codeseg米ent

assu米ecs:

code,ds:

data

start:

米ovax,data

米ovds,ax

米ovdx,offset

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1