汇编语言与接口技术课程设计报告
Assembler language and Interface
Technology curriculum designReport
学生学院:里仁学院
设计题目:光标轨迹程序 draw 竞赛抢答器设计
学生班级:
学生姓名:
学生学号:
指导老师:
教 务 处
2018 年 7 月
摘要
本次课程设计分为两个部分,第一个部分主要是为了巩固汇编语言指令用
法,这部分实现的是绘制光标轨迹,该系统实现用上、下、左、右键控制光标
图形。第二个部分为接口,根据所用接口电路芯片设计出完整的接口电路及程
序,了解汇编语言和接口的关系,这部分实现了八路抢答器。抢答器是在竞赛、
文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答
者的机器。通过抢答者的指示灯显示、数码显示和警示显示等手段指示出第一
抢答者。
随着科学技术的不断发展,促使人们学科学,学技术,学知识的手段多种
多样,抢答器作为一种强大工具,已经广泛应用于各种知识能力竞赛场合,例
如选拔人才、评选优胜及各种智力竞赛等。
目前知识竞赛之类的活动愈加频繁,凡是有知识竞赛类的活动那么也就必
然离不开抢答器。针对主持人提出的问题,各组一般要进行必答和抢答,对于
抢答,要判定哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁判
员。这种数字抢答器杜绝了人为因素的影响,实现了抢答公平公正的原则。所
以操作简单、经济实用的小型数字抢答器将流行于各类竞赛中,成为小规模知
识竞赛的首选。
关键词:计数器 8254;可编程并行接口芯片 8255; DOS; 八路抢答器
1
目录
1.课程设计的目的和意义………………………………………………3
1.1 目的………………………………………………………………3
1.2 意义………………………………………………………………3
2.设计题目………………………………………………………………3
2.1 光标轨迹程序 draw………………………………………………3
2.1.1 设计要求……………………………………………………3
2.1.2 系统的主要功能……………………………………………3
2.1.3 系统的作用…………………………………………………4
2.1.5 总体设计方案………………………………………………4
2.1.6 工作和组成原理……………………………………………4
2.1.7 设计总结……………………………………………………6
2.1.8 作品的使用或操作说明……………………………………6
2.2 竞赛抢答器设计…………………………………………………6
2.2.1 设计要求……………………………………………………6
2.1.2 系统的主要功能……………………………………………6
2.1.2.1、设计思路………………………………………………7
2.1.2.2、使用设备………………………………………………7
2.1.3 系统的作用…………………………………………………7
2.1.5 总体设计方案………………………………………………8
2.1.6 工作和组成原理(框图)…………………………………8
2.1.7 系统设计……………………………………………………10
2.1.8 设计总结……………………………………………………10
2.1.9 作品的使用或操作说明……………………………………11
2.1.10 设计图纸或图表(如接口电路原理图等)………………11
3.附录……………………………………………………………………12
2
1、课程设计的目的和意义
1.1 目的
①进一步了解汇编语言指令的用法及功能
②进一步了解汇编接口的功能和用法
③进一步了解单片微型计算机及其接口的工作原理、编程和使用方法
1.2 意义
通过课程设计,设计培养我们的系统设计能力,更加熟悉汇编语言指令的
用法及功能,深入理解汇编语言,掌握汇编语言的指令用法掌握 8255、8253
接口的功能和控制方法,可以加深和巩固对理论教学和实验教学内容的掌握,
进一步建立计算机应用系统整体概念,能够独立或协作提出并论证设计方案,
进行软、硬件调试。
2、设计题目
2.1 光标轨迹程序 draw
2.1.1 设计要求
程序能在屏幕上画出光标移动的轨迹,画城墙、水平线等图。光标的移动
受键盘上光标键的控制,如果键入 ESCape 键,则程序结束,返回 DOS。
2.1.2 系统的主要功能
整个系统实现上、下、左、右键在不同的位置输入,通过不同画法实现水
平线和城墙的图像。如果键入 ESC 键,则程序终止,返回 DOS 系统。
3
2.1.3 系统的作用
在 TDDEBUG 上,利用 0B800H 设置彩色适配器的彩色显示缓冲区,在黑
色的屏幕上显示光标轨迹,利用上、下、左、右键对光标的影响在不同的位置
输出方块符,绘制出光标移动的路径进而绘制出我们想要的图形。
2.1.5 总体设计方案
首先需要一个用于反映屏幕图像数据的缓冲区,通过扫描缓冲区中的数据
在一个黑色显示器相应位置显示白色方块符,然后对我们提供的键值以及我们
按下的键判断光标移动的方向,对缓冲区数据的扫描,在显示器相应位置显示
白色方块。
2.1.6 工作和组成原理
PC 机的视频系统都有用于反映屏幕图像数据的缓冲区,通过扫描缓冲区
中的数据,在屏幕上显示相应的字符或图形,对不同适配器,显示缓冲区的大
小和内存中的位置不同。对彩色适配器有 16k 字节的容量,内存起始地址
B800:0000,以常规的 RAM 作为缓冲区,在 BIOS 初始化系统时,现有存储容
量的前 16K 被定义为显示缓冲区。存储器总共分配了 4000 个字节,对应屏幕
上 2000 个字符位置(25*80),每个字符位置对应两个字节,其中低字节内是
ASCII 码,高字节是字符显示特性的信息。在文本方式下,屏幕上的字符位置
对应的显示缓冲区的偏移地址为:行号(0-24)*160+列号(0-79)*2
系统流程图如下:
4
Y
INC CH
CH>24
N
Y
上一列
开始
设置显示方式 03
清除屏幕
ESC
UP?
N
N
DOWN?
N
Y
RIGHT?
INC CL
N
LEFT?
DEC CL
CL<0
Y
上一行
Y
返回 DOS
Y
DEC CH
N
CH<0
Y
下一列
N
CL>79
Y
下一行
转换对应的显存地址,
将方块符写入该地址
结束
5
2.1.7 设计总结
通过这次课程设计我们复习巩固了汇编指令的用法和作用,还拓展了一些
指令的用法和作用,学习了显示器 I/O 程序的设计方法,了解系统功能中断的
设计方法及使用方法,更加熟悉汇编程序三大结构及其书写使用方法,理解各
种指令。
开始设计的第一个代码只能实现字符在水平方向上绘制光标,当按下下键
时,光标会出现在当前位置+9 的水平方向上,经过改进后实现光标正常的上
下左右移动。
2.1.8 作品的使用或操作说明
系统运行后,只需要按上下左右键即可绘画出你想要的光标轨迹。按下
ESC 退出程序进入 DOS 系统。
2.2 竞赛抢答器设计
2.2.1 设计要求
设计一个具有 8 路抢答的抢答器,利用并行接口和开关键。逻辑开关
K0---K7 代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时
在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代
替)。
2.1.2 系统的主要功能
本次实验是要求设计一个竞赛抢答器。在做本实验之前,我们先熟悉了中
断优先级管理器 8259A、可编程并行接口接口芯片 8255A、可编程定时器/计
数器 8253 和数码管的用法,掌握了汇编程序的设计。通过本次实验掌握了微
机系统的开发步骤,锻炼了我们的对硬件和软件的的综合操作。本次设计需要
熟练掌握汇编语言,熟悉中断优先级管理器 8259A、可编程并行接口接口芯片
8255A、可编程定时器/计数器 8253 的内部结构、外部引脚和功能,熟悉 LED
6
显示器的结构及译码方式。 中断优先级管理器 8259A 在本系统中用来管理选
手按键中断信息。可编程并行接口接口芯片 8255A 在本系统中用来连接选手的
按键,逻辑开关 K0—K7 代表竞赛抢答按钮 0—7 号,当某个逻辑开关置 1 时,
相应某组抢答按钮按下。在七段数码管上将其组号(0—7)显示出来,并使微
机扬声器响
2.1.2.1、设计思路
首先初始化 8255,然后判断是启动还是复位操作,若是复位操作,则控制
8255 输出的数据使绿色和红色指示灯、LED 数码管全灭;否则启动下一次抢
答,使绿色发光二极管亮,当 8255 的输入口 A 有不为 0 的数据时,则使红色
发光二极管点亮、并判断先拨动开关的组号,在 LED 上显示出其组号。
2.1.2.2、使用设备
并行接口 8255:通过编程来指定它要完成的功能,是并行数字设备与微机
间的接口。
数码管:指示先抢答的组号。
二极管:指示抢答。
开关:作为抢答者的按钮。
2.1.3 系统的作用
1、八路抢答,各用一个抢答按钮;
2、设置一个控制开关,该开关由主持人控制;
3、具有数据锁存和显示功能,抢答开始后若有选手按动抢答按钮,编号
立即锁存,此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号
一直保持到系统清零为止;
4、当主持人按下“开始”按钮,抢答开始。
5、当某一路抢答成功时,在数码管上显示成功信息和该路的号数;
6、当某一路抢答违规时,能在数码管上显示违规信息和号数; 可扩展以
7