预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理与应用课程设计目录设计任务计时秒表,具备分、秒和百分之一秒计时功能。可以在屏幕中央显示计时成果,屏幕显示彩色图案和文字。秒表具备键控启/停功能,并且可以随时通过键盘复位,清零。设计原理1、HALT(启动子程序)2、DIS(宏定义——苹果显示程序)3、DISS(宏定义——字符串输出)4、CLOUR(字体颜色设立程序)5、IOSET(设立光标位置子程序)6、GO(初始化显示子程序)7、TIME(延时子程序)8、TRAN(压缩BCD码转ASCII码程序)9、复位、停止等功能实现流程图主程序流程图压缩BCD转ASCII码子程序流程图延时子程序流程图程序段程序调试程序运营成果心得体会参照文献一、设计任务:1.计时秒表,具备分、秒和百分之一秒计时功能,并可以在屏幕中央显示计时成果。2.屏幕显示彩色图案和文字。3.秒表具备键控启/停功能,并且可以随时通过键盘复位,清零。二、设计原理:本程序重要设计原理是用主程序完毕百分之一秒与秒之间转换,显示计时成果,实现暂停,暂停再启动,复位,复位再启动功能,并通过调用某些附加程序,缩减主程序长度,提高运营效率和精度,现将用到所有附加程序原理及其在运营过程中所起到作用汇总如下:1.DIS(宏定义——苹果显示程序)通过宏调用,实现苹果图案显示。在宏定义里,设立一种形参变量,作为移动光标位置,在下面调用宏中,予以变量X不同实参,输出苹果图案。2.DISS(宏定义——字符串输出)原理同上。3.CLOUR(字体颜色设立程序)通过字体颜色设立程序,实现屏显字体颜色变化。当变化BX值时,字体颜色会变化。4.HALT(启动子程序)通过启动子程序,实现计时开始,当从键盘输入一种字符时,判断与否等于S,如果不等,则在循环执行启动子程序中动态等待,直到输入字符为S时,计时开始。5.IOSET(设立光标位置子程序)通过设立光标子程序,来设立显示区域。普通整个屏幕可显示25行,80列,屏幕左上角字符位置为0行0列,右下脚字符为24行79列,相应十六进制为:左上脚为(0,0),右下脚为(18,4F)。入口信息为:(AH)=2要设立光标;(BH)=0页号;(DH,DL)=00要置光标于0行0列。DX赋值为0D27H,光标置位于屏幕中央。6.GO(初始化显示子程序)通过将在数据段定义BUFFER数组首址赋给BX,将待显示初值字符串00:00存入数组中相应位置,当每次复位后来,重新调用该子程序,将程序执行成果修正为00:00,并显示于屏幕上,从而实现了程序初值设定和复位功能。7.TIME(延时子程序)计算机每执行一条指令,虽然不久,但是需要某些时间,因而在本程序中可以通过延时程序,让计算机去执行某些无关程序,来达届时钟秒与百分之一秒转换时时间延迟。每条指令执行时间长短,是以计算机时钟周期为基本单位,因而不同计算机可以通过修改延时程序数值来使其达到精确计时。8.TRAN(压缩BCD码转ASCII码程序)计算机显示数据时使用是数据ASCII码,而在程序设计当中程序计时数值是BCD码,因而,需要通过此子程序实现将BCD码转变为ASCII码,以备送屏幕显示。由于时钟计时压缩BCD码每一种数均有8位,因而将其右移四位并加30H,将其高位数字取出,送BX存储,再将其低位数字取出,加30H,送BX存储,达到不同码制之间转换目。9.复位、停止等功能实现通过对输入字符判断和各种循环嵌套调用实现。整体上本程序重要设计原理是先在数据段中定义“SSTARTRRESETEENDCCONTINUE”控制字符串,并定义缓冲区。将数据段段基址送DS,并将“SSTARTRRESETEENDCCONTINUE”显示,同步调用GO子程序,将显示成果初始化。同步设立光标,启动计时,启动延时程序,将百分之一秒加1并将其设立为压缩BCB码,当其CF不为1时,送屏幕显示,当其为1时,将其设立为0,并在秒上加1,当秒等于60时,其置0,当其不大于60时,送屏幕显示。在计时过程中,如果键入R,则将其复位,并重新开始计时,当键入E时,计时暂停,如果键入C,则继续计时,如果键入R,则复位,设立为00:00,当再次键入S时,再次计时开始。三.框图(见附页)四、程序清单(附显示成果)DATSEGMENTSPACEDBDUP('')FU1DB'Wherethereisawill$'FU2DB'Thereisaway$'FU3DB'MadeBy:$'FU4DB'SunandFeng$'FU5DB'12/28/$'FU6DB"INPUTSSTARTRRESETEENDCCONTINUE$";设立控制字符串BUFFERDB10DUP(?);定义缓冲区DATENDSCODSEGMENTSTARTPROCFARASSUMECS:COD,DS:DATMOVAX,DATMOVDS,AXCLOUR:;字