竞赛抢答器报告.docx
《竞赛抢答器报告.docx》由会员分享,可在线阅读,更多相关《竞赛抢答器报告.docx(21页珍藏版)》请在冰豆网上搜索。
![竞赛抢答器报告.docx](https://file1.bdocx.com/fileroot1/2023-1/29/6128ec68-48d8-4f47-b60a-c54bb01353db/6128ec68-48d8-4f47-b60a-c54bb01353db1.gif)
竞赛抢答器报告
微机原理课程设计
4路竞赛抢答器
完成人:
XXXX
班级:
XXXXXXXXXX
学号:
XXXXXXXX
指导教师:
XXXX
完成时间:
前言
课程设计的意义
微机原理是计算机、电子类专业的专业基础课,在课程体系种占有重要的位置。
课程设计的目的是配合平时的教学和实验,以达到巩固和消化课堂教学内容,进一步加强综合应用能力,启发创新思维的目的。
是培养学生综合素质,提高动手能力,提高发现问题和解决问题能力的重要阶段。
通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:
⑴、调查研究、分析问题的能力;
⑵、使用设计手册、技术规范的能力;
⑶、查阅中外文献的能力;
⑷、制定设计方案的能力;
⑸、计算机应用的能力;
⑹、设计计算和绘图的能力;
⑺、技术经济指标的分析能力;
⑻、语言文字表达的能力。
目录
课程设计任务书………………………………………………………3
正文
一、总体设计…………………………………………………………4
二、硬件设计
1、硬件总体设计………………………………………………6
2、芯片使用情况………………………………………………8
3、芯片连接……………………………………………………14
三、软件设计
1、标志位含义…………………………………………………15
2、程序流程图…………………………………………………16
四、总结……………………………………………………………21
参考文献……………………………………………………………23
课程设计图纸………………………………………………………24
程序清单……………………………………………………………25
课程设计任务书
具有4路抢答的抢答器,启动计算机,计算机自动为系统各
芯片进行初始化,抢答器开始工作。
基本要求:
(1)可供4组同时抢答,由按钮控制。
(2)比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。
(3)能显示出最先抢答的组号,而对其他组的抢答不予理睬,黄灯亮并扬声器提示抢答成功。
(4)对主持人未曾按启动键之前就按抢答按键的犯规组,显示其组号,亮红灯并扬声器提示警告。
(5)对抢答后的回答时间25秒进行倒计时控制,如回答超时,则
以扬声器报警。
注:
1、抢答成功,扬声器的鸣叫声音频率为1KHz。
2、抢答失败,扬声器的鸣叫声音频率为0.5KHz。
3、抢答计时时间到,扬声器的鸣叫频率为0.75KHz.
4、声器鸣叫或报警的时间为12s。
总体设计
比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。
利用并行接口和开关键。
逻辑开关K0——K3代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下。
若选手抢答成功,黄灯亮,七段数码管显示选手号码,扬声器鸣叫。
若选手抢答违规(主持人未按开始键),七段数码管显示违规选手号码,红灯亮,扬声器报警。
若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,七段数码管显示该选手的号码。
本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。
由于本次实验要用到数码显示、中断控制、倒计时等功能,故初步分析,需要8255、8259、8253(或8254)等芯片。
经过分析,实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。
为此,可将4个抢答按钮信号通过一个8位并行输入口接至微机中。
当主持人启动抢答过程后,微机通过该并行输入口对4路抢答信号进行采样,并作检测。
开关接通时为高电平,当4组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,而当微机采样到这8位数据不为0时,则表示有一组获得了抢答机会,然后通过比较查询,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来。
在实验中,可以仅用一位7段数码管来显示抢答选手的组号。
显示组号同时,调用扬声器发出提示音。
为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。
响铃信号同样需要有计时器控制响铃时间和声音频率。
由于本系统要求对犯规的组亮红灯警告,所以要设置一个启动按键,启动键信号可由并行输入接口输入。
在主持人按下启动按键之前,如果有抢答钮被按下,则该抢答选手犯规,可以通过并行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。
硬件设计
一、硬件总体设计
1、硬件电路设计结构示意图
扬声器
2、系统方案
该抢答器所要器件:
中断优先级管理器8259A、可编程并行接口芯片8255、可编程定时器/计数器8254,黄、红、绿三个发光二极管,若干个多输入端的与非门,一个扬声器,一个LED数码显示器,6个按键以及其他基本电路元件。
本设计中使用了更通用的8354代替了8253。
3、内存单元编址
本设计按照一般微机原理实验的习惯,事先给主要芯片编好端口地址,便于编程,译码电路连接时按下面地址连线。
①中断优先级管理器8259A的端口地址为20H、21H;
②可编程并行接口接口芯片8255A的端口地址为80H、81H、82H、83H;
③可编程定时器/计数器8254的端口地址为40H、41H、42H、43H
4、键盘、扬声器及显示功能的定义
6个按键中,一个开始键一个复位键,另外4个用做8位选手的抢答按键。
扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。
LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。
抢答成功后黄灯熄灭,开始计时。
二、芯片使用情况
1、中断优先级管理器8259A
(1)8259A主要的外部引脚
D0~D7:
双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。
:
写控制输入信号,同控制总路线上的
信号相连。
:
读控制输入信号,同控制总路线上的
信号相连。
A0:
地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。
:
片选输入信号,低电平有效。
有郊时可通过数据总路线设置命令并对内部寄存器进行读出。
当进入中断响应时序时,该引脚状态与进行的处理无关。
INT:
由8259A向CPU发出的中断请求信号。
:
输入信号,接收CPU送来的中断响应信号INTA。
IR0~IR7:
8个中断请求输入信号,高电平或上升沿有效。
用于接收外设接口来的中断请求。
(2)8259A工作方式
a.优先级设置方式:
全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。
b.中断源屏蔽方式:
普通屏蔽方式、特殊屏蔽方式。
c.中断结束方式:
中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。
e.系统总路线连接方式:
缓冲方式、非缓冲方式。
f.中断请求信号触发方式:
边沿触发方式、电平触发方式。
(3)8259A初始化控制字格式
ICW1(芯片控制字)
D7D6D5
D4
D3
D2
D1
D0
000
特征位
1
触发方式
0边沿触发
1电平触发
0
单片选择信号
0多片8259级联
1单片8259
是不要ICW4
0不要(8080/8085)
1要(80X86)
ICW2(中断类型码控制字,D7~D3设置中断类型码)
D7
D6
D5
D4
D3
D2
D1
D0
×
×
×
×
×
0
0
0
ICW3(主片,级联时才用设置,各位为1则表示接有从片)
D7
D6
D5
D4
D3
D2
D1
D0
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
ICW3(从片,级联时才用设置)
D7
D6
D5
D4
D3
D2D1D0
0
0
0
0
0
ID2ID1ID0从片INT接于主片的引脚
000IR0
001IR1
…………
111IR7
ICW4(方式控制字)
D7D6D5
D4
D3
D2
D1
D0
000
嵌套方式
0全嵌套方式
1特殊全嵌套方式
缓冲方式
0非缓冲方式
1缓冲方式
缓冲方式下
0本片为从片
1本片为主片
中断结束方式
0中断非自动结束
1中断自动结束
系统类型
08080/8085
180X86
(4)8259A操作命令字格式
OCW0(中断屏蔽字,各位为1则被屏蔽)
D7
D6
D5
D4
D3
D2
D1
D0
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
OCW1(轮转优先级和中断结束字)
D7
D6
D5
D4D3
D2D1D0
轮转位
0非轮转
1轮转
选择标志位
1L2~L0无效
1L2~L0有效
中断结束位
0非中断结束
1中断结束
特征位
00
标志位
000IR0优先级最低
001IR1优先级最低
OCW2(特殊屏蔽、查询和状态读取字)
D7
D6
D5
D4D3
D2
D1
D0
0
特殊屏蔽方式允许位
0禁止特殊屏蔽方式
1允许特殊屏蔽方式
特殊屏蔽方式位
0非特殊屏蔽方式
1特殊屏蔽方式
特征位
01
中断查询位
0非中断查询
1中断查询
读寄存器
0禁止读
1允许读
0读IRR
1读ISR
(5)本设计中8259A的工作方式
a.芯片控制ICW1:
采用边沿触发,单片8259,要写入ICW4控制字;
b.中断类型码ICW2:
设置IR0~IR7的中断类型码依次为08H、09H、…、0FH;
c.方式控制ICW4:
优先级设置方式为全嵌套方式即固定优先级方式,系统总线连接方式为主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在80X86系统上。
2、可编程定时器/计数器8254
(1)8254的内部结构
8254采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为10MHz。
它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。
(2)8254的外部引脚
A1、A0:
地址输入线,用来编址8254内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。
CLK0、CLK1、CLK2:
时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。
CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。
当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。
GATE0、GATE1、GATE3:
门控输入端,用于外部控制计数器的启动计数和停止计数的操作。
两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。
OUT0、OUT1、OUT2:
计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。
(3)8254的工作方式
a.方式0:
减1计数到0,产生中断请求信号。
b.方式1:
减1计数到0,产生可重复触发的单稳态负脉冲信号。
c.方式2:
减1计数到1,分频器(速率信号发生器)。
d.方式3:
减1计数到初值的1/2,方波发生器。
e.方式4:
减1计数到0,软件触发产生选通负脉冲信号。
f.方式5:
减1计数到0,硬件触发产生选通负脉冲信号。
(4)8254方式控制字格式
D7D6
D5D4
D3D2D1
D0
00选计数器0
01选计数器1
10选计数器2
00计数器锁存
01只读写低8位
10先读写高8位
11先读写低8位
再读写高8位
000方式0
001方式1
X10方式2
X11方式3
100方式4
101方式5
0二进制计数
1BCD计数
(5)8254控制字要求
8254的CLK0和CLK1级联,实现对时间长度的控制,CLK0用工作方式3,CLK0用工作方式0。
CLK1用工作方式3,控制响铃频率。
3、可编程并行接口接口芯片8255A
(1)8255A内部结构
8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。
8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。
(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时,选择控制口。
(3)8255A工作方式
a.方式0:
基本的输入/输出方式。
A口、B口、C口都可以工作在些方式下。
b.方式1:
选通输入/输出方式(应答方式)。
A口、B口工作在此方式下。
c.方式2:
双向传输方式。
只有A口可以工作在此方式下。
(4)8255A方式控制字格式
D7
D6、D5
D4
D3
D2
D1
D0
1
A口
A口
C口高4位
B口
B口
C口低4位
00方式0
01方式1
1x方式2
0输出
1输入
0输出
1输入
0方式0
1方式1
0输出
1输入
0输出
1输入
(5)8255A控制字要求
A口工作在方式0,作为输入端口用于连接选手按键(S3~S0依次对应按键4~1);B口工作在方式0,作为输出端口,连接LED显示器(PB7~PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);C口也必须工作在方式0,低4位做输入端口(本次设计中用PC2、PC1,分别用于连接复位键和开始键,PC3连接计数器输出信号),高4位做输出端口(PC4、PC5、PC6分别用于连接黄、红、绿三个发光二极管,PC7连接到一个与门输入,控制扬声器是否发声音)。
三、芯片连接
1、各芯片与CPU的连接
连接时参考各芯片的管脚功能。
8259A、8255A、8254的数据总线D7~D0端、
端、
端、
端、
端、INT端分别与CPU的D7~D0数据总线、片选端、
端、
端、
端、INTR端。
8255A、8253的A1、A0端分别接入CPU地址线的A1、A0端,8259的A0端接到CPU地址线的A0端;CPU其余地址线通过译码电路与相应的芯片连接。
在电路原理图中,用多输入的或非门简化了译码电路。
2、各芯片之间的连接和与外设的连接
8259A的IR2端接选手按键信息输出端;8255A的A口的PA0~PA3依次接“按键1”~“按键3”,B口的PB7~PB0接到LED八段数码显示器,C口的PC2、PC1分别接复位键和开始键,PC6、PC5、PC4分别接绿灯发光二极管、红灯发光二极管、黄灯发光二极管,PC7接到扬声器控制与非门的一个输入端;8253的GATE0、GATE1、GATE2端接+5V电压,OUT0的输出接入CLK1端,OUT1的输出接入PC3端,CLK0和CLK1接入1.8432MHz的频率发生器,OUT2接扬声器控制输入信号端。
3、存储器及其他设备的连接
在此电路图中,存储器和其他相关设备被省略。
在实际电路中需要按各芯片的规格接入电路,构成完整的系统。
软件设计
一、标志位含义
1、定义一个TAB变量用来存储1~4和E的字形码信息,如果两人或多人同时抢答显示“E”,同样转到报警。
字形信息如下表:
LED的管脚
对应的字形
对应存放在内存
单元的字形码
dp、g、f、e、d、c、b、a
00000110
01011011
01001111
01100110
01111001
1
2
3
4
E
06H
5BH
4FH
66H
79H
2、定义一个BZ变量作为标志位,用来选手抢答是否违规,BZ=0FFH时表示主持人已经按下开始键选手可以抢答,BZ=00H表示主持人未按下开始按键,选手不可以抢答。
二、程序流程图
1、主程序流程图
结束
2、中断子程序流程图
中断返回
3、抢答成功和抢答犯规处理程序流程图
抢答成功后,扬声器首先以1KHz的频率鸣叫12s。
本设计中8254使用的时钟脉冲为1.8432MHz。
对于用于计时的计数器1和0,共计需计数次数为1843200*12,因此,给计数器0赋值为18432,即4800H;计数器1赋值为1200,即4B0H。
抢答犯规时的12s与此相同,可以在给数显管赋值时同时做这个工作。
对于1KHz的频率,计数器2使用方式3产生方波,对输入时钟信号进行1843分频即可,因此赋初值为1843,即733H。
计时时间为25s,给计数器0赋初值18432,即4800H,计数器1赋初值2500,即9C4H。
计时时间到后,扬声器鸣叫频率为0.75KHz,对应地给计数器2赋初值2458,即99AH。
抢答失败后,扬声器以0.5KHz的频率鸣叫12s。
与抢答成功后的情况类似。
对应地,给计数器0赋值为18432,即4800H;计数器1赋值为1200,即4B0H。
对于0.5KHz的频率,给计数器2因此赋初值为3686,即0E66H。
具体流程图如下:
抢答成功流程图
结束
抢答犯规程序流程图:
结束
以上具体程序清参见程序清单,此处不再列出。
总结
微机原理课程设计与我以前所做的电路实验或编程有很大的不同。
这个需要将软件与硬件结合,编程时要考虑硬件连接的问题,硬件连接更改时,程序也要相应地做更改。
相对而言,难度系数增加不少。
首先,说明下我对此课程设计的理解。
此课程设计使用了8086/8088微机系统,为了连线方便我使用了8088。
8086/8088微机系统相对于现在的计算机,性能上要差了很多。
但这并不意味着它的功能简单。
本课程设计需要完成的4路抢答器这样的功能其实是浪费资源了。
但这课程设计可以通过这样一个相对简单的应用让我们了解微机的基本原理、基本结构。
完成此项设计还需要综合考虑各方面因素,可以提高我们综合应用能力。
此课程设计的要求为4路抢答器,实际上8255的PCA端口只用了4个输入端,可以根据需要增加抢答键的数目,通过级联8255可以接入更多路。
改变抢答键数目时需要对程序相关部分做出修改。
通过可编程器件完成的设计一般都有较好的扩展性。
此次课程设计完成得比较仓促,存在很多不足。
首先,由于资源有限,本次课程设计仅仅停留在了理论上,没有经过实际检验。
其次,相关程序并没有进行深入思考,可能存在不合理之处;在电路原理图绘图时,也没有进行较好的布局。
最后,此抢答器功能上可以有更多的扩展,比如加上一个计分环节,但由于时间关系没有去尝试。
此次课程设计使我系统地认识了微机原理这门课程,之前对各知识点的理解都只是片面的,各个芯片理解时都是单一理解的,没有考虑过它们的相互配合。
而此课程设计使我将这些内容串联起来,对各项内容有了一个整体的概念,对微机原理有了更全面、深刻的认识。
参考文献
王忠民•《微型计算机原理(第二版)》•西安电子科技大学出版社
郑榕•《微机原理与接口技术实验指导书(修改版)(非计算机专业)》•北京科技大学信息工程学院
程序清单
;主程序
DATASEGMENT;数据段
TABDB06H,5BH,4FH,66H,79H;1~4和E的段码;
BZDB00H
DATAENDS
STACKSSEGMENTPARASTACK'STACK'
DB100HDUP(?
)
STACKSENDS
CODESEGMENT;代码段
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVDX,20H;初始化实验系统中8259的ICW1
MOVAL,13H;边沿触发、单片8259、需要ICW4
OUTDX,AL
MOVDX,21H;初始化实验系统中8259的ICW2
MOVAL,08H;根据ICW2的格式写入00001000B,即08H
OUTDX,AL
MOVDX,21H;初始化实验系统中8259的ICW4
MOVAL,0DH;一般中断结束方式
OUTDX,AL
;8255A初始化
MOVAL,91H;置8255A工作方式
OUT83H,AL
MOVAL,00H;B口、C口初始化
OUT81H,AL
OUT82H,AL
;8253初始化
MOVAL,36H;初始化8254通道0工作方式3,初值为0
OUT43H,AL
MOVAL,00H
OUT40H,AL
MOVAL,00H
OUT40H,AL
MOVAL,70H;通道1工作方式0,初始值为0
OUT43H,AL
MOVAL,00H
OUT41H,AL
MOVAL,00H
OUT41H,AL
MOVAL,0B6H;通道2工作方式3
OUT43H,AL
MOVAL,00H
OUT42H,AL
MOVAL,00H
OUT42H,AL
;中断设置
MOVAH,25H;设置抢答按键中断向量
MOVAL,0AH;中断类型号为入口参数
MOVBX,SEGKEYINT;DS:
DX指向4字节地址
MOVDS,BX
MOVDX,OFFSETKEYINT
INT21H
STI;使IF置1,开放可屏蔽中断
;主循环
LOPM:
INAL,82H;检测开始键
TESTAL,02H;检测C口的PC1端
JZLOP2;开始键未按下即PC1=0,则跳转检测复位键
LOP1:
INAL,82H;检测开始键是否已经弹起,即PC1=0
TESTAL,02H
JNZLOP1;开始键没有弹起再重新检测
MOVAL,00H;关LED显示器
OUT81H,AL;送到B口
MOVAL,40H;绿灯亮
OUT82H,AL;送到C口
MOVBZ,0FFH;置标志
STI
LOP2:
INAL,82H;检测复位键
TESTAL,04H;检测C口的PC