八路抢答器(汇编程序) - 微机课程设计 - 图文 下载本文

常熟理工学院课程设计报告

1.3实现功能

当没有选手按下按键时,LED数码管显示“-”符号,表示此时可以进行抢答,当抢答开始,选手按下8路抢答器中的任何一路开关时,8段LED数码管上显示最先按开关的选手的号码,同时蜂鸣器鸣叫一段时间以示已经有人抢答成功。

当一位选手抢答成功时,数码管上显示这位选手的号码,此时其他选手再按下按键不会产生任何作用,系统进入锁死状态,当抢答成功的选手退下按键时,LED数码管显示“-”符号,表示系统已经初始化,可以进行下一轮抢答。

5

常熟理工学院课程设计报告

2 总体设计

2.1功能需求分析

系统必须准确判断抢答者的信息,根据按键信息判断被按下的按键的序号,在LED数码管上显示相应的数字反映抢答信息,同时蜂鸣器响一声以示有选手抢答成功。

2.2可行性分析

将8个抢答器按键连接到8255芯片的PA0~PA7,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,当检测到按键发生变化时,即微机采样到这8位数据不为0时,微机通过该并行输入口循环对8路抢答信号进行采样。

当采样到哪一组的抢答信号已经发出,则记录下该组的组号,从PB口输出组号所对应的LED数码管段码,同时PC7端口连接至定时器的门控信号端口,使定时器工作,输出端连接到蜂鸣器,蜂鸣器鸣叫一段时间后关闭,若系统检测到按键信息全为0时,表明选手已经把按键退下,则系统重新开始检测按键状态,进入下一个抢答环节。

2.3硬件总体设计

2.3.1硬件器材

所需器件:可编程并行接口芯片8255、可编程定时器/计数器8253,扬声器,一个LED显示器,8个按键。 2.3.2内存单元地址

①可编程并行接口接口芯片8255A的端口地址为0ff28H、0ff29H、0ff2AH、0ff2BH。 ②可编程定时器/计数器8253的端口地址为0040H、0041H、0042H、0043H。

2.4软件流程图

6

常熟理工学院课程设计报告

开始 8255初始化 8253初始化 显示“-”符号 从8255A口读取按键状态 Y 无按键按下 N 按键1按下 N 按键2按下 N 按键3按下 N 按键4按下 N 按键5按下 N 按键6按下 N 按键7按下 N 按键8按下 Y LED显示8 LED显示7 Y LED显示6 Y LED显示5 Y LED显示4 Y LED显示3 Y LED显示2 Y LED显示1 Y 蜂鸣器响一声 检测PA口是否全为0 Y 图1 系统软件流程图 N 按键全为0

7

常熟理工学院课程设计报告

3 硬件设计

3.1所选芯片介绍

3.1.1可编程并行接口接口芯片8255A ①8255A内部结构

8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。 ②8255A主要的外部引脚

图2 8255A引脚图

PA7~PA0:A口的8条I/O线。8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。

PB7~PB0:B口的8条I/O线。不可以设置成双向口,其它和A口一样。

PC7~PC0:C口的8条I/O线。不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。

A1、A0:端口地址选择信号。用于选择8255A的3个数据端口和一个控制口。当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。

③8255A工作方式

方式0:基本的输入/输出方式。A口、B口、C口都可以工作在些方式下。

8

常熟理工学院课程设计报告

④8255A方式控制字格式

表1 8255方式控制字

D7 1 D6、D5 A口 00 方式0 D4 A口 0 输出 1 输入 D3 C口高4位 0 输出 1 输入 D2 B口 0方式0 1方式1 D1 B口 0 输出 1 输入 D0 C口低4位 0 输出 1 输入 01 方式1 1x 方式2

3.1.2可编程定时器/计数器8253

①8253的内部结构

8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。 ②8253的外部引脚

图3 8253引脚图

A1、A0:地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。

CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。

GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。

OUT0、OUT1、OUT2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚

9