《微机原理与接口技术》
课程设计
设计题目: 竞赛抢答器
院系:
专业:
班级:
学号:
姓名:
实验日期: 2008 年 6 月 26 日
实验地点:
课程设计成绩:
<微机原理与接口技术>课程设计报告
黄涛
目录
前言――――――――――――――――――――――3
课程设计的目的和要求-―――――――――――――4
一、课程设计的目的
二、课程设计的要求
总体设计――――――――――――――――――――5
一、基本工作原理
二、 硬件总体设计
1 、系统总成方案
2 、内存单元编址
3 、键盘及显示功能的定义
三、 软件总体设计
1、 存储单元的分配、标志位的含义
2 、主程序框图及清单(带有注释)
硬件设计――――――――――――――――――――9
一、系统所选用各芯片的介绍
1、中断优先级管理器 8259A
2、可编程并行接口接口芯片 8255A
3、可编程定时器/计数器 8253
二、系统所选用各芯片的工作方式
1、中断优先级管理器 8259A 的工作方式
2、可编程并行接口接口芯片 8255A 的工作方式
3、可编程定时器/计数器 8253 的工作方式
三、系统所选用各芯片的连接
1、各芯片与 CPU 的连接
2、各芯片之间的连接和与外设的连接
软件设计――――――――――――――――――――13
一、子程序的流程图
二、子程序清单(带有注释)
系统操作说明――――――――――――――――――15
结束语―――――――――――――――――――――15
系统原理图―――――――――――――――――――16
参考文献――――――――――――――――――――16
- 2 -
<微机原理与接口技术>课程设计报告
黄涛
前 言
一、课程设计的意义
《微机原理与接口技术》是计算机、电子类专业的专业基础课。在课程体系种
占有重要的位置。课程设计的目的是配合平时的教学和实验,以达到巩固和消化课
堂教学内容,进一步加强综合应用能力,启发创新思维的目的。是培养学生综合素
质,提高动手能力,提高发现问题和解决问题能力的重要阶段。
二、课程设计报告的基本要求
接口设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路。
程序设计:要求画出程序流程图,设计出全部程序并给出程序设计说明和程序
注释。
课程设计说明书:
a、本次课程设计的目的和意义。
b、设计报告:字数约 2000~3000 字(不包括程序清单),内容包括:
○1 设计题目;
○2 系统的主要功能、作用以及主要技术性能指标;
○3 总体设计方案、工作和组成原理(框图)或设计说明、采用的技术路线等;
○4 系统设计:接口电路设计,程序设计(程序流程图和程序清单及注释)以及
其他有关的理论分析和计算;
○5 设计总结:对整个设计工作过程进行归纳和综合,对设计中所存在的问题和
不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、收
获和提高。
c、作品的使用或操作说明。
d、设计图纸或图表(如接口电路原理图等)。装订时将课程设计说明书附在封
面的 3 页之后。
- 3 -
<微机原理与接口技术>课程设计报告
黄涛
课程设计的目的和要求
一、课程设计的目的
1、掌握微机系统的开发步骤
2、掌握 8259A、8255A、8253 数码管的用法
3、掌握汇编程序的设计
二、课程设计的要求
设计一个具有 8 路抢答的抢答器,利用并行接口和开关键。逻辑开关 K0---K7 代表
抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号
码显示出来,并使喇叭响一声(或者以发光二极管代替)。
1、中断优先级管理器 8259A 控制字要求
芯片控制字:采用边沿触发,单片 8259,要写入 ICW4 控制字
中断类型码控制字:设置 IR0~IR7 的中断类型码依次为 08H、09H、…、0FH
方式控制字:优先级设置方式为全嵌套方式即固定优先级方式,主片工作在缓冲方
式下,中断结束方式采用中断非自动结束方式,8259 工作在 80X86 系统上。
2、可编程并行接口接口芯片 8255A 控制字要求
A 口工作在方式 0,做为输入端口用于连接选手按键(PA7~PA0 依次对应按键 1~8);
B 口工作在方式 0,做为输出端口,经驱动器 1 连接 LED 显示器(PB7~PB0 依次对应
连接 LED 显示器的 dp、g、f、e、d、c、b、a 七段数码管管脚);C 口也必须工作在方
式 0,高 4 位做输入端口(本次设计中只用 PC4、PC5,分别用于连接复位键和开始键),
低 4 位做输出端口(PC3~PC0,经驱动器 2 后 PC1、PC2、PC3 分别用于连接黄、红、
绿三个发光二极管,PC0 连接到 8253 的 GATE1 端,以控制通道 1 的计数)。
3、可编程定时器/计数器 8253 控制字要求
通道 0:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计
数格式为 BCD 码,计数初值为 4000。
通道 1:操作类型为先读写低字节再读写高字节,工作在方式 1 即可重触发的单稳
态触发器,计数格式为 BCD 码,计数初值为 3000。
通道 2:操作类型为先读写低字节再读写高字节,工作在方式 3 即方波发生器,计
数格式为 BCD 码,计数初值为 0。
- 4 -
<微机原理与接口技术>课程设计报告
黄涛
总体设计
一、基本工作原理
主持人按开始键,绿灯这后,选手才可抢答,否则违规。若抢答成功,LED
显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键),
LED 显示器显示违规选手号码,红灯亮,扬声器报警。
二、硬件总体设计
1、系统总成方案
该竞赛抢答器所要器件:中断优先级管理器 8259A、可编程并行接口接口芯片
8255、可编程定时器/计数器 8253,三个一样的驱动器,黄、红、绿三个发光二
极管,十三个电阻,一个 8 输入与非门,一个非门,一个扬声器,一个 LED 显示
器,10 个按键。
2、内存单元编址
(1)、中断优先级管理器 8259A 的端口地址为 20H、21H
(2)、可编程并行接口接口芯片 8255A 的端口地址为 80H、81H、82H、83H
(3)、可编程定时器/计数器 8253 的端口地址为 40H、41H、42H、43H
3、键盘、扬声器及显示功能的定义
10 个按键中,一个开始键一个复位键,另外 8 个用做 8 位选手的抢答按键。
扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,
红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始
键。LED 显示器显示的内容与选手号对应,抢答成功或违规都要显示。
三、软件总体设计
1、存储单元的分配、标志位的含义
(1)、定义一个 TAB 变量用来存储 1~9 的字形码信息,如下表
LED 的管脚
dp、g、f、e 、d、c、b、a
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
对应的字形
对应存放在内存
单元的字形码
1
2
3
4
5
6
7
8
9
06H
5BH
4FH
66H
6DH
7CH
07H
7FH
6FH
(2)、定义一个 BZ 变量作为标志位,用来选手抢答是否违规,BZ=0FFH 时
表示主持人已经按下开始键选手可以抢答,BZ=00H 表示主持人未按下开始按键,
选手不可以抢答。
2、主程序流程图及清单(带有注释)
(1)、主程序流程图如下:
- 5 -
<微机原理与接口技术>课程设计报告
黄涛
主程序流程图
开始
设置 LED 字形码初值、标志位初值
对 8259A、8255A、8253 进行初始化
设置抢答按键中断向量
并使 IF 置 1 开放中断
先从 82H 口中读一个字
N
先从 82H 口中读一个字
先从 82H 口中读一个字
N
N
N
检测开始键是否按下
Y
检测开始键是否弹起
Y
关闭 LED 显示器
点亮绿灯
置标志位值为 FFH
使 IF=1 开放中断
检测复位键是否按下
Y
先从 82H 口中读一个字
检测复位键是否弹起
Y
关闭 LED 显示器、指标灯
将标志位清零,使 IF=1 开入中断
结束
- 6 -
<微机原理与接口技术>课程设计报告
黄涛
(2)、主程序清单(带详细注释)
SEGMENT
DB
06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H
;1~9 的段码
;(字形码)
DATA
TAB
BZ
DATA
STACK
STACK
CODE
START:
PARA STACK ‘STACK’
DUP(?)
DS:DATA,CS:CODE
00H
100H
DB
ENDS
SEGMENT
DB
ENDS
SEGMENT
ASSUME
MOV
MOV
;8259A 初始化
MOV
OUT
MOV
OUT
MOV
OUT
AX,,DATA
DS,AX
AL,13H
20H,AL
AL,08H
21H,AL
AL,0DH
21H,AL
;8255A 初始化
MOV
OUT
XOR
OUT
OUT
AL,98H
83H,AL
AL,AL
81H,AL
82H,AL
;8253 初始化
MOV
OUT
MOV
OUT
MOV
OUT
MOV
OUT
MOV
AL,37H
43H,AL
AL,00H
40H,AL
AL,40H
40H,AL
AL,73H
43H,AL
AL,00H
OUT
41H,AL
MOV
OUT
MOV
OUT
MOV
AL,30H
41H,AL
AL,B7H
43H,AL
AL,00H
;初始化 8259A 的 ICW1
;送中断类型码基值,8259A 的 ICW2
;一般中断结束方式,8259A 的 ICW4
;置 8255A 工作方式
;B 口、C 口初始化
;置 8253 通道 0 控制字
;置 8253 通道 0 计数初值为 4000
;置 8253 通道 1 控制字
; 置 8253 通 道 1 计 数 初 值 为 3000
;置 8253 通道 2 控制字
;置 8253 通道 2 控制字
- 7 -
<微机原理与接口技术>课程设计报告
黄涛
;置 8253 通道 2 计数初值为 0
;设置抢答按键中断向量
;中断类型号为入口参数
;DS:DX 指向 4 字节地址
;使 IF 置 1,开放可屏蔽中断
;检测开始键
;检测 C 口的 PC5 端
;开始键未按下即 PC5=0,则跳转检测
;复位键
;检测开始键是否已经弹起,即 PC5=0
;开始键没有弹起再重新检测
;关 LED 显示器
;送到 B 口
;绿灯亮
;送到 C 口
;置标志
;检测复位键
;检测 C 口的 PC4 端
;复位键未按下即 PC4=0,则跳转再检
;测开始键
;检测复位键是否弹起,即 PC4=0
;位键没有弹起,则重新检测
;关 LED 显示器、指标灯
;清标志
42H,AL
AL,00H
42H,AL
AL,00H
42H,AL
OUT
MOV
OUT
MOV
OUT
;中断设置
MOV
MOV
MOV
MOV
MOV
INT
STI
;主循环
IN
TEST
JZ
AH,25H
AL,0AH
BX,SEG KEYINT
DS,BX
DX,OFFSET KEYINT
21H
LOPM:
LOP1:
LOP2:
LOP3:
AL,82H
AL,20H
LOP2
AL,82H
AL,20H
LOP1
AL,00H
81H,AL
AL,08H
82H,AL
BZ,0FFH
AL,82H
AL,10H
LOPM
AL,82H
AL,10H
LOP3
AL,00H
81H,AL
82H,AL
BZ,00H
IN
TEST
JNZ
MOV
OUT
MOV
OUT
MOV
STI
IN
TEST
JZ
IN
TEST
JNZ
MOV
OUT
OUT
MOV
STI
JMP
CODE
LOPM
;中断服务子程序……
ENDS
END
START
- 8 -