发布时间 : 星期五 文章钢琴键盘演奏说明书 - 图文更新完毕开始阅读b35d9ac72e3f5727a5e962f3
3详细设计
3.1主程序流程图
由于此次课设程序较为复杂,包含多个跳转和子程序。故在此使用将主程序流程图和子程序流程图分开叙述的方法,叙述如下:
主程序运行后进入windows界面,首先输出提示字符。接着用户通过键盘单击所设置的按键,对其进行判断识别并作出相应处理:ESC时退出程序;SPACE时暂停程序主程序流程图如图3-1所示:
开始 输出提示字符串 输入字符 Y 是ESC吗? N 是空格吗? N 暂停 N Y 错误 是1234567qwrty键吗? Y 对8255、8253初始化 返回主程序 设置全音 设置半音 调用声卡 结束 图3.1 主流程图
3.2暂停程序流程图
当对输入字符判断为空格后,进入暂停子程序。换行后输出暂停信息,对8255进行清零使得扬声器停止工作。随后对下个输入字符进行判断,若为ESC则退出整个程序;若为空格则重新进入正常工作状态;若为其他字符则等待下个字符的输入。流程图如图3.2所示。
入口 输入 输出暂停信息 停止发声 是ESC吗? N 输出字符 N 是空格吗? Y 出口 Y 返入口 输入 输出暂停
图3.2 暂停程序流程图
3.3错误程序流程图
当对输入字符判断为空格、ESC、1234567qwrty以外的字符后,进入错误子程序。随后重新对输入字符进行判断。流程图如图2.3所示。
出口 是空格吗? Y N 输出错误信息 换行 入口 输出字符
图3.3 错误程序流程图
4 程序段落说明
4.1 初始化窗口
程序基本达到设计要求,由于使用了声卡调用功能,程序的操作更加简便,一般情况下能正确提示错误信息。但是在测试中也发现软件的一些不足与缺陷,需要进一步修改和维护时予以纠正。总的来说,程序通过了测试。
程序开始后先将提示字符串输出,创建一个windows窗口。 .data
ClassName db \AppName db \
szText db '简单的虚拟钢琴小程序 --> abcdefg调,1234567qwrty音',0h
.data?
hInstance HINSTANCE ? hdc HDC ? midiPu DWORD ? midiYu DWORD ? midiFlag BYTE ? midiPlayFlag BYTE ? .code start:
WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
invoke GetModuleHandle, NULL mov hInstance, eax
invoke WinMain, hInstance, NULL, NULL, SW_SHOWDEFAULT invoke ExitProcess, eax