资源描述:
《电子琴软件设计源程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、datasegment;------------------------------进度条字符-----------------------st_loaddb10;起始行db4;起始列db0bh;字体颜色db'*****************'db00;------------------------------字符定义-----------------------start_coldb?;存储起始行textdb14;起始行db2;起始列db0fh;字体颜色db'AUTOMATION0902heru
2、n,0ffh,0ffh;显示字db'happynewyear!',0ffh;以0ffh来判断是否换行db'[-1-2-3-4-5-6-7-]',0ffhdb'H[qwertyu]p:play',0ffhdb'M[asdfghj]enter:stop',0ffhdb'L[zxcvbnm]Esc:exit',0ffhdb'1/2:speeddown/up',0ffhdb00;------------------------------白色琴键坐标-------------------st_lxdw50,6
3、1,72,83,94,105,116;起点横坐标dw127,138,149,160,171,182,193dw204,215,226,237,248,259,270st_ydw50;起点纵坐标ed_lxdw60,71,82,93,104,115,126;终点横坐标dw137,148,159,170,181,192,203dw214,225,236,247,258,269,280ed_ydw90;终点纵坐标;------------------------------黑色琴键坐标------------
4、--------------bt_xdw57,68,90,101,112;起点横坐标dw134,145,167,178,189dw211,222,244,254,265bt_ydw50;起点纵坐标bd_xdw64,75,97,108,119;终点横坐标dw141,152,174,185,196dw218,229,251,262,273bd_ydw70;终点纵坐标;------------------------------音乐频率值----------------------------tunedw2
5、20,247,278,294,330,371,416;低音dw441,495,556,589,661,742,833;中音dw882,990,1112,1178,1322,1484,1655;高音soundcolordw0;音色缓存,用于改变播放或弹奏时琴上音响和琴面上点阵的颜色17key_tunedw0;按键状态缓存,用于判断是否有手动按键,1为有,0为无keynumdw1;按键编号缓存,用于提取对应的按键位置delay_timedw7000;延时缓存,用于播放时存入bx中来计数;---------
6、---自动演奏的歌曲频率和延时---------《新年好》mus_freqdw441,441,441,330,556,556,556,441dw441,556,661,661,589,556,495dw495,556,589,589,556,495,556,441dw441,556,495,330,416,495,441dw-1;以后以-1来判断是否结束;------------------声音节拍部分,32为一拍------------------------mus_timedw4,4,8,8,4,
7、4,8,8dw4,4,8,8,4,4,16dw4,4,8,8,4,4,8,8dw4,4,8,8,4,4,32dataends;************************代码段**************************codesegmentassumeds:data,cs:code;-------------------------主程序-----------------------;---依次调用:开场效果--初始化--键盘扫描--按键处理程序-------------mainproc
8、farstart:callshow_load;调用进度条显示程序;---延时20*waitf----pushbxmovbx,20del:callwaitfdecbxjnzdelpopbx;------------重新开始-------restart:;自动播放音乐时,按‘enter’键或音乐完全结束后会返回这里callinit;调用初始化程序new_scan:;键盘扫描程序没有检测到功能键被按下时,会返回这里callscan_key;调用键盘扫描程序,扫