中国矿业大学计算机学院
2015 级本科生课程报告
课程名称
硬件课程设计
设计题目 竞赛抢答器设计(1)
报告时间
2017.12.25
学生姓名
任课教师
王凯
任课教师评语
任课教师评语(①对课程基础理论的掌握;②对课程知识能力的评价;③对课程报告
相关软件设计、作品等结果的评价;④课程学习态度;⑤课程成果和报告工作量;⑥总
体评价和成绩;⑦存在的问题等):
课程设计采用语言
课程基础理论掌握程度 熟练
综合知识应用能力
强
较熟练
较强
一般
一般
不熟练
差
功能完善,可
运行
功能较完善,可运
行
有基本功能,可
运行部分功能
功能欠缺,不能运
行
正确
饱满
基本正确
适中
回答不完整
有原则性错误
一般
欠缺
完整、格式规
范
较完整、格式规范 较完整、格式不
规范
不完整、格式不规
范
软件演示成果评价
软件演示问题回答
设计工作量
报告内容及格式
存在问题
总体评价及成绩
成 绩:
任课教师签字:
年
月
日
目录
1 绪论........................................................................................................................................4
1.1 问题提出 ................................................................ 4
1.2 选题意义 ................................................................ 4
1.3 设计任务及要求 .......................................................... 4
2 系统设计需求分析.................................................................................................................4
2.1 开发环境及开发平台 ...................................................... 4
2.2 系统设计主要芯片及工作原理 .............................................. 5
2.3 系统主要设计思想 ....................................................... 11
3 系统总体设计......................................................................................................................12
3.1 系统电路组成及工作原理 ................................................. 12
3.1.1 系统电路图设计..............................................................................................12
3.1.2 系统工作原理...................................................................................................14
3.2 系统软件功能 ........................................................... 14
3.2.1 系统软件功能模块图.......................................................................................15
4 系统软件设计....................................................................................................................15
4.1 系统软件设计程序流程图 ................................................. 15
4.2 软件代码设计 ........................................................... 17
5 系统分析与测试...................................................................................................................20
5.1 系统测试方法与结论 ..................................................... 20
6 系统运行结果......................................................................................................................21
7 结论.......................................................................................................................................23
8 设计体会..............................................................................................................................23
参考文献..................................................................................................................................24
1 绪论
1.1 问题提出
利用 4X4 键盘完成倒计时开始、抢答、复位。利用七段数码管完成倒计时显示和抢
答号显示、利用 8254 实现倒计时控制。
1.2 选题意义
抢答器是竞赛问题中一种常用的必备装置,关于这次设计的用于多人抢答的硬件
实验,在现实生活中很常见,尤其伴随着各种益智电视节目的不断发展,越来越多的竞
赛抢答器被用在了其中,在主持人按下开始键后,屏幕便会显示倒计时,选手们可以通
过按键来进行抢答,此时屏幕的倒计时会停止,同时显示最先按下抢答器选手的编号。
这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、
活跃气氛,让观众看得更有情趣。可见抢答器在现实生活中确实很实用,运用前景非常
广泛。
1.3 设计任务及要求
1. 使用 3X3 键盘,1-7 是选手抢答键,8 号是开始键,9 号是复位键。
2. 在七段数码管上实时显示倒计时。
3. 当按下抢答键时,数码管上的倒计时暂停,同时显示按下的编号。
2 系统设计需求分析
2.1 开发环境及开发平台
(1)PC 微机:用于对程序的编译测试等,同时还需要对实验设备进行控制,提供
整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱:此设备能提供 8254、8255A 和数码管等必要芯片。并且能
通过接受 PC 机传来的信息,显示出相应的功能。
2.2 系统设计主要芯片及工作原理
(1)可编程外围接口芯片 8255A
8255A 是一种通用的可编程并行 I/O 接口芯片,通过对它编程,芯片可工作于不同
的工作方式。在微型计算机系统中,用 8255A 做接口时,通常不需要附加外部逻辑电路
就可直接为 CPU 与外设之间提供数据通道.
由图可见,8255A 由数据端口 A、B、C(期中,C 口被分为 C 口上半部分和 C 口下
半部分),A 组和 B 组控制逻辑,数据总线缓冲器和读写控制逻辑。
8255A 内部包含 3 个 8 位输入输出端口,通过外部的 24 根输入输出线与外设进行通
信联络。A 口和 B 口可以用作 8 位输入口或 8 位输出口。C 口既可以用作 8 位输入输出
口用,也可作为两个 4 位的输入输出口。还常常用来配合 A 口和 B 口工作,分别用来产
生 A 口和 B 口的输出控制信号和输入 A 口和 B 口的端口状态端口信号。
A 组和 B 组控制逻辑内部有控制字寄存器,用来接收 CPU 送来的命令字,然后分别
决定 A 组和 B 组的工作方式,或对端口 C 的每一位执行置位/复位等操作。8255A 的端口
A 和端口 C 的上半部分(PC7-PC4)由 A 组控制逻辑管理,端口 B 和端口 C 的下半部分
(PC3-PC0)由 B 组控制逻辑管理。这两组控制逻辑都从读/写控制逻辑接收命令信号,
从内部数据总线接收控制字,然后向各有关端口发出相应的控制命令。
数据总线缓冲器是一个双向三态的 8 位缓冲器,用作 8255A 和系统数据总线之间的
接口。通过这个缓冲器和与之相连的 8 位数据总线 D7-D0,接收 CPU 送来的数据或控制
字,外设传送给 CPU 的数据或状态信息,也通过这个数据总线缓冲器送给 CPU。
读/写控制逻辑用来管理所有的内部或外部数据信息,控制字或状态字的传送过程。
它从 CPU 的地址总线和控制总线来的信号,并产生对 A 组和 B 组控制逻辑进行操作的控
制信号。
方式选择控制字:
8255A 具有 3 种基本工作方式。
方式 0:基本输入输出方式;
方式 1:选通输入输出方式;
方式 2:双向总线 I/O 方式。
端口 A 可以工作于 3 种方式中的任一种;端口 B 只能工作于方式 0 和方式 1,而不
能工作于方式 2;端口 C 常被分成 2 个 4 位端口,除了用做输入输出端口外,还能用来
配合 A 口和 B 口工作,为这两个端口的输入输出操作提供联络信号。
图 2-1
8255 外部引脚图
图 2-2
8255 内部功能图
(2)8254 芯片
8254 芯片主要由四部分组成: 数据总线缓冲器
数据总线缓冲器是一个三态、双向 8 位寄存器主要作用是与 CPU 进行数据交换,8
位数据线 D7~D7 与 CPU 的系统数据总线连接,构成 CPU 和 8254 之间信息传送的通
道,CPU 通过数据总线缓冲器向 8254 写入控制命令、计数初始值或读取计数值。
读写逻辑
读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的 工作方
式。读 / 写控制逻辑用来接收 CPU 系统总线的读、写控制信号和端口选择信号,用于
控制 8254 内部寄存器的读 / 写操作。
控制字寄存器
控制寄存器是一个只能写不能读的 8 位寄存器,系统通过指令将控制字写入控制
寄存器,设定 8254 的不同工作方式。
计数器
8254 内部有三个结构完全相同而又相互独立的 16 位减“1”计数器,每个计数器
有六种工作方式,各自可按照编程设定的方式工作。
8254 芯片共有六种工作方式,分别对应与六种不同的用途。
(1)方式 0:计数到 0 结束输出正跃变信号方式。
(2)方式 1:硬件可重触发单稳方式。
(3)方式 2:频率发生器方式。
(4)方式 3:方波发生器。
(5)方式 4:软件触发选通方式。
(6)方式 5:硬件触发选通方式。
(3)7 段数码管的结构与工作原理
图 2-3 8254 引脚图
7 段数码管一般由 8 个发光二极管组成,其中由 7 个细长的发光二极管组成数字显
示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就
能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控
制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起
的称为共阴极数码管,如图 2-3 所示。