




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学《微机原理与接口技术》课程设计说明书计算机波形显示软件设计1总体设计1.1总体设计思路本实验中波形的实现主要是运用查表法,即根据要实现的波形制作一张数字量表,在此次实验中,我计划实现正弦波、方波、和扫描波,也就要制作三个表格。本次实验中每个波形的一周期内包含一百二十八个像素点。波形曲线可以看成一个函数,屏幕是由一个个像素点组成,它可以看成一个笛卡尔坐标系,曲线的每一个点对应着一个横坐标,对应着一个纵坐标(函数值),不同的曲线有不同的函数,只要找到曲线上点的坐标(函数值)就可以绘制出不同的曲线,所以,问题的关键就在于如何获得并显示出不同波形曲线的函数值。1.2程序流程图程序从初始化开始,首先让指针指向提示信息一,即在屏幕上显示:'1sin;2cos;3scanning;4clear;E/eexit;right/leftchangephase;0ah,0dh,'$';按键提示菜单当有键按下后,如果键是1,则转向执行产生正弦波的程序;如果键不是1,则看键是否为2。如果键是2,则转向执行产生方波的程序;如果键也不是2,则看是否为3。如果是3,则转向执行扫描波的程序;如果也不是3,则看是否为4。如果是4,则转向执行清屏的程序;如果也不是4,则看是否是e或者E。如果是e或者E,则转向执行结束程序。以正弦波为例,当程序判断为按键1时,继续判断是否为“→”,“←”,若为是则执行右移,左移。其他波形同正弦波,开始开始设置屏幕显示方式设置屏幕显示方式输出提示信息输出提示信息绘制坐标系绘制坐标系‘1’按下?正弦波 ‘1’按下?正弦波N方波‘2’按下? Y方波‘2’按下?N‘3’按下?扫描波 ‘3’按下?扫描波N清屏‘4’按下? 清屏‘4’按下?N左键按下?左移 Y左键按下?左移N右移右键按下? Y右移右键按下?NNE/eE/e键按下?结束结束Y图1-2程序流程图2程序设计与实现2.1初始条件1.用于调试程序的IBM兼容PC机一台;2.安装DOS/WIN98操作系统或运行于DOS/WIN98兼容方式;3.EDIT等文本编辑器输入80x86汇编程序,MASM5.0编译及链接程序。2.2设置屏幕显示方式IBM-PC的标准显示适配器,一种是彩色/图形适配器EGA和VGA,,它能以文本和图形两种方式工作。另一种是单色显示,它只能显示黑白字母、数字、符号和菱形等简单的图形字符,它是以文本方式工作的。在彩色/图形适配器中把屏幕分成M*N个点阵,每个坐标上的图像元素就是一个像素。调用方式如下:入口参数:AH=0(功能号),AL=设置方式。部分显示设置方式调用参数如表2-1。出口参数:无。表2-1部分显示设置方式表调用参数AL显示方式00H40*25黑白字符方式01H40*25彩色字符方式02H80*25黑白字符方式03H80*25彩色字符方式04H320*200彩色图形方式11H640*480单色图形12H640*48016色图形本设计中选用04号功能,设置屏幕分辨率为320*200,彩色图形方式,字符分辨率为80*25。其中屏幕的最左上角坐标为(0,0)。程序模块如下:;设置屏幕显示方式宏SETSCREENMACRO;设置屏幕显示方式MOVAH,0MOVAL,04H;设置彩色4色,320*200,文本80*25INT10HENDM2.3输出文本信息 在程序设计中,文本提示信息的输出有着非常重要的作用。汇编语言中,可以通过调用DOS中断,int21h处理输入和输出信息,同时还可以通过BIOS中断int10h设置输出字符的起始位置。设置输出字符的起始位置模块如下:MOVAH,2;用文本坐标下设置光标位置MOVDH,X ;第一个字符输出的行坐标MOVDL,Y ;第一个字符输出的列坐标INT10H显示字符串需要调用int21h中断的09号功能。程序模块如下:;设置输出宏,带参数OUTPUTMACROMESS;输出宏MOVAH,2MOVDH,22;行坐标0-25MOVDL,1;列坐标0-80INT10H;设置标题开始位置80*25MOVDX,OFFSETMESSMOVAH,9INT21HENDM宏执行完成后,将在22行第一列开始输出变量mess的字符串。2.4键盘处理子程序键盘处理使用BIOS或者DOS键盘中断,BIOS中断INT16H,本程序中使用DOS键盘中断,调用如下: MOVAH,0CH;清除键盘缓冲区MOVAH,7;等待从键盘输入一个字符,不回显INT21HMOVBX,1282.5绘制图形本设计选用的屏幕显示方式为320*200彩色图形方式,即横坐标有320个点,纵坐标有200个点,默认左上角为坐标原点(0,0)。要画出波形曲线,则要每个横坐标都对应着一个纵坐标的值。值不同绘制出的波形曲线也不同。把不同的曲线纵坐标的值储存在表中,通过查表可以得到不同曲线。每种曲线每周期取128个点,然后在屏幕上绘制出这些点,从而显示出相应的波形曲线。屏幕上的图形是由多个像素点组成,所以各种曲线也由多个点组成。在指定的坐标位置上写像素点的方式如下:MOVAH,0CHMOVAL,COLOR ;像素点的颜色(0~3)MOVCX,COL ;列号MOVDX,ROW ;行号INT10H2.6绘制坐标系由于屏幕默认的原点为左上角为(0,0),要在屏幕中间绘制曲线,所以在绘制前要进行坐标的变换,转化为笛卡尔坐标系,该子程序如下:;绘制笛卡尔坐标系DRAW_ZUOBIAOPROCNEAR;绘制笛卡尔坐标系MOVCX,0 D_HENG:MOVAH,0CHMOVAL,01H;像素的颜色MOVDL,100INT10HINCCXCMPCX,320JNED_HENGMOVCX,0MOVDL,02.7清屏过程清屏程序的设计原理,是用背景色的像素点重新在全屏进行绘制。CLEAR1:MOVAH,0CHMOVAL,00H;黑色重新刷屏INT10HINCCXCMPCX,3202.8绘制波形曲线根据不同的按键值,绘制不同的波形曲线。如:DRAW_LINEPROCNEAR;画线过程,先绘制第一周期PUSHSIMOVAX,COLADDBX,AXCALLD_LINEPOPSICALLDRAW_LINE12.9相位的改变相位的改变原理是当左/右方向键之一按下时,将曲线绘制的起始点向左/右平移10个像素点,然后重新绘制。改变相位,右方向键按下一次曲线右移10个像素点KEY_RIGHTPROCNEAR;改变相位,右移10个像素点MOVCX,COLADDCX,10MOVCOL,CXCMPTEMP,1JZRIGHT1CMPTEMP,2JZRIGHT2CMPTEMP,3JZRIGHT3RETKEY_RIGHTENDP3程序调试及结果通过运行程序可实现正弦波,方波,扫描波,以及三种波形的相位改变。调节时如重新回到初始页面,按数字键“4”,即可完成清屏指令并返回最初界面。按e/E退出程序。以下位移及幅值改变以正弦波为例。按下数字‘1’,显示两个周期的正弦波形曲线3-1图3-1正弦波形按下方向键右,曲线向右移动,如图3-2图3-2正弦波右移按下方向键左,曲线向左移动,如图3-3图3-3正弦波左移按下数字‘2’,显示两个周期的方波形曲线,如图3-4图3-4方波按下数字‘3’,实现显示多个周期的扫描波形曲线;如图3-5图3-5扫描波形按下数字‘4’,实现显示清屏;如图3-6图3-6清屏按下E/e键,程序成功4总结与体会在实验前我计划,先实现两个波形的显示,并能实现左右移动。然后加入第三个波形,并实现左右移动。最终再实现三个波形的幅值调整(或者是上下移动)。在整个编写、调试过程中状况频出。比如在开始时,由于未设置兼容模式,导致程序无法运行,一直会弹出如下对话框。在程序设计过程中还出现了很多问题,有些是由于粗心大意导致的,比如说是英文大小写不一样,符号不一致。还有些是由于理论知识不足,比如在CALL指令,和跳转指令的运用上不是很熟练。在整个程序的设计过程中,我最大的感慨就是要学会模块化设计程序,先绘制好流程图,再搞清楚每一个模块要实现的功能,以及怎样实现功能。 通过本次课程设计,学会了用汇编语言设计一个运行于计算机的显示波形的软件,软件应实现根据定义的数组或从键盘输入的数据串显示波形。掌握了基本程序设计方法、DOS和BIOS调用,掌握了宏汇编的基本概念和方法,熟悉上机操作和程序调试技术,初步具备了软件设计的能力。但在将计算机理论知识转化为计算机应用知识的同时,也发现了许多薄弱环节,还不能熟练用汇编语言编程,这次的课程设计,从开始收集材料,再分析理解材料,最后编写、调试程序,一路走来充满艰辛,但更是成长与进步的过程。希望此次的课程设计能够为以后的专业学习奠定良好的基础。参考文献[1]许骏.微型计算机系统原理及应用.广州:华南理工大学出版社,1996.5[2]宫云战.微型计算机原理与应用基础教程.北京:机械工业出版社,1999.5[3]荀殿栋.微处理器应用技术与实例.北京:电子工业出版社,1997.11[4]潘名莲.微计算机原理.北京:电子工业出版社,2004.7[5]李志民.计算机原理与汇编语言程序设计.长沙:中南大学出版社,2001.8附录1程序SETSCREENMACRO;设置屏幕显示方式MOVAH,0MOVAL,04H;设置彩色4色,320*200,文本80*25INT10HENDMOUTPUTMACROMESS;输出宏MOVAH,2MOVDH,22;行坐标0-25MOVDL,1;列坐标0-80INT10H;设置标题开始位置80*25MOVDX,OFFSETMESSMOVAH,9INT21HENDMSTACKYSEGMENTDB250DUP(?)STACKYENDSDATASEGMENTMENUDB'1sin;2cos;3sanning;4clear;E/eexit;right/leftchangephase',0ah,0dh,'$';按键提示菜单;正弦表SINEDB100,98,96,94,92,90,88,86DB84,82,81,79,77,75,74,72DB71,69,68,66,65,64,63,62DB61,61,60,59,59,59,58,58DB58,58,58,59,59,59,60,61DB61,62,63,64,65,66,68,69DB71,72,74,75,77,79,81,82DB84,86,88,90,92,94,96,98DB100,102,104,106,108,110,112,114DB116,118,119,121,123,125,126,128DB129,131,132,134,135,136,137,138DB139,139,140,141,141,141,142,142DB142,142,142,141,141,141,140,139DB139,138,137,136,135,134,132,131DB129,128,126,125,123,121,119,118DB116,114,112,110,108,106,104,102;方波表COSINEDB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,58,58,58,58DB58,58,58,58,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142DB142,142,142,142,142,142,142,142SCANNINGDB116,115,114,113,112,111,110,109;扫描波表DB108,107,106,105,104,103,102,101DB100,99,98,97,96,95,94,93DB92,91,90,89,88,87,86,85DB116,115,114,113,112,111,110,109DB108,107,106,105,104,103,102,101DB100,99,98,97,96,95,94,93DB92,91,90,89,88,87,86,85DB116,115,114,113,112,111,110,109DB108,107,106,105,104,103,102,101DB100,99,98,97,96,95,94,93DB92,91,90,89,88,87,86,85DB116,115,114,113,112,111,110,109DB108,107,106,105,104,103,102,101DB100,99,98,97,96,95,94,93DB92,91,90,89,88,87,86,85TEMPDB?;输出曲线类型1正弦2方波3扫描波COLDW0;象素点行坐标ROWDB0;象素点列坐标COLOUR_TEMPDB0;象素点颜色变量DATAENDS CODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKYSTART:MOVAX,DATAMOVDS,AXSETSCREEN;屏幕方式设置OUTPUTMENU;输出提示信息CALLDRAW_ZUOBIAO;绘制坐标轴MOVCOLOUR_TEMP,02H;颜色紫色;检测按键值 INKEY:MOVAH,0CH;清除键盘缓冲区MOVAH,7;等待从键盘输入一个字符,不回显INT21HMOVBX,128CMPAL,'1';若为1,画正弦JZPAN1CMPAL,'2';若为2,画方波JZPAN2;若为3,画扫描波CMPAL,'3'JZPAN3CMPAL,'4';若为4,清屏JNZINKEY4BJMPCLEAR_SCREENJZINKEYINKEY4B:CMPAL,4BH;左键按下左移JNZINKEY4DJMPKEY_LEFTINKEY4D:CMPAL,4DH;右键按下右移JNZINKEYEJMPKEY_RIGHTINKEYE:CMPAL,'E';若为E或e,则退出JNZINKEYE2JMPQUITINKEYE2:CMPAL,'e'JNZINKEYJMPQUITJMPINKEY;不断检测键盘键值PAN1:;画正弦LEASI,SINEMOVROW,0MOVCOL,0CALLDRAW_SINERETPAN2:;画方波LEASI,COSINEMOVROW,0MOVCOL,0CALLDRAW_COSRETPAN3:LEASI,SCANNING;画扫描波MOVROW,0MOVCOL,0CALLDRAW_SCANNINGRETKEY_RIGHTPROCNEAR;改变相位,右移10个像素点MOVCX,COLADDCX,10MOVCOL,CXCMPTEMP,1JZRIGHT1CMPTEMP,2JZRIGHT2CMPTEMP,3JZRIGHT3RETKEY_RIGHTENDPRIGHT1:;波形重绘LEASI,SINEJZDRAW_SINERETRIGHT2:LEASI,COSINEJZDRAW_COSRETRIGHT3:LEASI,SCANNINGJZDRAW_SCANNINGRETKEY_LEFTPROCNEAR;改变相位,左移动10个像素点MOVCX,COLSBBCX,10MOVCOL,CXCMPTEMP,1JZLEFT1CMPTEMP,2JZLEFT2CMPTEMP,3JZLEFT3RETKEY_LEFTENDPLEFT1:LEASI,SINEJZDRAW_SINERETLEFT2:LEASI,COSINEJZDRAW_COSRET LEFT3:LEASI,SCANNINGJZDRAW_SCANNINGRET DRAW_SINEPROCNEAR;画正弦过程CALLCLEAR_SCREENMOVCX,COLMOVTEMP,1CALLDRAW_LINERETDRAW_SINEENDPDRAW_COSPROCNEAR;画方波过程CALLCLEAR_SCREENMOVCX,COLMOVTEMP,2CALLDRAW_LINERETDRAW_COSENDPDRAW_SCANNINGPROCNEAR;画扫描波过程CALLCLEAR_SCREENMOVCX,COLMOVTEMP,3CALLDRAW_LINERETDRAW_SCANNINGENDPDRAW_LINEPROCNEAR;画线过程,先绘制第一周期PUSHSIMOVAX,COLADDBX,AXCALLD_LINEPOPSICALLDRAW_LINE1D_LINE:MOVAH,0CHMOVAL,COLOUR_TEMP;像素的颜色MOVDL,[SI]INT10HINCSIINCCXCMPCX,BXJLD_LINERETDRAW_LINEENDPDRAW_LINE1PROCNEAR;绘制第二周期MOVCX,BXADDBX,128CALLD_LINE1CALLINKEYD_LINE1:MOVAH,0CHMOVAL,COLOUR_TEMP;像素的颜色MOVDL,[SI]INT10HINCSIINCCXCMPCX,BXJLD_LINE1RETDRAW_LINE1ENDPDRAW_ZUOBIAOPROCNEAR;绘制笛卡尔坐标系MOVCX,0 D_HENG:MOVAH,0CHMOVAL,01H;像素的颜色MOVDL,100INT10HINCCXCMPCX,320JNED_HENGMOVCX,0MOVDL,0D_ZONG:MOVAH,0CHMOVAL,01H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车喷漆习题(含参考答案)
- 人教版部编版小学语文一年级上册人教版雪地里的小画家教学设计教案3
- 育婴师4级基础知识
- 临床试验有效性评估方法
- 中班健康预防传染病教案
- 肿瘤分子病理
- 2025汕头市普通高考第一次模拟考试语文学科选择题参考答案
- 汽车构造基础知识课件
- 现浇桥木工施工方案
- 2025年家居护理用品合作协议书
- (完整)2019年风廉政建设主体责任落实情况监督检查记录表
- 《selenium安装教程》课件
- 2024年辽宁省中考数学真题卷及答案解析
- 绝句迟日江山丽说课稿
- 物业员工安全知识教育培训
- 动物性食品卫生检验教案2
- 现代家政导论-课件 3.2.1认识家庭生活质量
- 课堂教学质量评价表
- 人工智能通识-课件全套 黄君羡 01-12 初识人工智能 -AIGC安全与伦理
- 时薪制员工合同范本
- 《智慧旅游认知与实践》课件-第九章 智慧旅行社
评论
0/150
提交评论