微机课程设计电子琴Word格式文档下载.docx

上传人:b****1 文档编号:5258054 上传时间:2023-05-04 格式:DOCX 页数:21 大小:136.98KB
下载 相关 举报
微机课程设计电子琴Word格式文档下载.docx_第1页
第1页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第2页
第2页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第3页
第3页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第4页
第4页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第5页
第5页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第6页
第6页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第7页
第7页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第8页
第8页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第9页
第9页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第10页
第10页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第11页
第11页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第12页
第12页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第13页
第13页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第14页
第14页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第15页
第15页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第16页
第16页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第17页
第17页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第18页
第18页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第19页
第19页 / 共21页
微机课程设计电子琴Word格式文档下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机课程设计电子琴Word格式文档下载.docx

《微机课程设计电子琴Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机课程设计电子琴Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。

微机课程设计电子琴Word格式文档下载.docx

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

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

实现情况:

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

二.基本设计思想

1、先分别设计机内电子琴和实验仪电子琴。

机内电子琴参照实验五8253计数器/定时器的选做与探索中使用PC机内8253驱动声音接口;

实验仪电子琴参照实验中演示实验的电子琴流程图;

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

3、点阵显示。

根据输入的数字判断应显示点阵的哪一行。

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

4、LED灯显示。

同样,根据输入的数字判断应显示哪一个LED灯。

具体可设置8255B口为输出,根据输入的数字,输出控制LED灯相应灯亮。

三.程序流程和程序实现

1、机内电子琴

流程图:

程序:

dsegsegment

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

;

扬声器发声各频率值

msgdb'

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

'

0dh,0ah,'

$'

timdw400

numdb?

dsegends

ssegsegmentstack

dw256dup(?

ssegends

csegsegment

assumecs:

cseg,ds:

dseg

start:

movax,dseg

movds,ax

movdx,offsetmsg

movah,9

int21h;

显示提示信息

sss:

movah,7

int21h

;

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

cmpal,1bh

jeexit;

若为ESC键,则转EXIT退出

cmpal,31h

jlsss;

小于31h

cmpal,38h;

大于38h

jgsss;

不在'

1'

-'

8'

之间转sss

subal,31h

movnum,al;

num求出相应的时间常数的序号

jinei:

moval,num

addal,al

movah,00h

movsi,ax

again:

movdi,freq[si]

movbx,tim

callgen

jmpsss

exit:

movah,4ch

int21h

genprocnear

moval,0b6h;

设置8253通道2方式3二进制计数

out43h,al

movdx,12h

movax,12928

DXAX=896*533h=18*65536+12928=1.19M

divdi

out42h,al;

8253通道2口设置初值

moval,ah

out42h,al

inal,61h;

读8255PB口

movah,al

oral,3

out61h,al

wait1:

movcx,0h

delay3:

movax,10;

延时子程序

delay2:

nop

decax

jnzdelay2

loopdelay3

decbx

jnzwait1

out61h,al

ret

genendp

csegends

endstart

2、实验仪电子琴

实验电路:

datasegment

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;

正弦波数据

timedb120,106,94,89,79,70,63,59;

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

num为8253计数器初值的序号

dataends

codesegment

code,ds:

data

movax,data

从键盘接收字符,不回显

jeexit;

若为ESC键,则转EXIT

jlsss

cmpal,38h

若不在'

求出相应的时间常数的序号

movcx,60;

取60次32个正弦波数据

ddd:

movsi,0

lll:

moval,data1[si];

取正弦波数据

movdx,io0832a

outdx,al;

放音

calldelay;

调延时子程序

incsi

cmpsi,32;

是否取完32个数据

jllll;

若没有,则继续

loopddd;

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

int21h

delayprocnear;

ccc:

movbx,offsettime

movdx,io8253b;

置8253通道0为方式0工作

moval,10h

outdx,al

movdx,io8255b;

设8255A口输入

moval,9bh

moval,num;

取相应的时间常数

xlat

movdx,io8253a

向8253通道0输出

kkk:

movdx,io8255a

inal,dx;

从8255A口读一字节

testal,01;

判PA0口是否为1

jzkkk;

若不为1,则转KKK

ret;

子程序返回

delayendp

codeends

3.电子琴总设计

电路图:

8个LED灯

82538255

1MHZ

+5V

DAC0832

280H

K0开关288H

290H

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

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

timedb120,106,94,89,79,70,63,59

banquandb0dh,0ah

db'

*************************************************'

0dh,0ah

**

**'

**WELETOUSE

dianziqin**'

**THISPROGRAMMEIS

DESIGHEDBY**'

0DH,0AH

**zhouqiuping61007204

**'

**

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

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

stacksegmentstack

stackends

movdx,offsetbanquan;

显示

若为ESC键,则转EXIT推出

dianzhen:

moval,0ffh;

点阵板的列全部选通

movdx,proth

moval,00000001:

点阵的行赋初值

shlal,num;

根据输入的数字,左移相应位数,即点阵亮相应行

movnum,al;

如输入3,则num为2,左移两位,第三行亮

movdx,prothl

led:

movdx,io8255d

moval,99h;

设置8255A口入B口出

movdx,io8255b

outdx,num;

根据移位后的num点亮相应led灯

kaiguan:

movdx,io8255a;

判断机内机外

从8255B口读一字节

testal,10b;

判断PA0口是否为10(二进制)

jzjiwai;

是的话转实验仪

jmpnei;

否则转机内

---------------------------------jiwai

jiwai:

movdx,io0832a

movdx,io8253b;

ret;

-------------------------------------机内部分

genprocnear

moval,0b6h;

out43h,al

movax,12928

DXAX=896*533h=18*65536+12928=1.19M

divdi

out42h,al

codeends

四.测试方案和测试结果

测试方案

测试结果

启动程序,出现按键提示,按下1~8键

机内/实验仪发出相应的音阶

同时led和点阵板亮相应的灯和行

改变开关状态(可随时任意改变),按1~8键

对应发出相应的音阶

“弹琴”

发出优美旋律

按下ESC键

退出程序

五.分析与总结

问题分析:

关于开关改变发声源为机内或机外和led灯的点亮,原来想用前面学过的简单输入输出实验,用74LS273做输出,到led上驱动led灯亮;

用74LS244做输入,把开关值输入控制发声源。

后来发现这样很麻烦,虽然在程序上没有太繁杂,但是这样就加了两个地址,而且对于电路来说,就很复杂。

因此,后来想到直接用8255做输入输出,设A口为输入,B口输出,这样用一个片子即可完成几个功能。

关于点亮点阵板,原来想将num逐个与0~7比较,来判断亮哪一行,后来这样写代码时比较繁杂,就改成移位来实现,给点阵的行赋初值00000001,然后再左移num位,即可亮相应的行。

实验总结:

这次微机实验课程设计,使我对微机软硬件结合有了进一步的了解。

原来并不太清楚是什么意思,一直都很模糊,听课本也是很迷茫;

而之前的那些单元实验,也没有都做好。

之前做的实验,由于大部分是验证性的,所以就很被动地去做,甚至并没有想为什么要那样连电路,内部的代码更没有认真看。

这次课程设计,因为要自己去设计整个过程,所以就不得不去了解学习自己原来并没有真正弄懂的东西。

比如一些程序的代码的意思,汇编语言的逻辑,比如一些芯片的用途。

使我对前面所做的实验有了原理性的了解,回头看一些实验,也知其然其所以然了。

同时对课本上讲的一些内容,不再像以前那样觉得抽象,通过这次设计,有了具体的理解。

同时,我也知道了设计一个项目,应该如何下手。

应该先对项目要求有个全面的了解,知道要做什么,然后根据要求所要涉及到的知识我们要主动去摄取,结合自己已学过的,再对整体框架有个感知,心里有数后,进行设计。

设计时用流程图,这很重要,这样整个思路就很清晰,而且是按照软硬件语言的逻辑顺序进行,就很方便。

设计过程可以分模块,不要一开始就想把所有的功能都实现了,应该一个模块一个模块地实现,再总的连起来,实现最后的总模块。

在每个模块设计时,尽量想到比较简单的设计,简化编程和电路,也可少出错。

对微机是这样,对其他的像数字系统设计,也是一样的。

因此,我也觉得微机实验的这种形式的课程设计是很好也很有必要的。

对我们对微机实验的理解有很大帮助。

参考书目:

【1】杨素行《微型计算机系统原理及应用》,,清华大学,2004年

【2】微机实验及课程设计教程(试用版2.0),东南大学《微机系统与接口》课程组,2009年2月

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

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2