汇编语言霓虹灯字符显示
霓虹灯模拟显示课程设计

霓虹灯模拟显示课程设计1.设计任务及要求分析本次课程设计要求用汇编语言设计“霓虹灯”模拟显示,需要实现的功能如下:1、按下b/B键,分六笔快速画出矩形及其两条对角线;2、按下y/Y 键,流水灯从左到右依次点亮,然后一次熄灭;3、按下q/Q键,退出程序。
分析本设计不需要硬件设备,在微机原理实验集成环境MF2KP中编写程序,调用DOS命令和BIOS命令,并用合适的字符代替霓虹灯来实现。
1方案论证2.1方案一我们可以采用编写延时子程序的方法来实现延时,这种方法的主要原理是运用计算机相应每一条的时间积累。
程序如下:push bxpush cxmov cx ,xx ;输入正数A1:mov bx,xx ;输入正数A2:dec bxJnz A1Loop A2pop cxpop bx此方案的原理是运用循环指令来进行,主要通过设置cx和bx的值来进行复循环,从而达到时间的积累即延时。
2.2方案二方案二:运用DOS功能调用。
采用21H来中断调用,功能号为AH=2CH,完成的功能是设置时间,DH的值变换一次是0.01秒,这样通过设置DH的值来设置时间的延时。
2.3方案比较两种方案在理论上都是可行的,但是课程设计任务在时间要求上不是很严格只要区分快慢的大概效果既可,故选择方案一。
3设计原理3.1设计思想本次课程设计主要中显示图案是通过显示单个字符逐步实现的,通过移动光标可以改变字符输出的位置,位置的改变又是通过宏定义定义了一个程序段用于改变光标,设计了两个变量分别为光标在屏幕上的行和列坐标,把已经设计好了的图案的行列坐标分别定义在数据段的行列数据组里,用指针自加的方式进行连续调用显示。
在显示中插入延时程序控制显示的效果。
本次课程设计设计了二个延时程序分别满足二种不同的延时需要。
延时程序是通过LOOP循环来实现的,可以改变CX的值来改变延时的长短。
本次课设还涉及到清屏功能,故设计了一个清屏子程序,通过BIOS功能的调用实现清屏,和屏幕属性的设置。
霓虹灯显示程序设计

引言我们知道汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,汇编语言对于硬件的控制具有独特的优势。
一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。
霓虹灯是日常生活中常见的灯饰,它装点了夜空,丰富了人们的生活,让夜间的城市更加美丽。
通过汇编语言的学习,我们通过汇编语言,可实现霓虹灯的控制与操作,实现其显示与闪烁,或者是其他的动态变化,从而可以很方便的达到理想效果。
INT 10H 是由BIOS 对屏幕及显示器所提供的服务程序,汇编语言的INT 10号中断提供了设置显示模式、设置颜色模式、设置光标位置、按指定属性显示字符等功能,可以显示汉字或图像,同时也提供了初始化屏幕或滚屏等功能号,通过擦除子程序以及清屏子程序的配合运用,可以达到让汉字或图像闪烁或运动的功能。
而文字的显示我们又可以通过取模软件轻松获得,这使得整个编译过程轻松了很多,同时可以让文字或图标的显示更加规范和多样化,达到霓虹灯多样变化的目的。
本次课程设计,研究的正是霓虹灯显示程序设计,我们可通过对INT 10号中断的功能调用实现,设计出我们想要的霓虹灯显示效果。
在整个设计过程,我们可以加强对课本知识的巩固,并借此拓展自己的知识面。
关键词:汇编语言霓虹灯中断字符运行调试1设计要求及分析1.1设计要求1)用汇编语言编写一个霓虹灯的模拟显示程序;2)在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;3)撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
1.2设计分析分析任务书要求可知:本次程序设计尽量在屏幕上显示自己的名字,也可以显示其他的文字。
汇编语言课程设计

沈阳大学2.3 MASM的介绍MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。
它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。
2.4总体设计功能本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。
由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。
定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。
视频显示程序设计:一般由DOS 或BIOS调用来完成。
有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。
用INT 10H中断即可建立某种显示方式。
用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。
键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。
2.5详细功能设计2.5.1主程序功能主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。
汇编代码实现键控彩灯系统

汇编代码实现键控彩灯系统使用汇编语言编写程序,设计一个用8051 单片机控制的循环彩灯控制系统要求:1、能输出4 种花型,并能由人工进行花型的切换。
可以使用按键,也可以使用拨动开关来实现切换,方法不限。
2、循环彩灯的循环速度可调。
3、按键要求:(1)启动/暂停。
按动一次启动,再按一次暂停。
是一个双态转换键。
(2)花型变化。
按一次,立即停止当前花型的显示,转换为下一种花型。
4 种花型可以循环切换。
(3)速度+。
按键一次,速度略加快一点。
(4)速度-。
按键一次,速度略减慢一点。
4、在LED 显示器上显示相应的花型号。
代码ORG 0000HJMP STARTORG 0003HJMP X0_INTORG 000BHJMP T0_INTORG 0013HJMP X1_INT;---------------------------------START:MOV TMOD, #51H ;/*01010001 T1 计数,T0 定时*/MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHzMOV TL0, #LOW (65536 - 50000)MOV TH1, #0MOV TL1, #0SETB TR0SETB TR1SETB IT0SETB IT1MOV IE, #10000111BMOV IP, #00000101BMOV R7, #20MOV 30H, #20MOV 31H, #0MOV 32H, #0MOV P2, 31HINC P2SJMP $;---------------------------------T0_INT: ;50ms 执行一次MOV TL0, #LOW (65536 - 50000) ;重新写入初始值MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHz;------------------JIA:JB P3.0, JIANDEC 30H ; 加速MOV A, 30HJNZ XXX ;不能让它为0INC 30HXXX:; JNBP3.0, $;------------------JIAN:JB P3.1, XIANSHIINC 30HMOV A, 30HSUBB A, #80JC CCCMOV 30H, #80CCC:; JNB P3.1, $;------------------ XIANSHI:DJNZ R7, T0_ENDMOV R7, 30HINC 32HANL 32H, #7;------------------ MOV A, 31HANL A, #3RL ARL ARL AADD A, 32HMOV DPTR,。
用汇编语言实现闪烁文字

1.设计任务用汇编语言实现闪烁文字的效果2.原理2.1题目功能分析(1)屏幕提示输入字符串;(2)输入完成后,字符动画显示颜色变化;(3)单击“Q”或“q”键退出程序。
2.2算法说明(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;(2)颜色变化则通过INT 10H的09H功能循环调用实现;(3)退出功能通过将输入‘Q’和‘q’与其ASCII比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。
2.3.流程图开始获取字符设置字符串颜色设置起始位置是否输出?输出字符串N N次数已到?延迟Y结束图1字符串闪烁流程图3.程序说明3.1提示输入字符串显示功能实现屏幕提示输入字符串主要运用中断INT 21H的0A H功能,输入后回车则完成字符串在特定位置的显示。
lea dx,bufmov ah,0ahint 21hmov bx,2 ;mov di,0B1:mov al,buf[bx]cmp al,13 ;是否是回车?je AG1mov buff1[di],alinc bxinc dijmp B1AG1:mov ah,0mov al,2int 10h;OTHER:mov cx,0ffffh;AG:mov dh,7 ;hangmov dl,35 ;liemov ah,2mov bh,0 ;int 10h ;lea dx,buff1mov ah,9int 21h ;mov dh,7mov dl,35mov ah,2mov bh,0int 10h ;lea dx,buff2mov ah,9int 21h;sub cx,1 ;jnz AG ;3.2颜色变化功能实现颜色变化功能实现相当于对字符串属性定义,表现出颜色差别,然后循环调用并插入延时。
以下程序效果是三种颜色闪烁,其中aaa1表示白色,aaa2表示黑色,aaa3表示绿色,aaa4表示红色,aaa5表示紫色。
往复调用彩色和黑色,在各种颜色变换之间插入黑色即可实现彩色间断闪烁的效果。
汇编语言霓虹灯字符显示

设 计 题 目:
年 级 专 业:
组
长:
小 组 成 员:
指 导 教 师:
完 成 日 期:
霓虹灯的字符显示
霓虹灯的字符显示
【摘 要】: 五光十色的霓虹灯对于我们并不陌生,但却从不知道是如何被设计和应用的,通过
本学期学习的汇编语言,我组在本次课程设计中便尝试设计模拟霓虹灯显示,所以,设 计内容是采用本学期所学的 8086 汇编语言设计一个运行于计算机的“霓虹灯”的模拟 显示程序。霓虹灯的主题为英文单词“HELLO”,在白色单词的基础上,红色不断的在每 个英文字母上循环闪烁。并且,键盘数字键“1”和“2”均可控制不同的闪烁方式,按 键“ESC”可控制退出程序运行。这就要求了该霓虹灯能够动态的进行变化,最后,按 键“esc”退出,以免程序一直运行导致电脑死机。该霓虹灯模拟显示程序主要是进行 程序的循环、子程序的调用,来完成这一动态变化效果。
3.2
调用各程序流程图.....................................................................................- 5 -
图 3-2 为部分个程序调用流程图.....................................................................................- 6 4 算法中涉及的知识点...................................................................................................- 7 5 设计用的计算机环境...................................................................................................- 8 6 运行效果图...................................................................................................................- 9 7 源代码.........................................................................................................................- 10 结论...................................................................................................................................- 13 参 考 文 献.....................................................................................................................- 14 致 谢...........................................................................................................................- 15 -
计算机霓虹灯模拟显示软件设计

课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 计算机霓虹灯模拟显示软件设计初始条件:1.用于调试程序的IBM兼容PC机一台;2.安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;3.EDIT 等文本编辑器输入80x86汇编程序,MASM 5.0编译及链接程序。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.使用汇编语言设计一个运行于计算机的霓虹灯模拟显示软件,软件应实现模拟显示霓虹灯,要求至少有一种动态显示效果。
可以附加显示其它信息和添加多种动态显示效果。
2.说明书撰写格式应符合《课程设计说明书统一书写格式》。
时间安排:1.程序框图设计,3天2.编程,4天3.调试,3天4.编写设计报告,4天指导教师签名:年月日系主任(或责任教师)签名:年月日摘要霓虹灯是日常生活中常见的灯饰,它装点了夜空,丰富了人们的生活。
通过汇编语言的学习,可实现霓虹灯的控制与操作,实现其显示与闪烁,或者是其他的动态变化,从而可以很方便的达到理想效果。
本设计通过对字符进行坐标形式的定义再调用BIOS使之顺序显示,通过擦除子程序以及清屏子程序的配合运用,可以达到让汉字或图像闪烁或运动的功能。
最后通过按键‘Q/q’来实现程序的结束。
关键字:霓虹灯汇编语言子程序目录1设计任务原理及方案认证 (1)1.1设计任务 (1)1.2设计原理分析 (1)1.3方案比较及认证 (1)2程序流程图 (2)2.1主程序流程图 (2)2.2 子程序流程图 (3)2.2.1字符显示程序结构流程图 (3)2.2.2清屏程序结构流程图 (4)3主要程序段与程序设计分析 (6)3.1程序中用到的BIOS内的中断功能 (6)3.2程序中用到的DOS功能调用 (7)3.3主要程序段与程序设计分析 (8)3.3.1数据段程序 (8)3.3.2写点程序段 (8)3.3.3 输入Q、q退出程序 (10)3.3.4 竖形条纹的显示程序 (11)3.3.5条纹清屏与文字闪烁功能程序 (12)3.3.6延迟功能程序 (13)4程序调试 (14)4.1.调试工具 (14)4.2.调试过程与结果分析 (14)5 心得体会 (15)参考文献 (16)附录一源程序和程序注释 (17)本科生课程设计成绩评定表................................... 错误!未定义书签。
汇编语言课程设计模版

汇编语⾔课程设计模版中⽂摘要中⽂摘要本次设计主要完成了霓虹灯的显⽰界⾯⼤⼩、霓虹灯的颜⾊及代表霓虹灯的字符(@、*)的运动情况和霓虹灯的界⾯显⽰。
关键字:霓虹灯汇编语⾔程序设计主流程图和⼦流程图的设计I⽬录⽬录中⽂摘要 .............................................................................................I 第⼀章霓虹灯内容和功能 ................................ 错误!未定义书签。
第⼆章霓虹灯设计. (1)第⼀节霓虹灯设计思路、模块划分 .............................. 错误!未定义书签。
第⼆节霓虹灯主流程图 (2)第三节霓虹灯⼦流程图 .................................................. 错误!未定义书签。
第四节霓虹灯界⾯显⽰ (6)第五节霓虹灯程序源代码及注释 (7)第三章总结 (12)致谢 (13)参考⽂献 (14)II第⼀章霓虹灯内容和功能第⼀章霓虹灯内容和功能◆内容⼀、设置霓虹灯的显⽰界⾯⼤⼩(15⾏77列字符)屏幕⼤⼩(24⾏79列)⼆、设置控制霓虹灯字符的颜⾊三、“霓虹灯”的模拟显⽰步骤1、显⽰霓虹灯的上横杠@(从左到右);2、显⽰霓虹灯的下横杠@ (从右到左);3、显⽰霓虹灯的左横杠*@;4、显⽰霓虹灯的右横杠@*;5、字符(@*)分别从左右两边进⼊向中间移动,然后⼀起从中间向左右运动并且变换颜⾊;6、整个的模拟图形显⽰出来◆功能:霓虹灯模拟显⽰图形并且变换颜⾊第⼆章霓虹灯设计第⼀节霓虹灯设计思路、模块划分⼀、霓虹灯设计思路:写出主程序,根据主程序调⽤⼦程序完成霓虹灯显⽰。
⼆、霓虹灯课程设计的模块划分:主程序:设置寄存器的内容,调⽤⼦程序设置屏幕⼤⼩、屏幕显⽰的颜⾊和字符的运动情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院《汇编语言程序设计》课程设计设计题目:霓虹灯的字符显示年级专业:组长:小组成员:指导教师:完成日期:霓虹灯的字符显示【摘要】:五光十色的霓虹灯对于我们并不陌生,但却从不知道是如何被设计和应用的,通过本学期学习的汇编语言,我组在本次课程设计中便尝试设计模拟霓虹灯显示,所以,设计内容是采用本学期所学的8086汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示程序。
霓虹灯的主题为英文单词“HELLO”,在白色单词的基础上,红色不断的在每个英文字母上循环闪烁。
并且,键盘数字键“1”和“2”均可控制不同的闪烁方式,按键“ESC”可控制退出程序运行。
这就要求了该霓虹灯能够动态的进行变化,最后,按键“esc”退出,以免程序一直运行导致电脑死机。
该霓虹灯模拟显示程序主要是进行程序的循环、子程序的调用,来完成这一动态变化效果。
【Abstract】Colorful neon no stranger to us, but they never know how the design and application, through the semester to learn assembly language, I team during the course design, the design will try to simulate neon display, so the design content is learned this semester using 8086 assembly language running on the computer to design a "neon" analog display program. Neon theme for the English word "HELLO", in white the word, based on constantly in the red letters on each cycle of flicker. Also, the keyboard number keys "1" and "2" can be controlled flashes of different ways, the key "ESC" to control exit program is running. This requires that the neon can be changed dynamically, and finally, the key "esc" to exit, so as not to cause the computer to crash the program has been run. The neon analog display program is primarily one of the program cycle, a subroutine call, to complete this dynamic effect.关键词:霓虹灯;汇编语言;子程序;循环目录1 设计内容与要求..................................................... - 1 -1.1 设计要求.............................................................................................................. - 1 -1.2 实现的主要功能.................................................................................................. - 1 -2 需求分析........................................................... - 2 -2.1 子程序的设计...................................................................................................... - 2 -2.2 循环体的设计...................................................................................................... - 2 -3 总体流程图设计..................................................... - 5 -3.1 总体流程图.......................................................................................................... - 5 -3.2调用各程序流程图.................................................................................... - 6 -图3-2为部分个程序调用流程图.......................................... - 6 -4 算法中涉及的知识点................................................. - 7 -5 设计用的计算机环境................................................. - 8 -6 运行效果图......................................................... - 9 -7 源代码............................................................ - 10 -结论................................................................. - 13 -参考文献.......................................................... - 14 -致谢............................................................. - 15 -1 设计内容与要求1.1 设计要求在经过一个学期8086汇编语言的学习与上机练习之后,要求本次课程设计的内容为:设计一个在计算机上的“霓虹灯”的模拟显示程序。
该霓虹灯的设计要求如下:(1)霓虹灯主题为英文单词,要求主题立意新颖大方、简洁美观、可实用性强。
(2)在单一颜色的基础上,有其他颜色的动态变化。
(3)键盘相应的数字键可以控制该霓虹灯的闪烁方式,以带来不同的视觉效果。
(4)设置可以退出成序运行界面的控制键,以免造成电脑死机的现象发生。
(5) 应用8086汇编语言进行程序设计。
(6)保证代码的健壮、简洁性。
1.2 实现的主要功能根据.课程设计的选题和基本要求,我组经过确定立意,研讨设计,设计的霓虹灯的字符显示的代码主要实现功能如下:(1)霓虹灯主题为英文字母“HELLO”.(2)白色为本色,即主题色,另选择红色作为闪烁颜色。
(3)可以通过键盘数字键“1”“2控制该霓虹灯的不同闪烁方式,带来不同的视觉效果。
(4)可以通过“ESC”键控制正在运行的程序的退出,避免程序一直运行而造成的电脑死机现象。
(5)代码简便易行,语句简明易懂。
2 需求分析根据对问题的分析理解,要求对如下内容进行全面掌握:2.1 子程序的设计本程序设计完成的关键在于正确的使用子程序与堆栈的循环调用。
首先在程序的开始要定义附加段ES、堆栈段SS、数据段DS、以及代码段CS。
要求为保证程序的完整性和提高可读性,最好附加段ES也不要省略。
然后将已定义好的数据压入堆栈,从堆栈中依次的弹出内容并显示,由于堆栈的特点是先入后出,正好可以实现数据段的输出显示,当然,具体按代码而定,在编程过程中可设置一个计数器,统计循环次数计数器。
其次是进行子程序的调用,子程序在汇编语言乃至高级语言中都有着广泛的应用,对子程序的充分学习和理解运用,可以实现整体代码的模块化,使复杂的程序结构化,从而达到代码的复用。
简化编程的目的。
本代码定义了Clear 子程序,并用于程序开始执行时清屏幕,以及保护寄存器,由于在程序运行过程中,要涉及多个子程序的调用,因此过程比较复杂,通过使用CMP、JMP、JE、JZ、RET等命令进行跳转,不断的进行子程序循环调用,而各个子程序的功能有不尽相同,从而达到“一劳永逸”的理想结果。
2.2 循环体的设计在实际应用中,常常会碰到某一段程序需要重复执行,当然,这里也不例外,当通过键盘输入数字“1”时,会显示“HELLO”的白色字体上开始从左向右闪烁红色灯光,这就需要设置一个红色闪烁的循环程序来实现这一效果,设置不断的循环移位程序如下:again1:mov buff[si],15add si,2cmp si,9jle aemov bx,si以上代码是控制循环移位的动态效果。
随即:jmp show 调用show程序如下:show:MOV BH,0MOV CX,5MOV DH,5MOV DL,20 ;显示位置从(5, 20)开始mov BP,seg BUFFmov es,bpmov bp,offset BUFFmov BUFF[bx],12;lea bp,BUFFMOV AL,2MOV AH,13HINT 10H ;调用中断10H之功能13Hmov ah,07hint 21hcmp al,'1'je again1cmp al,'2'je again2CMP AL,KBEsc ;若按键不是Escape,则继续循环je exitjmp again1通过该段代码实现在循环移动中闪烁显示色为红色,并把该功能有键盘数字键“1”来控制,即达到了预定的效果。
同理,设置“2”的控制键循环体,不同的是,按下数字键2后,闪烁方向改变,变为从右至左的循环闪烁,因此编写代码如下:again2:mov BUFF[si],15sub si,2cmp si,9jle aeMOV SI,1cmp si,1jge a4mov si,9mov bx,sijmp show;MOV BUFF[bx],4这样设置的循环体就简单的解决了键盘控制问题,达到闪烁变化与控制效果。