霓虹灯显示程序设计2001.2012 06
- 格式:doc
- 大小:282.00 KB
- 文档页数:36
霓虹灯模拟显示课程设计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功能的调用实现清屏,和屏幕属性的设置。
霓虹灯显示程序设计………………………………………………………………………………………………..?设计内容简介 (1)霓虹灯显示程序设计 (2)设计任务及要求 (2)设计方案及程序流程图 (2)主程序流程图 (2)汉字显示闪烁子程序 (3)2.2.3 程序结果显示 (6)主要程序段与程序设计 (10)程序中用到的DOS功能调用 (10)程序中用到的BIOS内的中断功能 (10)主要程序段分析.........................................................................11 程序调试说明. (16)调试工具 (16)调试过程 (16)课程设计总结..............................................................................................17 参考文献. (1)8 附录源程序清单与注释 (19)霓虹灯是日常生活中最常见的灯饰,它装点了晚上,丰富了人们的生活。
通过汇编语言,实现霓虹灯的显示与闪烁,可以很方便的达到想要的效果。
汇编语言的INT 10号中断提供了设置显示模式、设置颜色模式、设置光标位置、按指定属性显示字符等功能号,可以显示汉字,同时也提供了初始化屏幕或滚屏等功能号,通过擦除子程序以及清屏子程序的配合运用,从而达到让汉字闪烁的功能。
正确编排汉字组成点的坐标、颜色以及ASCII码值,就可以得到想要显示的汉字,合理运用INT 10号中断的功能号,正确调用擦除子程序和清屏子程序就可以得到想要的闪烁效果。
:霓虹灯中断子程序闪烁显示I汇编语言是计算机提供给用户的最快最有效的语言,也是能过利用计算机所有硬件特性并能直接控制硬件的唯一语言,是操作系统等其它核心课程的必要先修课。
汇编语言的应用有很多,其中,图形文字的显示就是计算机的一项基本应用。
本次课程设计说明书在简单说明课题的硬件设施工作原理后,采用BIOS的 INT 10H 显示功能调用,设置为AH=0,AL=4的320×200彩色图像显示方式,利用AH=12写点功能,通过写ASCII 码,来组成文字,其中ASCII码的位置可由行数与列数的二维坐标确定,从定义的区域内开始,行向下自增1,列向右自减1,逐列写ASCII码。
引言我们知道汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,汇编语言对于硬件的控制具有独特的优势。
一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。
霓虹灯是日常生活中常见的灯饰,它装点了夜空,丰富了人们的生活,让夜间的城市更加美丽。
通过汇编语言的学习,我们通过汇编语言,可实现霓虹灯的控制与操作,实现其显示与闪烁,或者是其他的动态变化,从而可以很方便的达到理想效果。
INT 10H 是由BIOS 对屏幕及显示器所提供的服务程序,汇编语言的INT 10号中断提供了设置显示模式、设置颜色模式、设置光标位置、按指定属性显示字符等功能,可以显示汉字或图像,同时也提供了初始化屏幕或滚屏等功能号,通过擦除子程序以及清屏子程序的配合运用,可以达到让汉字或图像闪烁或运动的功能。
而文字的显示我们又可以通过取模软件轻松获得,这使得整个编译过程轻松了很多,同时可以让文字或图标的显示更加规范和多样化,达到霓虹灯多样变化的目的。
本次课程设计,研究的正是霓虹灯显示程序设计,我们可通过对INT 10号中断的功能调用实现,设计出我们想要的霓虹灯显示效果。
在整个设计过程,我们可以加强对课本知识的巩固,并借此拓展自己的知识面。
关键词:汇编语言霓虹灯中断字符运行调试1设计要求及分析1.1设计要求1)用汇编语言编写一个霓虹灯的模拟显示程序;2)在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;3)撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
1.2设计分析分析任务书要求可知:本次程序设计尽量在屏幕上显示自己的名字,也可以显示其他的文字。
[工学]霓虹灯广告屏装置plc程序设计[工学]霓虹灯广告屏装置plc程序设计 1 XXXXX学院课程设计说明书设计题目: 霓虹灯广告屏装置PLC程序设计学生姓名:XXXXX 学号:XXXXX 专业班级:XXXXX 指导教师:XXXXX 2012 年12 月12 日内容摘要酒香也怕巷子深,在保证产品质量的同时,广告也是抓住消费者眼球的一个重要手段。
为展现自己的形象和产品,一般都会采用霓虹灯广告屏来这种广告手法,这就涉及到如何去控制霓虹灯的亮灭、闪烁时间及流动方向等诸多控制问题,如何去快捷、可靠、简单的去控制,成为人们考虑的重点。
PLC是一种用程序来改变控制功能的工业控制计算机,这些霓虹灯的亮灭、闪烁时间及流动方向等均,可以通过PLC 来达到控制的要求,这篇课程设计就是根据实验要求,进行输入输出的I/O口估算,选择PLC型号、绘制流程图、设计梯形图、编写程序清单、调试程序、修改程序,最终实现课程要求。
在编写程序的时候用到了位移指令,是程序变得更加简洁。
基本实现对霓虹灯的正确、稳定地控制。
关键词:霓虹灯;广告;PLC控制;I/O口估算;位移指令目录第一章引言.......................................................................................1 1.1 霓虹灯广告屏装置PLC程序设计内容简介.............................................1 1.2 霓虹灯广告屏装置控制系统设计要求 (1)第二章硬件设计………………………………………………………………………2 2.1 霓虹灯广告屏装置的运行框图…………………………………………………2 2.2 确定I/O信号数量,选择PLC的类型……………………………………………4 2.3 I/O分配表…………………………………………………………………………4 2.4 I/O接线图…………………………………………………………………………6 第三章软件设计………………………………………………………………………7 3.1梯形图的设计………………………………………………………………………7 3.2霓虹灯广告屏装置PLC控制程序的梯形图及语句表……………………………7 第四章系统调试………………………………………………………………………8 结论……………………………………………………………………………………………………9 设计总结………………………………………………………………………………………………10 致谢……………………………………………………………………………………………………11 附录……………………………………………………………………………………………………12 1.梯形图………………………………………………………………………………………… 12 2.指令表…………………………………………………………………………………………25 参考文献………………………………………………………………………………………………32 1 第一章引言1.1 霓虹灯广告屏装置PLC程序设计内容简介该广告屏共有8 根灯管,24 只流水灯,每4 只灯为一组,如下图所示:图1-1 霓虹灯广告屏工作示意图1.2 霓虹灯广告屏装置控制系统设计要求(1)该广告屏中间8个霓虹灯字亮灭的时序为第1根亮→2亮→3亮……第8根亮,时间间隔均为1S,8个霓虹灯字全亮后,显示10S,再反过来从8→7……1顺序熄灭.全灭后,停亮2S,再从第8根开始亮起,顺序点亮8→7…1,时间间隔为1S,全亮后显示5S.再从1→2…8按1S间隔顺序熄灭.全熄灭后,停亮2S,再从头开始运行,周而复始。
信息工程学院《汇编语言程序设计》课程设计设计题目:霓虹灯的字符显示年级专业:组长:小组成员:指导教师:完成日期:霓虹灯的字符显示【摘要】:五光十色的霓虹灯对于我们并不陌生,但却从不知道是如何被设计和应用的,通过本学期学习的汇编语言,我组在本次课程设计中便尝试设计模拟霓虹灯显示,所以,设计内容是采用本学期所学的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汇编语言的学习与上机练习之后,要求本次课程设计的内容为:设计一个在计算机上的“霓虹灯”的模拟显示程序。
PLC霓虹灯闪烁控制系统设计PLC(可编程逻辑控制器)是一种用于控制工业自动化系统的计算机控制系统,可以通过编程来控制各种设备和机器。
在工业生产中,PLC控制系统通常用于控制生产线上的各种设备和机器,以实现自动化生产。
在本文中,我们将设计一个基于PLC的霓虹灯闪烁控制系统,用于展示PLC 在工业控制中的应用。
系统概述本系统的设计目的是通过PLC来控制一组霓虹灯进行闪烁显示。
用户可以通过PLC编程来控制灯的亮灭状态和闪烁频率,从而实现不同的显示效果。
系统主要由PLC、霓虹灯、电源和控制面板组成。
系统结构PLC作为系统的核心控制器,接收用户输入的指令并通过输出信号来控制霓虹灯的亮灭状态和闪烁频率。
霓虹灯通过接入PLC的数字输出端口来进行控制,电源提供系统所需的电力支持,控制面板用于用户操作与交互。
系统设计1.PLC选型:选择一款适合该应用场景的PLC控制器,如西门子、三菱等品牌的PLC。
PLC需要支持足够的输入输出端口以满足系统的需求。
2.硬件连接:将霓虹灯连接到PLC的数字输出端口,并接入电源。
控制面板通过线缆连接到PLC,用于用户输入指令。
3.软件编程:使用PLC编程软件进行程序的编写。
根据系统设计要求,编写控制程序实现灯的闪烁效果。
程序需要包括控制霓虹灯亮灭的逻辑和闪烁频率的控制。
4.测试调试:完成程序编写后,进行系统的测试与调试。
通过PLC仿真软件或实际硬件测试系统的功能是否符合设计要求。
5.系统优化:根据测试结果进行系统优化。
若系统功能不完善或存在问题,需要对程序进行修改并重新测试。
系统应用该系统可以应用于各种需要灯光显示的场景,如工业生产线上的指示灯、交通信号灯等。
通过PLC控制系统,可以实现远程控制和自动化管理,提高生产效率和可靠性。
总结本文设计了一个基于PLC的霓虹灯闪烁控制系统,通过PLC控制器实现了灯的亮灭和闪烁功能。
该系统可以广泛应用于工业生产中的各种场景,提高了生产的自动化水平和效率。
0121011360219 学号:计设课程目题“霓虹灯”的模拟显示院学自动化学院业专自动化专业级班自动化1002班姓名李志强指导教师张素文2013 01 10 日年月武汉理工大学《微机原理与接口技术》课程设计说明书课程设计任务书学生姓名:李志强专业班级:自动化1002班指导教师:张素文工作单位:自动化学院题目: “霓虹灯”的模拟显示初始条件:在屏幕中央以@字符显示一矩型,并以*及@将矩型内部交叉填满;然后再按相反的次序消失。
按Q退出程序。
要求完成的主要任务: 以及说明书撰写等具体要求)(包括课程设计工作量及其技术要求,(1)设计任务及要求分析(2)方案比较及认证说明(3)系统原理阐述(4)硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5)软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6)调试记录及结果分析(7)总结(8)参考资料(9)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月2日~1月3日:收集资料,方案选择1月4日~1月7日:整体流程,程序细节1月8日~1月10日:调试程序,报告撰写1月10:交设计报告,程序演示,答辩指导教师签名:年月日月年系主任(或责任教师)签名:武汉理工大学《微机原理与接口技术》课程设计说明书目录摘要 .................................................................. (1)1.设计意义与要求 (2)1.1设计意义 (2)1.2设计要求 (2)2方案论证 ..................................................................32.1方案比较 (3)2.2方案选择 (5)3系统原理阐述 (6)3.1设计思路 (6)3.2程序中的BIOS和DOS功能调用 (6)3.2.1 BIOS功能调用 ..................................................63.2.2 DOS功能调用 ...................................................73.3.程序模块 (7)4.软件思想与流程图 (10)4.1程序功能描述 (10)4.2 流程图 (10)5.调试记录及结果分析 (15)5.1 调试过程 (15)5.2结果记录 (15)5.3调试中出现的问题及解决方法 (17)6.心得体会 .................................................................187.参考文献 .................................................................198.附录源程序清单 (20)武汉理工大学《微机原理与接口技术》课程设计说明书摘要本次微机原理与接口技术课程设计是要设计一个“霓虹灯”的模拟显示程序。
课程设计题目霓虹灯显示程序设计学院自动化学院专业电气工程及其自动化班级姓名指导教师年 1 月9 日课程设计任务书学生姓名:专业班级:指导教师:陈静工作单位:自动化学院题目: 霓虹灯显示程序设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.用汇编语言编写一个霓虹灯的模拟显示程序;2.在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;3.撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:12月26日----- 12月28日查阅资料及方案设计12月29日----- 1月2日编程1月3日----- 1月7日调试程序1月8日----- 1月9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1设计任务 (2)2 方案设计 (2)2.1确定显示的文字 (2)2.2绘制程序流程图 (2)2.3分功能模块编写程序 (2)2.4程序调试与完善 (3)2.5程序中用到的BIOS内的中断功能 (3)2.6程序中用到的DOS功能调用 (4)3程序流程图 (5)3.1程序主流程图 (5)3.2子程序流程图 (5)4各模块程序编写 (9)4.1显示子模块程编写 (9)4.2 竖形条纹显示模块 (14)4.3 竖形条纹移动与清屏模块 (14)4.4 按“q”退出模块 (16)4.5 延迟功能模块 (17)5程序调试 (18)6 心得体会 (20)参考文献 (21)附录设计源程序 (22)本科生课程设计成绩评定表摘要霓虹灯应用已经非常广泛,在我们周围随处可见。
夜间商店用醒目的霓虹灯吸引顾客,或者利用霓虹灯变换色彩装饰夜色。
汇编语言功能强大,可以很方便地控制硬件设备,通过调用BIOS的INT 10H,设置显示模式、颜色模式、光标位置等,利用初始化屏幕或滚屏等功能,编写程序控制和操作霓虹灯,使其按照一定规律显示设计的图像或文字,达到满意的效果。
中文摘要本次设计主要完成了霓虹灯的显示界面大小、霓虹灯的颜色及代表霓虹灯的字符(@、*)的运动情况和霓虹灯的界面显示。
关键字:霓虹灯汇编语言程序设计主流程图和子流程图的设计I目录中文摘要 ................................................................. 错误!未定义书签。
第一章霓虹灯内容和功能.................................... 错误!未定义书签。
第二章霓虹灯设计 . (1)第一节霓虹灯设计思路、模块划分 ................................ 错误!未定义书签。
第二节霓虹灯主流程图 (2)第三节霓虹灯子流程图 ................................................... 错误!未定义书签。
第四节霓虹灯界面显示 (9)第五节霓虹灯程序源代码及注释 (10)第三章总结 (14)参考文献 (15)致谢 (16)II第一章霓虹灯内容和功能◆内容一、设置霓虹灯的显示界面大小(15行77列字符)屏幕大小(24行79列)二、设置控制霓虹灯字符的颜色三、“霓虹灯”的模拟显示步骤1、显示霓虹灯的上横杠@(从左到右);2、显示霓虹灯的下横杠@ (从右到左);3、显示霓虹灯的左横杠*@;4、显示霓虹灯的右横杠@*;5、字符(@*)分别从左右两边进入向中间移动,然后一起从中间向左右运动并且变换颜色;6、整个的模拟图形显示出来◆功能:霓虹灯模拟显示图形并且变换颜色第二章霓虹灯设计第一节霓虹灯设计思路、模块划分一、霓虹灯设计思路:写出主程序,根据主程序调用子程序完成霓虹灯显示。
二、霓虹灯课程设计的模块划分:主程序:设置寄存器的内容,调用子程序设置屏幕大小、屏幕显示的颜色和字符的运动情况。
子程序:1.clear_screen :清屏设置,屏幕大小在坐标点(0,0)和(24,79)之间。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.用汇编语言编写一个霓虹灯的模拟显示程序;2.在屏幕上动态显示”新年快乐”,按蓝—绿—黄---红---白闪烁变化,按“q”键退出;时间安排:1月3 日----- 1 月5 日查阅资料及方案设计1月5 日----- 1 月7 日编程1月7 日----- 1 月9 日调试程序1月9 日----- 1 月10 日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录1设计内容及要求 (1)2程序原理分析 (2)3主程序流程图 (3)4 程序主要模块功能分析 (4)4.1名字显示功能模块 (4)4.1.1 vga简介 (4)4.1.2 256色调色板 (4)4.1.3 视频显示模式设置 (4)4.3 文字显示 (6)4.4 清屏子程序 (8)4.5文字动画效果 (8)5程序调试 (10)6课程设计总结 (11)参考文献 (12)附录源程序代码 (13)1设计内容及要求要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.用汇编语言编写一个霓虹灯的模拟显示程序;2.在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;3.撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
2程序原理分析采用系统提供的BIOS功能调用中的int 10h显示功能,定义AH=0,AL=13将屏幕输出设置为320X200,256色图形方式。
利用AH=12些点功能,通过写ASCII码,来组成文字,其中ASCII码的位置可由行数和列数的二维坐标确定,由定义的区域内开始,行向下自增1,列向右自增1,逐列写ASCII码,然后编写程序段实现内存地址与屏幕坐标之间的联系。
吉林工程技术师范学院《微机原理综合课程设计》报告书设计题目:霓虹灯显示程序设计专业:计算机科学与技术班级:C1042学生姓名:孟垂参学号:29号指导教师:齐艳茹2012年6月信息工程学院目录第一章设计课题概述 (3)1.1 课程设计目的 (3)1.2 设计要求及内容 (3)第二章总体设计 (4)2.1 设计思想及实施方案 (4)2.1.1设计思想 (4)第三章硬件设计原理图及其说明 (5)第四章软件设计 (6)4.1 流程图及其说明 (6)4.1.2子程序流程图 (8)4.2主要程序段与程序设计分析 (11)4.2.1程序中用到的BIOS内的中断功能 (11)4.2.2程序中用到的DOS功能调用 (12)4.2.3主要程序段与程序设计分析 (12)4.3 源程序清单和注释 (16)第五章程序运行及结果 (31)5.1.调试工具 (31)5.2.调试过程与结果分析 (31)总结 (35)参考资料 (36)第一章设计课题概述1.1 课程设计目的(一)目的1.通过本教学环节的实践,巩固微机原理与接口技术的基本理论知识,强化软、硬件的设计和调试能力,培养学生独立分析与解决问题能力。
2.通过一定的文档要求,培养学生良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。
1.2 设计要求及内容(二)要求1.本教学环节要求以学生独立操作实践为主,教师指导为辅,在实践中不断学习,尤其要强调学生自主设计,独立思考。
2.课题的选定应考虑既要工作量适宜,又能较好地溶合所学的主要知识点。
(三)内容1.课题类型设计课题选用8086汇编语言实现微机系统及常用接口控制,主要包括屏幕处理、键盘控制、中断控制、时钟控制、图形及简易的动画演示及发声系统设计等方面的应用课题第二章总体设计2.1 设计思想及实施方案2.1.1设计思想1.用汇编语言编写一个霓虹灯的模拟显示程序;2.在屏幕上显示你的中文名字或其它文字,按某种规律闪烁变化,按“q”键退出;分析任务书要求可知:本次程序设计尽量在屏幕上显示自己的名字,也可以显示其他的文字。
文字要按某种方式闪烁,闪烁方式不限定于一种,也可以多种。
程序运行过程中,有Q或q输入,则程序结束;无字符输入或输入字符不是Q、q,则程序照常运行。
2.2.2 实施方案(1)文字显示可采用坐标纸写点的方式或者直接用字模软件取字符。
原本下载了一个字模软件,在其中输入文字就可以读取字模。
但是其字模编码是用于LED 中的,并不能直接在本程序中调用显示文字。
因此,最后采用用坐标纸写点的方式,虽然写点的工作量较大,但是便于理解,容易修改。
(2)用相同字体但不同颜色的字符去覆盖对应的字符,只能起到变色的作用。
要实现闪烁还要把每一个点的颜色属性最高位设为1。
(3)退出程序块中,在判断输入字符是否为Q或q之前必须加一段有没有字符输入的程序。
否则,程序运行到判断字符这里,运行窗口就会等在那里,直到输入字符才能继续运行。
这样每次运行到这里程序就会等着,实现不了霓虹灯的连续闪烁。
第三章硬件设计原理图及其说明汇编语言是用指令的助记符、符号地址、标号等书写程序的语言,实际上是机器语言的一种符号表示,主要特点是可以使用助记符来表示机器指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。
汇编语言是能够利用计算机所有硬件特性进而直接控制硬件的唯一语言。
汇编语言的使用范围很广,文字显示只是其中很简单的一项。
本次课程设计采用DOS和BIOS功能调用,采用25×80的彩色图像显示方式。
先在坐标纸上用ASCII码所对应的字符拼出自己的名字,并设定ASCII码的颜色值。
ASCII码对应字符的位置由行数与列数的二维坐标确定。
其中行向上则减,向下则增;列向左则减,向右则增。
程序在数据段中写出所要显示的我名字的位形图,每行数据段定义组成文字的一个点。
其中包含组成文字的字符、颜色、横坐标、纵坐标。
文字的变色是通过同一个字的不同颜色版本去覆盖当前的版本以及清屏、擦除程序实现的。
文字的闪烁则是通过将颜色属性的八位二进制数的最高位置一实现的。
通过比较输入字符与0、Q或q的大小,来实现退出的功能。
第四章软件设计4.1 流程图及其说明4.1.1主程序流程图流程思路:数据段初始化→调用汉字显示程序,先显示汉字”yu”,再显示汉字”yu1”→调用竖条纹显示程序,显示运动的条纹→判断是否有字符输入,没有的话,继续往下执行→有字符输入时,判断是否为“Q”或“q”→不为“Q”或“q”时,转到执行程序段Aagain1→为“Q”或“q”时,退出程序。
主程序流程图如下:图1 霓虹灯显示主程序开始数据段初始 YY N N 调用条纹显示子程序,显示运动的条纹 调用汉字显示子程序,先后显示“xiang ”,“xiang1”调用条纹显示子程序,显示运动的条纹 结束 输入字符是否是“Q ”、“q ”? 调用汉字显示子程序,先后显示“jia ”,“jia1” 调用条纹显示子程序,显示运动的条纹调用汉字显示程序,先后显示“yu ”,“yu1” 判断是否有字符输入?4.1.2子程序流程图本程序显示的汉字为自己的名字,名字中的每个字都用不同颜色的版本写两次,然后竖形条纹扫过,条纹扫过时汉字被覆盖,条纹扫过后开始显示下一个文字,然后条纹再扫过,一直这样循环。
因此,子程序有汉字显示子程序、竖形条纹显示子程序、擦除子程序,对应的流程图分别如图2、3、4所示。
图2 汉字显示子程序流程图开始 YN CX 中内容自减1 寄存器出栈 判断CX 中内容是否为0? CX 出栈,保存循环次数在指定坐标处写第一个点 CX 入栈 保存组成点的基本信息 CX 寄存器清零 寄存器入栈 结束图3 竖形条纹显示子程序 寄存器入栈 CX 寄存器清零 保存组成点的基本信息 结束 寄存器出栈 将字符写11次判断指定坐标处字符是否为*? 判断指定坐标处字符是否为@? CX 出栈,保存循环次数 在指定坐标处写第一个点 判断是否到达屏幕最左端? CX 寄存器入栈 Y N Y N N Y 开始图4 擦除子程序 N N N Y Y 结束保存点的基本信息 列坐标dl 自减1 将字符改为* 将字符写11个 判断指定位置处字符是否为*? 判断指定位置处字符是否为@? 判断是否到达屏幕最左端? 保存组成点的基本信息 开始4.2主要程序段与程序设计分析4.2.1程序中用到的BIOS内的中断功能(1)02H号功能调用功能:用文本坐标下设置光标位置入口参数:AH=02HBH=显示页码DH=行(Y坐标)DL=列(X坐标)出口参数:无(2)08H号功能调用功能:读光标处的字符及其属性入口参数:AH=08HBH=显示页码出口参数:AH=属性AL=字符(3)09H号功能调用功能:在当前光标处按指定属性显示字符入口参数:AH=09HAL=字符BH=显示页码BL=属性(文本模式)或颜色(图形模式) CX=重复输出字符的次数出口参数:无(4)0FH号功能调用功能:读取显示器模式入口参数:AH=0FH出口参数:AH=屏幕字符的列数AL=显示模式BH=页码4.2.2程序中用到的DOS功能调用(1)01H号功能调用功能:从键盘输入一个字符输入参数:无输出参数:AL=ASCII码(2)0BH号功能调用功能:检查标准输入设备上是否有字符可读,该输入操作可被重定向输入参数:AH=0BH输出参数:AL=00H——无字符可读;FFH——有字符可读(3)4CH号功能调用功能:返回操作系统4CH调用:MOV AH,4CHINT 21H4.2.3主要程序段与程序设计分析(1)数据段本课程设计源程序中的汉字运用写点的方式实现,在数据段的定义中,由组成汉字的点的ASCII码值、颜色、X坐标、Y坐标构成。
例如:yu db 34db 2ah,8ah,0,0db 2ah,8ah,-5,1db 2ah,8ah,4,0db 2ah,8ah,-5,1这段程序是第一个汉字“余”的位形图,其中2ah为组成“余”字第一个点的ASCII码值,在屏幕上显示为*;8ah为颜色属性,为淡绿色且闪烁;(0,0)为这个点的坐标,第一个为行坐标,第二个为列坐标。
这个点为“余”字组成点的基准坐标,其它点的坐标设置与此点类似。
坐标设置按照矩阵的形式,向上则行自减1,向下则行自增1,向左则列自减1,向右则列自增1。
每写出一个点后,该点的坐标变回基准坐标(0,0)。
本程序中写点是按照从左到右、从上到下的顺序写的,直至写完所有的点。
(2)写点程序段首先将汉字位形图的地址送给寄存器,程序如下:lea di,yumov dh,17mov dl,6其中,dh,dl分别对应于所写汉字第一个点在屏幕上显示时的行、列坐标。
然后读取组成点的信息,程序段如下:mov char_cnt1,cxmov pointer1,dimov line_on1,dhmov col_on1,dlmov char,cx程序中char_cnt1指字符,pointer1指颜色,line_on1指行坐标,col_on1指列坐标。
写点的程序在子程序Amust_2,Amust_21中类似,程序段如下:mov cx,char_cnt1mov di,pointer1mov dh,line_on1mov dl,col_on1Aplot_next0:add dh,[di+2]add dl,[di+3]mov ah,2int10hmov al,[di]mov bl,[di+1]push cxmov cx,1mov ah,09int10hpop cxadd di,4应当说明的是,程序中cx寄存器入栈又出栈。
入栈是为了保存cx中的数值,将寄存器cx空出来,作为计数用,随即出栈的目的是重新将已经保存的cx中的值保存到cx中,作为循环次数用。
程序中到int 10h为止都是写点的程序。
add di,4是为写下一个点做准备,直至写完。
(3)输入Q、q退出程序mov ah,0bhint21hcmp al,0jz Aagain1mov ah,1int21hcmp al,'q'jz exitcmp al,'Q'jz exitjmp Aagain1exit : mov ax,4c00hint21h本段程序实现了首先判断有没有字符输入,有字符输入再判断是否为Q、q,进而判断是否退出。
若没有jmp Aagain1这条语句,输入的字符不是Q、q程序也会结束。
(4)竖形条纹的显示程序cmp al,40hje Aexitx0cmp al,02ahje Aexitx0jmp Aexitx1Aexitx0: dec Acount0jne Aplot_nextmov Acount0,11数据段中竖形条纹只定义了6个点,为了能够有足够的宽度将汉字覆盖,因此要将db 40h,05h,1,0与db 02ah,05h,-1,0两个点重复写11次,形成够宽的条纹。