微机原理霓虹灯显示程序课程设计.docx
《微机原理霓虹灯显示程序课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理霓虹灯显示程序课程设计.docx(35页珍藏版)》请在三一办公上搜索。
1、霓虹灯显示程序设计1设计内容及要求要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求)1. 用汇编语言编写一个霓虹灯的模拟显示程序;2. 在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退 出;3. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序 清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想, 流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。2程序原理分析本次设计实现的是霓虹灯的模拟显示,在80*25大小的屏幕上显示由各种字符组成 的不同图形,在屏幕上,0行0列相对
2、于屏幕左上角的位置,24行79列相对于右下角 的位置。对应显示屏幕上的每个字符,在存储器中又连续的两个字节表示,一个字节保存 ASCII码,另一个字节保存字符的属性。在屏幕上处理字母、数字以及一些字符图形称 为文本方式。在文本方式下,属性字节对单色显示和彩色显示都是有效的。本程序采用的是彩色字符显示,在显示彩色文本时,属性字节能够选择前景和背景的颜 色。每个字符可以选择16种颜色中的一种,背景色有8种颜色可以选择。图1-1是16 色文本方式显示的属性字节。表1-1列出了 16色字符方式颜色的组合。76543210BLRGBIRGBALJYY闪烁背景前景图1-1 16色方式下的属性字节表1-1
3、16种颜色的组合颜色IRGB颜色IRGB颜色IRGB颜色IRGB黑 J0000灰1000红0100浅红1100蓝0001浅蓝1001品红0101浅品红1101绿0010浅绿1010棕0110黄1110青0011浅青1011灰白0111白1111本程序主要运用了 BIOS显示中断类型10H的部分功能,主要有用到以下几个功能:置光标:AH=02BH=页号DH=行DL=列读光标:AH=03显示字符串:AH=13HAL=01H ;光标跟随移动ES:BP=串地址CX=串长度DH,DL=起始行列BH=页号BL=属性即程序通过INT 10H2号功能的调用置光标位置,3号功能的调用读光标的位置, 以及13号功
4、能的调用显示字符串。并通过顺序、循环结构程序的调用进行图形的霓虹 灯效果显示。程序的数据段以字符串的形式来表示,可以很方便的直接运用INT 10H中的13号 功能即显示字符串功能显示图形,这样一来程序得到了很大的简化,但同时,图形的显 示是以字符串的形式,即以行的依次顺序逐渐出像在屏幕上,在字符串一次出现的同时, 通过调用相应的子程序改变图形显示的颜色属性,以及不断变换显示图形的形状。同时由于微机处理速度较快,不容易一次看到图形变化,则需要在程序中添加延 迟程序作为子程序不断被调用用以减缓显示速度,方便肉眼观察到图形变换效果。延迟 程序中,由于寄存器CX存储有限,不能达到合适的延迟程度,故应采
5、用循环结构的子 程序来进行延迟操。3程序流程图3.1主程序流程图定义数据段,然后将代码段程序初始化,然后调用13号功能显示字符串组成的董德 军三个字,再调用条纹显示子程序,显示运动的条纹,判断是否输入。,若输入。,则 程序结束,退出程序,否则,执行跳转命令,继续调用汉字显示程序和条纹显示程序。主程序结构流程图如图2-1图3-1主程序结构流程图3.2子程序结构流程图3.2.1名字显示子程序流程图按照要求要显示出自己的名字,因此,运用多个字符组成,并按照笔画顺序显示出来, 结构流程图如图3-2所示。结束图3-2名字显示子程序流程图3.2.2擦除子程序流程图,擦除以后若没有检测擦出子程序流程图如图在
6、显示完名字并进行变色以后,将使用竖条纹对屏幕进行擦出 到字符Q的输入,则进行循环,继续显示名字,并在此进行擦出, 3-3所示。开始信息结束判断是否到达屏幕最左端?判断指定位置处 字符是否为?判断指定位置处字 符是否为*?N擦除子程序流程图YYNN保存点的基 本信息保存组成点的基本将字符写11列坐标dl自减将字符改为图3-34程序主要模块功能分析4.1名字显示功能模块如何使用ASCII码显示自己的中文名字是这次课程设计的关键之处,为了达到霓虹灯 的效果,我采用各种字符组合,来组成名字的形状,为了达到更美观的效果,在这里,借 助一个字符画转换软件,名字为ASCIIArtStudioASCII,该软
7、件是用来创建ASCII字符画的 软件,可以像使用画笔一样创建ASCII字符画。还支持将图片转换为字符画,以及保存 成文本或图片文件等功能。首先我使用画图工具将自己的名字打出来,并转化为图片格式,如图4-1所示。图4-1使用绘图工具得到宋体的中文名字然后运行ASCIIArtStudioASCII软件,点击菜单栏文件,选择将图片转换为ASCII ART 一项,读出图片,点击转换,将图片转化为字符画,所得字符画如图4-2所示。D fO S ffl -c决曾谡回贵罗留名字字符画|:谯然后按照每一个字符的坐标方位在80*25大小的屏幕上显示由各种字符组成的文字, 在屏幕上,0行0列相对于屏幕左上角的位置
8、,24行79列相对于右下角的位置。对应显示屏幕上的每个字符,在存储器中又连续的两个字节表示,一个字节保存ASCII 码,另一个字节保存字符的属性。在屏幕上处理字母、数字以及一些字符图形称为文本方 式。在文本方式下,属性字节对单色显示和彩色显示都是有效的。在彩色显示器里,如 CGA、EGA、VGA等,常用一个字节(8个位)来表示文字颜色和背景颜色,通常以第 03位表示文字本身颜色;第46位表示背景颜色,背景颜色只有上表左栏的8种而 已;第7个位,表示是否闪烁,0表示不闪烁,1表示闪烁。每个字符由四种属性组成, 第一项为字符种类,如61h代表字符“。”,第二项为字符的颜色,如Oah代表绿色,第三
9、项为字符相对于前一个字符的行坐标,第四项为该字符对于上一个字符的列坐标,这样只 要定义了第一个字符在屏幕中的位置,那么就能将整个汉字显示出来。以下为第一个汉字 “董”所定义的数据段。dongdb 130db 61h,0ah,0,0db 12 dup(a,0ah,0,1)db 30h,0ah,0,1db &,0ah,0,1 db ,0ah,-1,-9 db n,0ah,0,1 db J,0ah,1,-1db &,0ah,0,1db ,0ah,1,-1db f,0ah,0,1db 26h,0ah,-2,4db 26h,0ah,1,0db !,0ah,1,0db ,0ah,0,1db g,0ah,0
10、,1db 22h,0ah,1,0db 7eh,0ah,0,-1db 7eh,0ah,0,-1db M,0ah,0,-1db 0,0ah,0,-1db M,0ah,0,-1db *,0ah,0,-1db v,0ah,0,-1db a,0ah,0,-1db 61h,0ah,0,-1db 61h,0ah,1,-2db 12 dup(a,0ah,0,1)db 30h,0ah,0,1db e,0ah,0,1db 5dh,0ah,2,-12db 36h,0ah,0,1db 5dh,0ah,1,-1db M,0ah,0,1db 5dh,0ah,1,-1db L,0ah,0,1db _,0ah,-3,0db
11、7 dup(_,0ah,0,1)db j,0ah,0,1db B,0ah,1,0db #,0ah,1,0db #,0ah,1,0db 7eh,0ah,-1,-7db 6 dup(,0ah,0,1)db 61h,0ah,1,-6db 6 dup(a,0ah,0,1)db 26h,0ah,-4,-3db 7 dup(&,0ah,1,0)db P,0ah,-4,0db 8,0ah,3,0db !,0ah,0,-6db ,0ah,0,1db 4 dup(,0ah,0,1)db ,0ah,0,2db 4 dup(,0ah,0,1)db ,0ah,-1,0db 27h,0ah,3,-12db 14 dup
12、(27h,0ah,0,1)db ,0ah,-1,0db _,0ah,0,-1显示名字的的过程如下面程序段所示,其中前三句是将汉字位型图的地址送给寄存 器,dh和dl分别表示汉字的其实的第一个点在屏幕上的行列的坐标,call指令用于子程 序调用,分别调用move_shape1和Amust_2子程序,进行读点和写点。lea di,dongmov dh,7mov dl,17call move_shape1call Amust_2在move_shape1子程序中,和Amust_2子程序中,char_cntl是指字符,pointerl表 示颜色,line_on1为行坐标,col_on1为列坐标。mov
13、char_cnt1,cxmov pointer1,dimov line_on1,dhmov col_on1,dl名字的显示效果如图4-2所示。C: IHDOSsyst e.32.cd. ezen &aaaaaJ&aaa8taa08tIf *,gaaaaaaa&aaaaaSe&J16& BLaaa8taaatt&j-.Mxr*xr*xr*KrjKrg fwrixmrnmx& 一7图4-2名字显示结果4.2颜色变化功能模块颜色变化功能实际上就是将名字用其他颜色重新写一遍,将原来的文字覆盖,因此可 实现文字颜色变化,本程序用的是重新定义数据段的方法,将每个字符重新定义,还有一 种方法是使用函数,将每
14、个字符代表字符颜色的部分同时加减一个数,便可实现变色功能。 文字变色的显示结果如图4-3所示。& 0q I P 6 &工 D 入?n &aaaaaJ8taaa&aa08tIf *,gaaaaaaa&aaaaaOe&J16& BfMVVfWp rViViFU*Laaa8taaatt,. rimmnwvg rfviviviwfu1&_j-C: INDOS.syst eB32,CMd. exetttt44444P 1 tt 4 &1 tt 4 &A. nrnrruw图4-3文字变色显示结果4.3条纹清屏与文字闪烁功能模块程序通过从右向左将名字显示覆盖,即达到清除屏幕显示的名字的效果。若将调用的 延迟
15、程序调的快一些,还可以达到文字闪烁的效果,在这里提一下,实现文字闪烁的功能也可以通过改变定义数据段中文字的属性实现,程序模块如下:Aeraseproc nearmovcx,char_cnt1movdi,pointer1movdh,line_on1movdl,col_on1Aerase_next:adddh,di+2adddl,di+3cmpdl,2jeAleftmovah,2int10hmovah,8int10hcmpal,40hjeAexitx2cmpal,02ahjeAexitx2jmpAexitx3Aexitx2:decAcount0jneAexitx3movAcount0,11Aexi
16、tx3:cmpAcount1,1jeAexit0moval,*movbl,03hjmpAexit7Aexit0:moval,*movbl,0Aexit7:pushcxmovcx,1movah,9int10hpopcxcmpAcount0,11jneAerase_nextadddi,4loopAerase_nextdeccol_on1movcx,char_cnt1movdi,pointer1movdh,line_on1movdl,col_on1Aleft:retAeraseendpcol_onl代表的是列坐标,每次循环经过deccol_onl就可以实现的列坐标自减1的功能,从而使得条纹字符从右向
17、左而来,经过除所有字符都变为“*”。显示效果如图4-4 所示。n &aaaaaJ&aaa8taa08tIf *,gaaaaaaa&aaaaaSe&J16& BM nj-njTirpLaaa8taaatt&j-.fu-nmmmrg& 一C: IHDOSsyst eai32.CMd. eze口 X=eee?eee?ee- 阳阳*阳阳*阳7jp-图4-4条纹清屏的显示效果4.4按Q/q键退出功能模块该设计要求在程序运行过程中,按下Q或q键能够推出程序,因此在程序中加入了退 出功能模块,首先判断有没有字符输入,没有就跳转到Aagain,若检测到字符输入,再把 输入字符与Q/q相比较,若不同,还是跳转到
18、Aagain执行循环,若是Q/q,则执行退出命 令,返回DOS。mov ah,0bh int21hcmp al,0 jzAagainmov ah,1 int 21h cmp al,q jz exit cmp al,Q jz exit jmp Aagain exit :mov ax,4c00hint 21h4.5延迟功能模块若显示程序没有了延时功能模块,那么所有的显示内容都将一闪而过,根本看不清, 因此,我们需要在程序中加入延迟程序,除此之外延迟程序可以用来控制汉字显示的快慢 以及刷屏的快慢速度,汉字显示的慢一些会有一笔一画写出来的效果,非常漂亮,刷屏快 一些则会有闪烁的效果出现。以下是延迟模块
19、的子程序。dly_qrtrprocnearpushcxpushdxmovdx,25dll:movcx,65530dl2:loopdl2decdxjnzdllpopdxpopcxretdly_qrtrendp5程序调试在WINXP操作系统下,在MFPCI98软件中编入80x86汇编程序,用MASM5.0编译, 进行汇编、连接、运行操作。对编译时出现的错误进行调试。我在编译时容易出现遗漏对应指令的错误,如进行CALL指令调用子程序时,容易遗 漏在CALL后的RET指令,导致运行时出现错误图形。还有在调用INT 10H功能时,读 光标,置光标还有显示字符串指令时,对寄存器AX,BX,DX,CX,BP
20、的数据传送应根据光标 起始位的行列坐标需求来确定数据的传送,才能达到要求的图形显示效果。6课程设计总结一拿到这个课程设计,我就被吓了一跳,因为要显示自己的名字,而我的名字有33画, 要用一个个字符组合显示出来,实在是一个庞大的工程量,这对我的耐心和我的毅力都是 一个很大的考验,虽然可以用别的文字替换,但我最终还是决定将自己的名字做出来,为 此,我花费了近四个小时。最终对自己做出的成果还算满意。经过两个周的课程设计,我认识到,课程设计是能真正让人学到实际应用的东西的一 门课程,收获比上几个星期的课还多。首先,要实现题目要求的功能,我们必须全心的投入其中,养成一种敢于钻研的习惯, 在把课程要求实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 霓虹灯 显示 程序 课程设计

链接地址:https://www.31ppt.com/p-5286035.html