微机原理课程设计八路抢答器.docx

上传人:b****6 文档编号:3345939 上传时间:2022-11-21 格式:DOCX 页数:19 大小:328.61KB
下载 相关 举报
微机原理课程设计八路抢答器.docx_第1页
第1页 / 共19页
微机原理课程设计八路抢答器.docx_第2页
第2页 / 共19页
微机原理课程设计八路抢答器.docx_第3页
第3页 / 共19页
微机原理课程设计八路抢答器.docx_第4页
第4页 / 共19页
微机原理课程设计八路抢答器.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

微机原理课程设计八路抢答器.docx

《微机原理课程设计八路抢答器.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计八路抢答器.docx(19页珍藏版)》请在冰豆网上搜索。

微机原理课程设计八路抢答器.docx

微机原理课程设计八路抢答器

第一章抢答器简介

1、设计要求

设计一个具有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。

2、实现功能

启动计算机,计算机自动为系统各芯片进行初始化,抢答器开始工作。

比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。

若选手抢答成功,LED显示器显示选手号码,扬声器鸣叫。

若选手抢答违规(主持人未按开妈键),LED显示器显示违规选手号码,红灯亮,扬声器报警,并根据比赛规则进行对该选手进行扣分。

若系统提示某号选手抢答违规,主持人仍未按开始键,此时该号选手又按下抢答键,LED显示器显示该选手的号码。

本系统开机后,若主持人既未按复位键又未按开始键,此时有选手按下抢答键,系统提示红灯亮,并报警。

注:

1、抢答成功,置8253通道2计数值为1000,扬声器的鸣叫声音频率为1MHz/1000=1KHz。

2、抢答失败,置8253通道2计数值为2000,扬声器的鸣叫声音频率为1MHz/2000=0.5KHz。

3、扬声器鸣叫或报警的时间为12s。

 

第二章总体设计

1、总体设计框图

由于本次实验要用到数码显示、中断控制、倒计时等功能,故初步分析,需要8255、8259、8253等芯片。

经过分析,实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。

为此,可将8个抢答按钮信号通过一个8位并行输入口接至微机中。

当主持人启动抢答过程后,微机通过该并行输入口循环对8路抢答信号进行采样。

当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下该组的组号,每路抢答按钮电路可以参考图2.1进行设计。

图2.1抢答按钮电路

由图可知,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,而当微机采样到这8位数据不为0时,则表示有一组获得了抢答机会,然后通过逐位查询个位状态,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来.在实验中,可以仅用一位7段数码管来显示抢答选手的组号.

为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。

由于本系统要求对犯规的组亮红灯警告,所以要设置一个启动按键,在主持人按下启动按键之前,如果有抢答按钮被按下,则该抢答选手犯规,可以通过并行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。

综上所述,本实验的硬件电路设计如图2.2。

图2.2硬件结构示意图

其中8255与8086连接图如下图2.3

图2.38086与8255连接图

2、硬件总体设计

1)系统方案

该抢答器所要器件:

中断优先级管理器8259A、可编程并行接口芯片8255、可编程定时器/计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。

2)内存单元编址

①中断优先级管理器8259A的端口地址为20H、21H

②可编程并行接口接口芯片8255A的端口地址为80H、81H、82H、83H

③可编程定时器/计数器8253的端口地址为40H、41H、42H、43H

3)键盘、扬声器及显示功能的定义

10个按键中,一个开始键一个复位键,另外8个用做8位选手的抢答按键。

扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。

LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。

3、软件总体设计

1)存储单元的分配、标志位的含义

①定义一个TAB变量用来存储1~9的字形码信息,如下表

LED的管脚

对应的字形

对应存放在内存

单元的字形码

dp、g、f、e、d、c、b、a

00000110

01011011

01001111

01100110

01101101

01111100

00000111

01111111

01101111

1

2

3

4

5

6

7

8

9

06H

5BH

4FH

66H

6DH

7CH

07H

7FH

6FH

②定义一个BZ变量作为标志位,用来选手抢答是否违规,BZ=0FFH时表示主持人已经按下开始键选手可以抢答,BZ=00H表示主持人未按下开始按键,选手不可以抢答。

 

2)主程序流程图

图2.4主程序流程图

第三章硬件设计

1、芯片的介绍

1)中断优先级管理器8259A

①8259A内部结构

8259A采用NMOS工艺制成,有28根引脚,所有输入、输出端与TTL电平兼容,单一电源(Vcc=+5V)供电。

8259的内部主要组成部分,包括处理部件(中断请求寄存器IRR、优先级鉴别器PR及现行服务寄存器ISR)、控制部件(控制逻辑及中断屏蔽寄存器IMR)、数据总路线缓冲器、读/写逻辑以及级联缓冲器/比较器等5个部分。

②8259A主要的外部引脚

图3.18259A引脚图

D0~D7:

双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。

写控制输入信号,同控制总路线上的

信号相连。

读控制输入信号,同控制总路线上的

信号相连。

A0:

地址选择信号,用来对8259A内部的两个可编程寄存器进行选择。

片选输入信号,低电平有效。

有郊时可通过数据总路线设置命令并对内部寄存器进行读出。

当进入中断响应时序时,该引脚状态与进行的处理无关。

INT:

由8259A向CPU发出的中断请求信号。

输入信号,接收CPU送来的中断响应信号INTA。

IR0~IR7:

8个中断请求输入信号,高电平或上升沿有效。

用于接收外设接口来的中断请求。

③8259A工作方式

a.优先级设置方式:

全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。

b.中断源屏蔽方式:

普通屏蔽方式、特殊屏蔽方式。

c.中断结束方式:

中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。

d.系统总路线连接方式:

缓冲方式、非缓冲方式。

e.中断请求信号触发方式:

边沿触发方式、电平触发方式。

④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

⑤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

 

2)可编程并行接口接口芯片8255A

①8255A内部结构

8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。

8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。

②8255A主要的外部引脚

图3.28255A引脚图

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口都可以工作在些方式下。

方式1:

选通输入/输出方式(应答方式)。

A口、B口工作在此方式下。

方式2:

双向传输方式。

只有A口可以工作在此方式下。

④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输入

 

3)可编程定时器/计数器8253

①8253的内部结构

8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。

它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。

②8253的外部引脚

图3.38253引脚图

A1、A0:

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

CLK0、CLK1、CLK2:

时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。

CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。

当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。

GATE0、GATE1、GATE3:

门控输入端,用于外部控制计数器的启动计数和停止计数的操作。

两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。

OUT0、OUT1、OUT2:

计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。

③8253的工作方式

方式0:

减1计数到0,产生中断请求信号。

方式1:

减1计数到0,产生可重复触发的单稳态负脉冲信号。

方式2:

减1计数到1,分频器(速率信号发生器)。

方式3:

减1计数到初值的1/2,方波发生器。

方式4:

减1计数到0,软件触发产生选通负脉冲信号。

方式5:

减1计数到0,硬件触发产生选通负脉冲信号。

④8253方式控制字格式

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计数

2、芯片的连接

1)各芯片与CPU的连接

8259A、8255A、8253的数据总线D7~D0端、

端、

端、

端、

端、INT端分别与CPU的D7~D0数据总线、片选端、

端、

端、

端、INTR端。

8255A、8253的A1、A0端分别接入CPU地址线的A1、A0端,8259的A0端接到CPU地址线的A0端;

2)各芯片之间的连接和与外设的连接

8259A的IR2端接选手按键信息输出端;8255A的A口的PA7~PA0依次接“按键1”~“按键8”,B口的PB7~PB0通过驱动器1接到LED显示器,C口的PC4、PC5分别接复位键和开始键,PC3、PC2、PC1经驱动器2分别接绿灯发光二极管、红灯发光二极管、黄灯发光二极管,PC0接到8253的GATE1端;8253的GATE0端接+5V电压,OUT0的输出接入CLK1端,OUT1的输出经反相器后接入GATE2端,CLK0和CLK1接入1MHz的频率发生器,CLK2经驱动器3接扬声器。

 

第四章软件设计

1、子程序流程图

图4.1子程序流程图

2、子程序清单

;中断服务子程序

KEYINTPROCFAR

PUSHAX;保护现场

PUSHBX

PUSHDX

PUSHDS

CLI;并使本次中断压入堆栈中的IF=0

;(关中断)

INAL,80H;从8255的A口获取选手按键信息

NOTAL;将按键字节信息取反

MOVCX,8;计数8次

LOP4:

SHRAL,1;获取选手号码

LOOPNZLOP4

MOVAX,CX;把选手号传给AX

MOVBX,OFFSETTAB;查段码(字形码)

XLAT;将选手号转换成TAB中对应的LED

;字形码

OUT81H,AL

TESTBZ,OFFH;判断标志位是否为FFH

JZLOP5

MOVAL,00H;置8253通道2计数值

OUT42H,AL

MOVAL,10H

OUT42H,AL

MOVAL,03H;黄灯亮,抢答成功

OUT82H,AL

JMPKKK

LOP5:

MOVAL,00H;置8253通道2计数值

OUT42H,AL

MOVAL,20H

OUT42H,AL

MOVAL,05H;红灯亮,抢答违规

OUT82H,AL

KKK:

MOVAL,20H;给8259发中断结束命令,写OCW2

OUT20H,AL

POPAX;恢复现场

POPBX

POPDX

POPDS

IRET

KEYINTENDP

 

小结

通过本次实验掌握了微机系统的开发步骤,掌握了中断优先级管理器8259A、可编程并行接口接口芯片8255A、可编程定时器/计数器8253和数码管的用法,掌握了汇编程序的设计。

本次设计需要熟练掌握汇编语言,熟悉中断优先级管理器8259A、可编程并行接口接口芯片8255A、可编程定时器/计数器8253的内部结构、外部引脚和功能,熟悉LED显示器的结构及译码方式。

中断优先级管理器8259A在本系统中用来管理选手按键中断信息。

可编程并行接口接口芯片8255A在本系统中用来连接选手的按键,主持人的开始键和复位键,用来连接黄灯、红灯、绿灯三个发光二极管,用来提示抢答信息,用来连接LED显示器控制显示器的输出,还连接到8253的GATE1端,控制计数器的启动计数和停止计数的操作。

可编程定时器/计数器8253用来设定扬声器的发声频率和发声时间。

LED显示器用来连接到8255A的B口,用来显示选手号。

通过本次课程设计我也获得了许多收益,首先,让我更好的掌握了8259A、8255A、8253芯片的工作原理、方式及其应用。

其次,让我学会了如何设计一个简单的微机系统,以及设计一个简单微机系统所需要的步骤和设计中需要注意的地方。

本人在设计中遇到很多困难,大都是对和芯片的应用还不是很熟练,还需更加努力更加深入的了解微机系统和芯片功能。

由于我的能力和时间的限制,没能通过硬件的验证实验,只是通过查找一些资料和大脑抽象来设计本次课程设计,设计的抢答器还存在一些问题有待改进。

参考文献

1、仁向民·《微机接口技术实用教程》[M]·北京:

清华大学出版社

2、刘红玲、邵晓根·《微机原理与接口技术》[M]·北京:

中国电力出版社

3、江正战、沈志鸿·《三级偏硬考试教程》[M]·江苏:

东南大学出版社

4、阎石·《数字电子技术基础》[M]·北京:

高等教育出版社

5、张雪兰、谭毓安·《汇编语言程序设计》[M]·北京:

清华大学出版社

 

附录

主程序清单

DATASEGMENT

TABDB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H;1~9的段码

;(字形码)

BZDB00H

DATAENDS

STACKSEGMENTPARASTACK‘STACK’

DB100HDUP(?

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,CS:

CODE

START:

MOVAX,,DATA

MOVDS,AX

;8259A初始化

MOVAL,13H;初始化8259A的ICW1

OUT20H,AL

MOVAL,08H;送中断类型码基值,8259A的ICW2

OUT21H,AL

MOVAL,0DH;一般中断结束方式,8259A的ICW4

OUT21H,AL

;8255A初始化

MOVAL,98H;置8255A工作方式

OUT83H,AL

XORAL,AL;B口、C口初始化

OUT81H,AL

OUT82H,AL

;8253初始化

MOVAL,37H;置8253通道0控制字

OUT43H,AL

MOVAL,00H;置8253通道0计数初值为4000

OUT40H,AL

MOVAL,40H

OUT40H,AL

MOVAL,73H;置8253通道1控制字

OUT43H,AL

MOVAL,00H;置8253通道1计数初值为3000OUT41H,AL

MOVAL,30H

OUT41H,AL

MOVAL,B7H;置8253通道2控制字

OUT43H,AL

MOVAL,00H;置8253通道2控制字

OUT42H,AL

MOVAL,00H;置8253通道2计数初值为0

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,20H;检测C口的PC5端

JZLOP2;开始键未按下即PC5=0,则跳转检测

;复位键

LOP1:

INAL,82H;检测开始键是否已经弹起,即PC5=0

TESTAL,20H

JNZLOP1;开始键没有弹起再重新检测

MOVAL,00H;关LED显示器

OUT81H,AL;送到B口

MOVAL,08H;绿灯亮

OUT82H,AL;送到C口

MOVBZ,0FFH;置标志

STI

LOP2:

INAL,82H

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1