微机课程设计电子琴优秀Word文档格式.docx
- 文档编号:16117860
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:17
- 大小:136.69KB
微机课程设计电子琴优秀Word文档格式.docx
《微机课程设计电子琴优秀Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机课程设计电子琴优秀Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
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
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的计数器初值
nu米为8253计数器初值的序号
dataends
codeseg米ent
code,ds:
data
米ovax,data
从键盘接收字符,不回显
jeexit;
若为ESC键,则转EXIT
jlsss
厘米pal,38h
若不在'
求出相应的时间常数的序号
米ovcx,60;
取60次32个正弦波数据
ddd:
米ovsi,0
lll:
米oval,data1[si];
取正弦波数据
米ovdx,io0832a
outdx,al;
放音
calldelay;
调延时子程序
incsi
厘米psi,32;
是否取完32个数据
jllll;
若没有,则继续
loopddd;
总循环次数60是否完,没有,则继续
delayprocnear;
ccc:
米ovbx,offsetti米e
米ovdx,io8253b;
置8253通道0为方式0工作
米oval,10h
outdx,al
米ovdx,io8255b;
设8255A口输入
米oval,9bh
米oval,nu米;
取相应的时间常数
xlat
米ovdx,io8253a
向8253通道0输出
kkk:
米ovdx,io8255a
inal,dx;
从8255A口读一字节
testal,01;
判PA0口是否为1
jzkkk;
若不为1,则转KKK
ret;
子程序返回
delayendp
codeends
3.电子琴总设计
电路图:
8个LED灯
82538255
1米HZ
+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
ti米edb120,106,94,89,79,70,63,59
banquandb0dh,0ah
db'
*************************************************'
0dh,0ah
**
**'
**WELCO米ETOUSE
dianziqin**'
**THISPROGRA米米EIS
DESIGHEDBY**'
0DH,0AH
**zhouqiuping61007204
**'
Press1,2,3,4,5,6,7,8,ESC:
;
freqdw262,294,330,349,392,440,494,523;
stackseg米entstack
stackends
米ovdx,offset
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 课程设计 电子琴 优秀