文档介绍:一、实验目的
1. 了解微机控制的竞赛抢答器的基本原理。
2. 进一步熟练8255、(8254)的使用。
二、实验内容
设计一个7路的智力竞赛抢答器。要求:
1、在主持人侧,设置抢答指示电路和启动/复位开关。选手侧各设置1个抢答按钮。
2、使用开关K8代表启动/复位开关,K8向上拨时,表示启动一次抢答,绿色发光二极管亮作允许抢答指示。此时选手侧可以按动各自的抢答按钮。
3、使用实验仪的逻辑电平开关K1-K7来代表7个抢答按钮。当开关向上拨时表示按下按钮。
4、收到第1个抢答信号后,主持人侧红色发光二极管亮(绿色发光二极管灭)作抢答指示,并且在单个LED数码管显示抢先一组的组别。
5、主持人向下拨K8,代表复位操作,指示灯和数码管熄灭。
6、主持人可以再次向上拨动K8,启动下一次抢答。
7、通过8255、8254完成设计。
三、实施方案思路
(1)设计思路
首先初始化8255,然后判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;否则启动下一次抢答,使绿色发光二极管亮,当8255的输入口A有不为0的数据时,则使红色发光二极管点亮、并判断先拨动开关的组号,在LED上显示出其组号。
 (2)使用设备
   并行接口8255:通过编程来指定它要完成的功能,是并行数字设备与微机间的接口。
   数码管:指示先抢答的组号。
   二极管:指示抢答。
   开关:作为抢答者的按钮。
四、硬件连线图
五、程序流程图
六、源程序
MY_DATA SEGMENT
P8255_A DW 0c800H
P8255_B DW 0c801H
P8255_C DW 0c802H
P8255_M DW 0c803H
KL DB ? ;数码管位选信号
SGTB DB 0C0H,0F9H,0A4H,0B0H,099H,92H,82H,0F8H
DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH
MY_DATA ENDs
MY_CODE SEGMENT
;MY_PROC PROC FAR ;
ASSUME CS:MY_CODE, DS:MY_DATA
START: MOV AX,MY_DATA
MOV DS,AX
MOV DX,P8255_M
MOV AL,82H ;写8255控制字A、B输出
OUT DX,AL ;PA输出、PB输入、PC输出
NEW: MOV DX,P8255_B
IN AL, DX
TEST AL,80H ;K8=1?
JNZ NEXT
REST: NOP
MOV DX,P8255_C
MOV AL,0C0H ;
OUT DX,AL
JMP NEW
;-------------------------------------------
NEXT: MOV DX,P8255_B