电子琴设计程序清单Word文档下载推荐.docx
- 文档编号:6492011
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:15
- 大小:18.12KB
电子琴设计程序清单Word文档下载推荐.docx
《电子琴设计程序清单Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子琴设计程序清单Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
STACKS
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETDISPLAY
MOVAH,09H
INT21H;
显示display的内容
SCAN:
MOVAH,1;
读键盘并在屏幕上显示
INT21H
MOVCX,4000
MOVDI,3500H;
设放置音节的首地址
MOVDX,3500H;
设复读首地址
CMPAL,1BH;
判断输入是否为退出1BH=27al不等于27时跳转
JNEL
MOVAH,4CH;
退出
INT21H
L:
CMPAL,4CH;
判断输入是否为L低音
JNEM
JMPSCAN1
M:
CMPAL,4DH;
判断输入是否为M中音
JNEH
JMPSCAN2
H:
CMPAL,48H;
判断输入是否为H高音
JNESCAN1
JMPSCAN3
SCAN1:
CMPAL,1BH
JNEREP1
REP1:
CMPAL,52H
JNEC1
CALLREPLAY
MOVDI,3500H
C1:
CMPAL,43H;
判断输入是否为C长音
JNEZ1;
不是长音转移到z1继续判断
MOVCX,7000;
是长音cx=7000
JMPA1;
跳转a1
Z1:
CMPAL,5AH;
判断输入是否为Z中音
JNED1;
不是中音转移d1继续判断
MOVCX,4000;
是中音cx=4000
D1:
CMPAL,44H;
判断输入是否为D短音
JNEA1;
不是短音转移a1
MOVCX,2000;
是短音时cx=2000
HELP1:
JMPSCAN1
A1:
判断是否是中音
JNEB1
B1:
判断是否是高音
JNEKEY1
JMPSCAN3
KEY1:
CMPAL,31H;
1
JNEKEY2
MOVBX,00H
CALLPLAY1
JMPHELP1
KEY2:
CMPAL,32H;
2
JNEKEY3
MOVBX,02H
KEY3:
CMPAL,33H;
3
JNEKEY4
MOVBX,04H
KEY4:
CMPAL,34H;
4
JNEKEY5
MOVBX,06H
KEY5:
CMPAL,35H;
5
JNEKEY6
MOVBX,08H
KEY6:
CMPAL,36H;
6
JNEKEY7
MOVBX,0AH
KEY7:
CMPAL,37H;
7
JNEHELP1
MOVBX,0CH
JMPHELP1
;
子程序名:
PLAY1
功能:
输入1~7音符时发音,并将输入的内容存入[DI]
PLAY1PROC
MOVAL,0B6H;
写控制字,AL=10100110选择2号计数器(10),仅读/写一个高字节(10)8253工作方式3(011)二进制(0)
OUT43H,AL;
将控制字写入
MOVSI,OFFSETTABLE1;
取低音首地址
MOVAX,[BX+SI];
将SI的内容送人ax中
MOV[DI],AX;
将ax中的内容送人到[DI]中
INCDI
INCDX
OUT42H,AL;
送初值
MOVAL,AH
OUT42H,AL;
将ax中的内容送给8253
MOVAL,80H;
写控制字,Al=100000001为特征位,0方式(00)输出(00)0方式,输出输出A=60h,B=61hC=62H
OUT63H,AL;
写入
MOVAL,03H;
PB.0\PB.1口送1
OUT61H,AL;
信号通过
CALLDELAY
MOVAL,02H;
PB.1口送0
信号终止
RET;
返回
PLAY1ENDP
SCAN2:
JNEREP2
REP2:
CMPAL,52H;
判断是否重放
JNEC2
CALLREPLAY
MOVDI,3500H
C2:
JNEZ2
MOVCX,7000
JMPA2
Z2:
JNED2
D2:
JNEA2
MOVCX,2000
HELP2:
JMPSCAN2
A2:
判断是否是低音
JNEB2
B2:
JNEKEY11
KEY11:
JNEKEY12
CALLPLAY2
JMPHELP2
KEY12:
JNEKEY13
KEY13:
JNEKEY14
KEY14:
JNEKEY15
KEY15:
JNEKEY16
KEY16:
JNEKEY17
KEY17:
JNEHELP2
;
播放中音子程序
PLAY2PROC
MOVAL,0B6H;
8253工作方式3
OUT43H,AL
MOVSI,OFFSETTABLE2;
取中音首地址
MOVAX,[BX+SI]
MOV[DI],AX
OUT42H,AL
开8255
OUT63H,AL
OUT61H,AL
RET
PLAY2ENDP
SCAN3:
读键盘并在键盘上显示
JNEREP3
REP3:
JNEC3
C3:
JNEZ3
JMPA3
Z3:
JNED3
D3:
JNEA3
HELP3:
JMPSCAN3
A3:
JNEB3
B3:
判断是否是中音
JNEKEY31
KEY31:
JNEKEY32
CALLPLAY3
JMPHELP3
KEY32:
JNEKEY33
KEY33:
JNEKEY34
KEY34:
JNEKEY35
KEY35:
JNEKEY36
KEY36:
JNEKEY37
KEY37:
JNEHELP3
播放高音子程序
PLAY3PROC
MOVSI,OFFSETTABLE3;
取高音首地址
PLAY3ENDP
DELAYPROC
PUSHBX;
bx压栈
PUSHDX
MOVDX,CX
MOVBX,20000;
长\中\短音判断延时
DELAYY:
PUSHAX
POPAX
LOOPDELAYY
MOVCX,DX
DECBX
JNZDELAYY
POPDX
POPBX
DELAYENDP
DELAY1PROC
PUSHBX
PUSHDX
MOVBX,10000;
重放延时
DELAYY1:
LOOPDELAYY1
JNZDELAYY1
DELAY1ENDP
REPLAYPROC;
重放子程序
PUSHCX
PUSHDI
PUSHSI
PUSHAX
RE:
MOVAX,[DI]
INCDI
CALLDELAY1
CMPDX,DI;
判断是否读完
JNERE
MOVDX,3500H
POPSI
POPDI
POPCX
REPLAYENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子琴 设计 程序 清单
![提示](https://static.bingdoc.com/images/bang_tan.gif)