北交微机原理课设-动画程序设计(小鸟和小车)概要
- 格式:doc
- 大小:360.50 KB
- 文档页数:14
《微机原理与接口技术》复习参考资料第一章概述一、计算机中的数制1、无符号数的表示方法:2、各种数制之间的转换3、无符号数二进制的运算4、二进制数的逻辑运算特点:按位运算,无进借位与运算或运算非运算异或运算二、计算机中的码制(重点★)三、信息的编码1、十进制数的二进制数编码2、字符的编码第二章第一节、微机的结构1、计算机的经典结构——冯.诺依曼结构(1)计算机由运算器、控制器、输入设备和输出设备五大部分组成(运算器和控制器又称为CPU)(2)数据和程序以二进制代码形式不加区分地存放在存储器总,存放位置由地址指定,数制为二进制。
(3)控制器是根据存放在存储器中的指令序列来操作的,并由一个程序计数器控制指令的执行。
3、系统总线的分类(1)数据总线(Data Bus),它决定了处理器的字长。
(2)地址总线(Address Bus),它决定系统所能直接访问的存储器空间的容量。
(3)控制总线(Control Bus)第二节、8086微处理器1、8086是一种单片微处理芯片,其内部数据总线的宽度是16位,外部数据总线宽度也是16位,片内包含有控制计算机所有功能的各种电路。
8086地址总线的宽度为20位,有1MB(220)寻址空间。
2、8086CPU由总线接口部件BIU和执行部件EU组成。
BIU和EU的操作是异步的,为8086取指令和执行指令的并行操作体统硬件支持。
3、寄存器结构(重点★)8086微处理器包含有13个16位的寄存器和9位标志位。
4个通用寄存器(AX,BX,CX,DX)4个段寄存器(CS,DS,SS,ES)4个指针和变址寄存器(SP,BP,SI,DI)指令指针(IP)1)、通用寄存器(1)8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:●AX →AH,AL●BX→BH,BL●CX→CH,CL●DX→DH,DL常用来存放参与运算的操作数或运算结果(2)数据寄存器特有的习惯用法见教材二十七页2)、指针和变址寄存器。
交通大学计算机控制课程设计报告交通大学计算机控制课程设计报告一、课程设计题目本次计算机控制课程设计题目为“小车避障控制系统的设计与实现”。
二、设计内容及分析本次课程设计的主要内容为设计和实现一个小车避障控制系统。
通过该系统,小车可以自动避开路上遇到的障碍物,并保持稳定的行进状态。
在这个避障控制系统中,会需要使用到多个传感器模块,如超声波传感器、红外线传感器等,以实现对周围环境的检测。
同时,还需要采用电机驱动模块来控制小车的行进方向和速度。
在本次课程设计中,我们可以利用现有的开源硬件平台,如Arduino、Raspberry Pi等,来实现整个系统的硬件搭建。
同时,还需要编写相应的控制程序,完成对小车的避障控制。
三、设计步骤本次课程设计的设计步骤如下:1. 硬件搭建:根据设计需求,按照一定的硬件连接方式,将各个传感器模块、电机驱动模块等连接到主控板上,并对各个模块进行初始化、编程设置等操作。
2. 传感器模块检测:通过代码编写和调试,对各个传感器模块进行检测和校准,以确保其能够准确地检测到周围环境。
3. 控制算法设计:根据传感器模块的检测信号,设计相应的控制算法,以完成小车的避障控制,并保持稳定的行进状态。
在该过程中,还需要考虑到小车突然停止或碰到障碍物等情况的处理方式。
4. 控制程序编写:根据控制算法的需求,编写相应的控制程序,并进行调试和测试。
完成后,将程序下载到主控板上,开始进行实验测试。
5. 实验测试:通过对小车的实验测试,验证控制程序的正确性,调整和优化相应的参数,以达到最好的避障控制效果。
四、设计成果通过本次课程设计,我们可以掌握以下技能:1. 熟练掌握硬件连接及初始化的操作方法。
2. 能够编写传感器模块的检测程序,并对其进行校准与调试。
3. 能够设计避障控制算法,并将其转化为相应的控制程序。
4. 能够使用开源硬件平台,如Arduino、Raspberry Pi等,来实现控制系统的硬件搭建和编程。
苏科版三年级信息技术18《制作运动的小车》说课稿一. 教材分析《制作运动的小车》这一课是苏科版三年级信息技术课程中的一节重要内容。
通过本节课的学习,学生将掌握用Scratch软件制作简单的小车动画的基本技能。
教材以生动有趣的方式,让学生在学习过程中体验到编程的乐趣,培养学生的创新意识和动手能力。
二. 学情分析针对三年级学生的认知特点,他们对新鲜事物充满好奇,具有较强的动手能力和模仿能力,但注意力容易分散,需要通过趣味性的教学手段来激发学习兴趣。
此外,学生在此之前已经学习了Scratch软件的基本操作,对本节课的内容有一定的认知基础。
三. 说教学目标1.知识与技能目标:学生能够运用Scratch软件制作简单的小车动画,掌握小车运动的相关指令。
2.过程与方法目标:通过小组合作、讨论交流的方式,培养学生解决问题的能力和团队协作精神。
3.情感态度与价值观目标:培养学生对信息技术学科的兴趣,激发创新意识,培养自主学习能力。
四. 说教学重难点1.教学重点:学生能够独立完成小车动画的制作,掌握小车运动的相关指令。
2.教学难点:如何引导学生运用逻辑思维和编程知识解决实际问题。
五. 说教学方法与手段1.教学方法:采用任务驱动法、分组讨论法、示范教学法等。
2.教学手段:利用多媒体课件、网络资源、Scratch软件等辅助教学。
六. 说教学过程1.导入新课:通过展示精美的动画小车,激发学生的学习兴趣,引出本节课的主题。
2.讲解演示:教师利用多媒体课件,讲解小车运动的相关指令和编程思路,并进行现场演示。
3.学生实践:学生分组进行讨论,根据教师提供的任务要求,运用Scratch软件制作小车动画。
4.交流分享:学生展示自己的作品,分享制作过程中的心得体会,互相学习和借鉴。
5.总结提升:教师对学生的作品进行点评,总结本节课所学内容,引导学生思考如何运用编程知识解决实际问题。
七. 说板书设计板书设计如下:小车运动动画制作1.选择角色2.设置运动指令3.添加背景4.调试与展示八. 说教学评价1.学生自评:学生对自己在课堂上的表现和作品进行评价,反思学习过程中的不足。
计算机应用基础(微机原理及应用)课程设计指导书(车辆工程2011)第一部分设计的基本要求一、课程设计的目的本课程设计作为与《微机原理及应用》课程配套的一个实践教学环节,主要目的是提高学生综合运用微机硬件与软件技术的能力,加深对微机结构原理的理解,熟练地掌握微机的编程和接口技术开发应用水平;为在以后运用微机来实现控制、测量与处理等任务打下基础。
二、课程设计内容与要求1、设计内容所覆盖的知识面知识面要覆盖《微机原理与应用》主要内容,如汇编语言编程、定时器、并行/串行口通信、DOS 与BIOS 调用等内容。
设计内容要有一定的深度与广度,要有一定的工作量,能够体现综合设计的特点。
2、设计内容的基本要求(1)在定时器、并行、串行口通信、DOS 与BIOS 调用等内容,至少选用2种以上的接口电路;(2)应用实验箱或扩展板做实验样机,画出硬件接口的连线图;(3)用汇编语言编写应用开发程序,程序中要加注释;(4)三人或四人一组,每人先负责一项内容,最后联接统调;(5)系统必须通过调试,由指导老师观看运行结果并认可后,方能进行设计说明书编写;(6)手工编写或打印设计说明书。
三、课程设计步骤1、选择题目首先要明确题目要实现的功能,其技术参数和技术指标是什么,这是系统设计的起点和依据,它将贯穿于系统设计的全过程。
2、总体设计本阶段的任务是通过调查研究,查阅资料来初步确定系统结构的总体方案,其中主要涉及到硬件和软件的功能划分。
应用系统中硬件功能和软件功能具有一定的互补性,即某些功能既可以用硬件实现也可以用软件实现。
一般说来,用硬件实现的优点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本;而用软件代替某些硬件的功能可以使电路简化,便于修改设计,降低硬件成本,但编写软件的工作量会增大。
总体设计时,必须在硬件和软件之间权衡,分工明确,然后分头开始设计。
3、硬件设计过程根据实验箱的硬件电路连接图,选择自己选择的题目用到的硬件电路部分,明确其片选地址、输入信号、输出信号等。
微程序控制器实验报告北京交通大学一、实验目的通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如:ADD、MVRR、RET等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。
其最终要达到:1.深入理解计算机微程序控制器的组成和运行原理;2.深入地学习计算机各类典型指令的执行流程;3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;4.学习微程序控制器的设计过程和相关技术。
二、实验内容综合型实验思考题1:在进行56页到59页的实验时,你可能已经发现不同指令在执行的过程中都会经过相同的微地址,也就是说,不同指令的微程序也有公用部分。
请你找出这些公共的微指令,说明它们所做的工作。
答:公共指令如下:(1)微址为00下址为00的指令,所做工作为:给出微程序的首地址并在启动时执行;(2)微址为30下址为3A的指令,所做工作为:完成检查中断请求。
思考题2:总结机器指令和微程序之间的关系。
答:机器指令和微程序之间的关系总结如下:(1)一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。
即,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令编成的微程序进行解释和执行;(2)从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器有关,与此相关也有相对应的硬设备;(3)机器指令是把程序员编写的程序经编译以后成为机器能执行的以二进制码形式表示的指令;在微程序控制的计算机中通过执行一串微指令完成一条指令的功能;思考题3:总结指令的一般流程。
答:流程如下图:设计型实验1设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下地址字段、形成下址用到的条件码。
写出指令格式、指令功能、执行流程及对应的微程序,确定各步的控制信号。
设计一条新的机器指令,该指令的功能是把一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中,即:DR <- [ADR] + SR1.实验课的分组组号:第1组;2.小组要求使用的操作码和微程序首地址:操作码71H,微程序首地址51H;3.新指令的指令格式:双字长指令:1-8位操作码:01110001;9-12位DR:0000;13-16位SR:0000;17-32位ADR:0000 0000 0000 0000。
微机原理与接口技术实验报告班级:通信xxxx姓名: xxxx学号: 1xxxxx授课教师: xxxx老师目录1.实验一 (3)2. 实验二 (9)3.实验三 (15)4.实验四 (23)5.实验五 (29)6.实验六 (38)实验一交通灯控制实验一.实验目的通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。
(1)掌握利用X86汇编语言技巧(2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计(3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。
二.实验内容1.基本功能:设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化:(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红、东西路口的绿灯同时亮3秒。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)返回(1)依次循环。
2.思考扩展功能:(1)如遇到特殊情况,可拨动应急开关,使各项均为红灯,特殊车辆不受红灯限制,使其顺利通过后拨动另一个开关,系统返回继续运行(2)用LED应倒计时方式显示各路口灯亮时间(3)对于多路口联网应该如何设计。
三.实验电路如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律燃灭。
8255动态分配地址:控制寄存器:0EC0BHA口地址: 0EC08HC 口地址: 0EC0AH8255PC7PC6PC5PC2PC1PC0CS288H-28FHL7 L6 L5L2 L1 L0红 黄 绿红 黄 绿交通灯实验电路图10211089四.程序流程图长延时是否有按键南北路口黄灯闪,东西路口绿灯亮南北路口绿灯亮,东西路口红灯亮南北路口红灯亮,东西路口绿灯亮设置8255A 口输出C 口输出返回DOS开始南北路口红灯亮,东西路口黄灯闪长延时YN交通灯控制流程图10211089五.源程序CODE SEGMENTASSUME CS:CODE;********************************** 工作状态控制字设置START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出OUT DX,AL;**********************************南北路口绿灯亮,东西路口红灯亮FIRST: MOV DX,0EC0AH ;写PC口,地址0EC0AH MOV AL,00100100B ;南北绿,东西红,PC口写00100100OUT DX,AL;------------------------------两层嵌套实现长延时MOV CX,0 ;外层循环送入初值65536MOV AX,2000H ;内层循环送入初值2000H DELAY1: DEC AXJNZ DELAY1LOOP DELAY1;**********************************南北路口黄灯闪烁,东西路口红灯亮MOV BL,5 ;BL控制黄灯亮的次数5次SECOND:MOV DX,0EC0AHMOV AL,01000100BOUT DX,AL ;南北黄,东西红MOV CX,3000HMOV AX,0100HLI1:DEC AXJNZ LI1LOOP LI1MOV DX,0EC0AH ;短延时MOV AL,00000100B ;南北路口黄灯先灭OUT DX,ALMOV CX,3000HMOV AX,0100HWEN1:DEC AXJNZ WEN1 ;短延时LOOP WEN1DEC BLJNZ SECOND ;南北路口黄灯再亮;**********************************南北路口红灯亮,东西路口绿灯亮THIRD: MOV DX,0EC0AH ;写入C口MOV AL,10000001BOUT DX,AL ;南北红,东西绿MOV CX,0 ;长延时MOV AX,2000HDELAY2: DEC AXJNZ DELAY2LOOP DELAY2MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0EC0AH ;写入C口MOV AL,10000010BOUT DX,AL ;南北红,东西黄MOV CX,3000HMOV AX,0100HLI2:DEC AXJNZ LI2 ;短延时LOOP LI2;**********************************南北路口红灯亮,东西路口黄灯闪烁MOV DX,0EC0AHMOV AL,10000000BOUT DX,AL ;东西路口黄灯先灭MOV CX,3000HMOV AX,0100HWEN2:DEC AXJNZ WEN2LOOP WEN2DEC BLJNZ FORTH ;东西路口黄灯再亮MOV DL,0FFH;**********************************检测是否有键按下,调用6号功能MOV AH,06HINT 21H ;执行键盘输入操作JZ FIRSTMOV AH,4CHINT 21H ;返回操作系统CODE ENDSEND START六.实验总结这是我们的首个微机原理实验,而且我们班是第一批做实验的,没有丝毫经验,对实验箱以及TPC-2003集成开发环境都比较陌生,也没有事先编写好程序,因此时间很紧张,今后一定要在实验前做好充分的预习工作,现根据实验指导书上的要求,编写好程序。
小鸟动画程序课程设计课程设计任务书学生姓名:梅浪奇专业班级:自动化1002指导教师:张素文工作单位:自动化学院题目: 小鸟动画程序初始条件:在屏幕显示一小鸟,按S飞翔,按B鸣叫,按P暂停,按Q退出程序。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求分析(2)方案比较及认证说明(3)系统原理阐述(4)硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5)软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6)调试记录及结果分析(7)总结(8)参考资料(9)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月2日~1月3日:收集资料,方案选择1月4日~1月7日:整体流程,程序细节1月8日~1月10日:调试程序,报告撰写1月10:交设计报告,程序演示,答辩指导教师签名:年月日系主任(或责任教师)签名:年月日摘要随着计算机的快速发展,用汇编语言来实现动画更简单,直接和便捷,它的目标代码简短,占用内存较少,执行速度较快,是高效的程序设计语言。
本文主要对小鸟动画进行程序设计,并通过masm软件进行运行。
通过输入不同的字符对程序的控制,采用调用子程序的方法来实现,使用了堆栈技术和中断技术,来实现按下字符S,小鸟飞过,按B,小鸟鸣叫,按P暂停,按C继续,按下Q,则退出程序等功能。
文中对程序设计的思路进行了详细的解析,并给出其流程图和程序代码,同时也对此程序设计的不同方案进行了比较选择。
本程序可在windows 2000,windows xp上运行。
所需要的工具软件为MASM2.0及以上版本,先生成.asm文件,再生成.exe的文件,然后运行。
关键词:小鸟动画,masm软件,中断,子程序调用目录课程设计任务书 (I)摘要................................................................................................................................................ I I 小鸟动画程序 (1)1设计任务及要求分析 (1)2程序整体设计及方案选择 (2)2.1整体设计思路阐述 (2)2.2基本模块方案选择 (3)2.2.1小鸟图案显示方案选择 (3)2.2.2小鸟发声鸣叫方案选择 (4)3程序各模块设计 (8)3.1主程序设计 (8)3.1.1主程序设计思路 (8)3.1.2主程序流程图设计 (8)3.1.3主程序代码设计 (9)3.2小鸟飞翔子程序设计 (11)3.2.1小鸟飞翔子程序设计思路 (11)3.2.2小鸟飞翔子程序流程图设计 (11)3.2.3小鸟飞翔子程序代码设计 (12)3.3小鸟鸣叫子程序设计 (13)3.3.1小鸟鸣叫子程序设计思路 (13)3.3.2小鸟鸣叫子程序流程图设计 (14)3.3.3小鸟鸣叫子程序代码设计 (15)3.4小鸟飞翔并鸣叫子程序设计 (17)3.4.1小鸟飞翔并鸣叫子程序设计思路 (17)3.4.2小鸟飞翔并鸣叫子程序流程图设计 (17)3.4.3小鸟飞翔并鸣叫子程序代码设计 (18)3.5暂停子程序设计 (19)3.5.1暂停子程序设计思路 (19)3.5.2暂停子程序流程图设计 (20)3.5.3暂停子程序代码设计 (21)3.6小鸟显示子程序设计 (23)3.6.1小鸟显示子程序设计思路 (23)3.6.2小鸟显示子程序流程图设计 (23)3.6.3小鸟显示子程序代码设计 (24)4调试记录及结果分析 (26)4.1调试记录及结果分析 (26)4.2调试中出现的问题及解决方案 (29)5.小鸟动画程序的优化 (30)5.1小鸟动画优化 (30)5.2小鸟动画背景颜色优化 (30)6心得与体会 (31)7参考文献 (32)附录1:小鸟动画程序 (33)附录2:本科生课程设计成绩评定表 (49)小鸟动画程序1设计任务及要求分析设计任务要求在屏幕显示一小鸟,按S飞翔,按B鸣叫,按P暂停,按Q退出程序。
北交大微机原理实验报告(总22页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--[键入公司名称][键入文档标题]2014/12/21 Sunday目录实验一交通灯控制实验.........................................错误!未定义书签。
一、实验目的..........................................错误!未定义书签。
二、实验内容..........................................错误!未定义书签。
三、程序流程图........................................错误!未定义书签。
四、程序设计..........................................错误!未定义书签。
五、实验中遇到的问题及解决方法........................错误!未定义书签。
六、体会与收获........................................错误!未定义书签。
实验二可编程定时器/计数器(8253) ..............................错误!未定义书签。
一、实验目的..........................................错误!未定义书签。
二、实验内容..........................................错误!未定义书签。
三、实验流程图........................................错误!未定义书签。
四、程序设计..........................................错误!未定义书签。
五、实验中遇到的问题及解决方法........................错误!未定义书签。
设计课题:动画程序设计班级:自动化120组员:指导教师:付文秀一.设计题目动画程序设计二、设计内容1、主要内容:利用BIOS系统功能调用,进行简单的动画设计。
利用BIOS中断的10号、21号功能,进行简单的动画设计,并根据以下提示信息进行选择:(1)小鸟从屏幕飞过。
(2)汽车按水平方向从屏幕上开过去。
(3)退出。
2、基本功能:(1)清屏宏定义观察程序流程图,在显示小鸟图形,汽车图形时,要先清屏,所以在编写程序使用到宏,因为宏定义只需在汇编语言原程序中定义一次,便可以多次反复调用。
调用时只需要一条宏指令即可。
程序中的清屏定义为:CLEAR MACRO pch,pcl,pdh,pdl,pbhMOV AH,0MOV AL,02HINT 10HMOV AL,0MOV CH,pchMOV CL,pclMOV DH,pdhMOV DL,pdlMOV BH,pbhINT 10HENDM宏指令名为CLEAR,定义了五个形式参数,分别为:pch,pcl,pdh,pdl,pbh,把pch,pcl 的值分别传给窗口左上角行号、列号,pdh,pdl的值分别传给窗口右下角行号、列号,pbh 的值则传给窗口底部卷入行属性。
利用已经定义好的宏,清屏时可以宏调用。
宏调用语句为:CLEAR 0,0,24,79,7(2)子程序设计在接受键盘输入后,判断AL的值,如果是“1”就调用小鸟子程序,如果是“2”就调用汽车子程序,如果是“3”就结束退出。
在小鸟子程序中又嵌套了延时子程序,在汽车子程序中又嵌套了多个子程序。
(3)显示小鸟字符图形程序中利用BIOS系统功能中10H中断的09号功能进行小鸟字符图形的显示,程序段如下:MOV AH,9MOV AL,76HMOV BL,10INT 10H要是小鸟字符图形显示的更清晰,则需要延时。
循环指令LOOP,当CX不为零时,执行循环转移分支;当CX为零时,退出循环。
延时子程序为:DLY PROC NEARPUSH CXPUSH DXMOV DX,10000DL1: MOV CX,6801DL2: LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDP上述子程序用两层循环实现延时,内循环实现单位时间延时,外循环次数由寄存器DX 决定。
(4)显示汽车字符图形因为汽车是多字符显示,所以在子程序中还嵌套了显示汽车图形和清屏两个子程序。
MOV CH,0MOV CL,[DI]INC DIMOV CHAR,CXMOV POINTER,DIMOV LINE,DHMOV COL,DL此段程序把CH的值设为了0,又因为CL中存放字符的个数,所以CL=6,DI指向字符图形表中的第一个字符。
三、设计原理及方案1、设计原理图:图3-1 主程序图3-2 小鸟子程序图3-3 汽车子程序2、设计方案:在屏幕上显示动画的效果可以按以下五步进行:(1)在屏幕上显示图形ASCII码表,选择“V”来显示小鸟,“V”的ASCII码为76H,查表选择彩色文本模式下的IRGB组合成的通用颜色,选择亮绿色,色号为10。
显示汽车时用多字符图形显示,用6个字符组合来显示汽车,ASCII码分别为52H、0B1H、0DBH、0DBH、4FH、4FH,显示属性为白色,即色号为7。
在设置字符显示位置时,是通过两两字符间的相对坐标来实现的。
(2)延时一个时间周期,这样图形更清晰。
这里要用到延时子程序及其调用。
(3)消除图形在进行小鸟清屏时,可使用清屏宏调用,只需在程序前面进行清屏宏定义。
而在进行汽车的清屏时,由于汽车是由对字符图形显示的,所以不采用清屏宏调用,而是通过修改字符显示属性来进行清屏。
(4)改变图形的行、列坐标。
因为要求小鸟从屏幕飞过,所以小鸟的飞行路径不是水平也不是垂直的,所以要同时改变字符的行、列坐标;而汽车从左至右行驶,所以只需要改变汽车的列坐标。
(5)返回第一步,重复上述过程。
利用BIOS系统功能中 10H中断的06号功能进行清屏,循环调用09号功能显示字符图形;延迟一段时间后,再循环调用09号功能,设置BL寄存器的值为0(黑底黑字显示字符图形),以达到擦除图形的效果;改变行、列坐标,调用02号功能设置光标位置,重复上述过程。
利用DOS中断的01号和02号子功能来完成键盘接收,结果显示。
四、汇编源程序代码DATA SEGMENTINFO1 DB 0DH,0AH,'---PLEASE INPUT 1,2, OR 3 (1:bird,2:car,3:exit)--- $' BUFA DB 200DB ?DB 200 DUP(0)BUFB DB 200 DUP(?)CAR DB 7 ;小汽车的字符图形表DB 52H,7,0,0DB 0B1H,7,0,1DB 0DBH,7,0,1DB 0DBH,7,0,1DB 4FH,7,1,0DB 4FH,7,0,-3DB 2,7,-2,1CHAR DW ?POINTER DW ?LINE DB ?COL DB ?DATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AH,0 ;设置显示方式为80*25的黑白文体 MOV AL,02HINT 10HLEA DX,INFO1 ;在显示器上显示字符串提示信息 MOV AH,9INT 21HMOV AH,1 ;从键盘读取字符到AL寄存器INT 21HCMP AL,31H ;比较AL是否等于1JNE ACALL BIRDA: CMP AL,32H ;比较AL是否等于2JNE BCALL QICHEB: CMP AL,33H ;比较AL是否等于3JNE STARTMOV AH,4CH ;终止当前程序并返回调用程序INT 21HCLEAR MACRO pch,pcl,pdh,pdl,pbh ;清屏宏定义MOV AH, 0MOV AL,02HINT 10HMOV AH,6 ;调用6号功能MOV AL,0 ;设置整个屏幕为空白MOV CH,pchMOV CL,pcl ;窗口左上角行列数MOV DH,pdhMOV DL,pdl ;窗口左上角行列数MOV BH,pbh ;正常属性显示INT 10HENDMBIRD PROC ;小鸟子程序MOV AX,DATAMOV DS,AXMOV AL,02HINT 10HCLEAR 0,0,24,79,7 ;清屏宏调用MOV AH,0FH ;读当前显示状态 INT 10HMOV DH,10MOV DL,0BEGIN:MOV SI,2MOV CX,1DISP: CMP DL,80JAE EXIT1MOV AH,2INT 10HMOV AH,9MOV AL,76HMOV BL,10INT 10HCALL DLY ;延时MOV AH,9MOV AL,[DI]INT 10HINC DLDEC SIJNZ DISPJMP BEGINEXIT1:RETBIRD ENDPQING PROC NEARMOV AH,6MOV AL,0MOV CX,0MOV DH,24MOV DL,79INT 10HRETQING ENDPDLY PROC NEAR ;延时子程序PUSH CXPUSH DXMOV DX,10000DL1: MOV CX,6801DL2: LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDPQICHE PROC NEAR ;汽车子程序MOV AH,0MOV AL,02INT 10HCLEAR 0,0,24,79,7 ;清屏宏调用LEA DI,CAR ;DI指向字符图形表MOV DH,5 ;从第5行0列位置开始显示汽车 MOV DL,0CALL MOVERETQICHE ENDPMOVE PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AH,0FH ;取当前显示方式MOV CH,0MOV CL,[DI] ;CL放字符个数INC DI ;DI指向字符图形表 MOV CHAR,CXMOV POINTER,DIMOV LINE,DHMOV COL,DL PLOT_NEXT:ADD DH,[DI+2] ;改变行列坐标ADD DL,[DI+3]CMP DL,80 ;是否出屏JB MOV_CRSRPOP DIPOP DXPOP CXPOP BXPOP AXRETMOV_CRSR:MOV AH,2INT 10HMOV AL,[DI] ;取字符值MOV BL,[DI+1] ;取字符属性MOV AH,09 ;显示字符INT 10HADD DI,4 ;DI指向下一个字符 LOOP PLOT_NEXTCALL DLYCALL ERASEJMP SHORT PLOT_NEXTMOVE ENDPERASE PROC NEARMOV CX,CHARMOV DI,POINTERMOV DH,LINEMOV DL,COLERASE_NEXT:ADD DH,[DI+2] ;修改光标的行坐标ADD DL,[DI+3] ;修改光标的列坐标MOV AH,2INT 10H ;设置光标位置MOV AL,[DI]MOV BL,0 ;设置字符属性为0,为黑色 PUSH CXMOV CX,1 ;设置字符显示次数为1MOV AH,9INT 10HPOP CXADD DI,4 ;指向下一个要用来擦除的字符 LOOP ERASE_NEXTMOV CX,CHARMOV DI,POINTERMOV DH,LINEINC COLMOV DL,COLRETERASE ENDPCODE ENDSEND START五、实施结果1、初始界面,如图5-2所示:图5-12、输入1,小鸟从屏幕飞过界面,如图5-2所示:图5-23、输入2,汽车按水平方向从屏幕上开过去界面,如图5-3所示:图5-34、输入3,退出界面,如图5-4所示:图5-4六、心得与体会在老师布置了微机原理与接口技术课程设计的研讨题目后,我们小组首先进行了集体讨论,从12个课题中选择了一个比较感兴趣的课题——动画程序设计。
确定这个课题之后,组内便开始分工,大家查阅相关书籍,上网查找各种资料,初步确定了设计方案,对整个程序的流程有了大概的顺序,对程序先实现什么再实现什么有了一个初步计划。
因为小车使用多字符图形组合来显示,所以首先定义出小车的字符图形表。
然后就是在运行程序是要用键盘输入指令1、2、3,以显示不同的运行结果,此时就要对从键盘输入信息和在显示器上显示信息进行定义。
因为在显示小鸟图形和汽车图形时,要先清屏,所以在编写程序要进行清屏宏定义以供调用。