这里写自定义目录标题
设计任务:
设计一个6路的智力竞赛抢答器。在主持人侧,设置启动和复位开关以及抢答指示电路。选手侧各设置1个抢答按钮和指示灯。
设计要求如下:
1、 硬件测试通过。8259能够实现中断。8254能够实现呼吸灯。8255能够控制L8—L15的亮与灭。
2、 启动与复位。主持人按KK1+键表示表示启动一次抢答,绿色发光二极管亮作允许抢答指示。此时选手侧可以按动各自的抢答按钮。主持人按KK2+表示复位。红绿指示灯全灭,选手灯全灭。主持人可以再次按KK1+键,启动下一次抢答。
3、 抢答。使用实验仪的逻辑电平开关K0-K5来代表6个抢答按钮。当开关向上拨时表示按下按钮。收到第1个抢答信号后,主持人侧红色发光二极管亮(绿色发光二极管仍然亮)作已经有人抢答指示。
4、 显示选手灯。在单个LED灯上显示抢先一组的组别。
5、 在数码管上显示选手编号。
6、同时考虑抢答允许时间,10秒内有效。10秒之后无人抢答,本次抢答作废。
1、设计思路
首先初始化8255,然后判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;否则启动下一次抢答,使绿色发光二极管亮,当8255的输入口A有不为0的数据时,则使红色发光二极管点亮、并判断先拨动开关的组号,在LED上显示出其组号。
2、使用的I/O设备
需要的输入设备有:8个开关K0~K7。两个按键,KK1+和KK2+。
需要的输出设备有:8个LED灯L0~L7。一位数码管显示器。
3、使用的芯片
8255(并行接口芯片),8254(计时器芯片),8259(中断控制器芯片)三个芯片
1、8259芯片,实现中断控制。结合8254实现定时中断。启动和停止也由相应的中断服务程序实现。有三个中断源开放,MIR6、MIR7和SIR1。MIR6接OUT0,MIR7接KK1+,SIR1接KK2+。
2、8255芯片,有PA、PB和PC三个并行口。PA口接8个开关的输入,让PB口去控制选手LED灯L0~L7。PC口自然去接数码管。
3、8254芯片,实现硬件定时。定时10s。有两个通道CNT0和CNT1可用。选用CNT0和CNT1使用。
MIR6实现定时检查按键
MIR7实现定时10秒
SIR1实现RESET和START
TIMER0 EQU 0600H ;IOY0
TIMER1 EQU 0602H
TIMER2 EQU 0604H
TIMERM EQU 0606H
P8255A EQU 0640H ;IOY1
P8255B EQU 0642H
P8255C EQU 0644H
P8255M EQU 0646H
;---------------------------------------------------------------
DATA SEGMENT
DISCODE DB 3FH,06H,5BH,4FH,66H,6DH,7D