微机原理课程设计基于

微机原理课程设计基于
微机原理课程设计基于

学号:

HEBEI UNITED UNIVERSITY

微机原理课程设计说明书

设计题目:八路竞赛抢答器

学生姓名:

专业班级:

学院:

指导教师:

2012年11月22日

成绩评定表

摘要

现在很多地方都可能会有各种智力竞赛,当遇到抢答环节时,如果要求主持人自己去用肉眼观察哪一个选手抢答的速度最快无疑会对比赛结果造成很大的影响,同时使比赛失去了公平和公正性,这时候我们想到了抢答记分器是必要设备。数字抢答器由主体电路与扩展电路组成。用我们刚刚学过的汇编语言编写程序模拟分析了竞赛中抢答系统的运用,结合竞赛的实际情况阐述了抢答系统的工作原理,给出了一种简单实用的多路抢答系统的硬件、软件电路设计方案。该系统适用于竞赛中的抢答环节。现假定竞赛中共有八名选手,主持人宣布抢答开始后,进入倒计时,倒计时间为10秒,10秒内若有选手按下抢答按钮,则倒计时结束,屏幕显示最先抢答选手的号码;若10秒内无人抢答,则该轮抢答结束。当主持人按下复位按钮时,屏幕显示清零,等待下一轮抢答。

本课题设计了一种采用8255芯片和汇编语言制作的多功能抢答器,实验箱中的开关区和数码显示区共同完成。主要功能:1.倒计时10秒 2.用LED数码管显示1-8号选手先按下键者的号码。它除了具有基本的抢答功能之外,和数显的功能,当抢答开始后,系统会自动倒计时,并且时间是可以预设的,期间有人抢答的话系统会停止计时,如果期间没人抢答,系统自动锁存直到主持人按下复位键。

Abstract

Now many places may have a variety of intellectual competition responder, when link, if ask themselves to see with the unaided eye which one contestant vies to answer first the fastest will undoubtedly have great impact on the outcome of the game, the game lost fair and justice, at that time we thought the answer scoring apparatus is necessary equipment. The figure vies for the answering device extended from the main circuit and the circuit. We have just learned with the assembly language program to simulate and analyze the race responder system used, combined with the actual situation of competition elaborated vies to answer first the working principle of the system, this paper presents a simple and practical the responder system hardware, software design. The system is applicable to contest Responder link. It is assumed that the race a total of eight players, the host announced the answer after the start, entered the countdown, countdown time of 10 seconds, 10 seconds if the contestant to answer in the button pressed, the end of the countdown, the screen display first player answer number; if nobody answer the question within 10 seconds, the wheel the answer in the end. When the host press the reset button, the screen display clear, waiting for the answer in the next round.

The task of designing a method using 8255 chip and assembly language produced by multi-functional responder, the experimental box switch region and digital display area together. Main function: 1 countdown 10 seconds 2 with LED digital tube display 1-8 player to press the number keys. It has a basic responder function, and digital display function, when the answer after the start, the system will automatically countdown, and the time can be preset, during the answer words system will stop the clock period, if no answer, the system automatically latched until the host press the reset button.

目录

前言 (6)

第一章八路竞赛抢答器的设计要求与设计案 (7)

1.1 八路竞赛抢答器方案的选择与比较 (7)

1.2 八路竞赛抢答器的元件选择 (7)

第二章八路竞赛抢答器的硬件设计 (9)

2.1 八路竞赛抢答器的硬件框图 (9)

2.2 显示电路设计 (9)

2.3 抢答电路设计 (9)

2.4 开始、复位开关控制电路设计 (10)

2.5 可编程并行接口8255及其引脚说明 (11)

2.6 8086及引脚说明 (13)

第三章八路竞赛抢答器的软件设计 (21)

3.1 主程序流程图 (21)

3.2 显示模块程序设计 (21)

3.3 延时模块程序设计 (22)

3.4 开始模块程序设计 (22)

3.5 复位模块程序设计 (23)

第四章设计体会与小结 (24)

4.1 总结设计体会与心得 (24)

第五章参考文献 (25)

附录一 (26)

附录二 (27)

前言

微机接口课程设计是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。抢答器能保证比赛中抢答的公正性,在很多场合得到了广泛的应用。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

现在很多地方都可能会有各种智力竞赛,当遇到抢答环节时,如果要求主持人自己去用肉眼观察那一个选手抢答的速度最快无疑会对比赛结果造成很大的影响,同时使比赛失去了公平和公正性,这时候我们想到了抢答记分器是必要设备。数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。本论文主要介绍了一种用8255芯片实现的数码八位抢答器的电路组成、设计构想及功能。该抢答器除具有基本的抢答功能外,还具有计时的功能。主持人通过时间预设开关计算抢答时间。系统将完成自动倒计时。若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,主持人按复位键重新开始。抢答器在现实生活中应用很广泛,因此抢答器的的设计具有非常重要的意义。

第一章八路竞赛抢答器的设计要求与设计方案

1.1 八路竞赛抢答器的方案选择与比较

本设计以微机原理及接口技术为基础,以实验箱为工具,完成P智能抢答器设计。该智能抢答器包括8086最小应用系统整体设计模块、键盘处理模块(DOS 调用)、答题计时模块、LED数码管显示模块。选用8086作为微处理器、扩展可编程并行I/O接口8255A芯片、可编程定时计数芯片8253(或不用)、可编程中断控制器8259A(或不用)、LED数码管及键盘和发光二极管等元件,制定方案如下:

方案一选用8255A,8253,8259,实验箱键盘显示区

1. 8253作为定时器使用。

2. 8259利用IR0端作为定时到的中断引入端,IR2端作为开始键按下的中断引入端,IR3端作为清零键按下的中断引入端,IR4端作为暂停键按下的中断引入端。

3. 8255 作为并行输入输出,A口键盘接显示区,C口接清零键和开始键,B 口8个抢答开关

4. 键盘显示区由四个LED数码管和10个按键组成。

方案二选用8255,实验箱键盘显示区

1. 8255作为并行I/O接口,A口接8个抢答开关,B口显示区,C口清零键和开始键。

2. 利用软件编程进行定时功能

方案选择:

方案二采用扫描,没有用到8259,8253程序编制简单,但是cpu耗费了更多的时间在扫描,效率相对来说较低。方案一采用中断,程序结构化更为清晰,且cpu少了循环扫描的时间,效率较高。但是多用了一个8259中断控制芯片,一个8253定时/计时芯片,程序编制上涉及到中断服务子程序的编写,稍显复杂,且硬件相应增多,费用也相应较多。

经过小组讨论,先采用更实用、经济的方案二,完成基本和扩展功能。若有时间,再采用方案一完成实验。

1.2 八路竞赛抢答器的元件选择

1)处理器的选择

微型机具有体积小、重量轻、耗电少、价格低廉、可靠性高、结构灵活等特点,所以选择8086系统

2)显示电路

显示可通过彩灯和数码管来实现。如果用彩灯作为显示功能,则不是很直观。而数码管具有显示亮度高,使用寿命长,且能直观方便的看到倒计时数字,和选手编号,因此选用数码管显示。

3)芯片选择

8255作为并行I/0接口,能满足10个输入按键的输入功能,声音系统的输出,和LED数码管的输出。并且8255的每个接口还有锁存和数据缓冲作用。所以选择8255芯片。

第二章八路竞赛抢答器的硬件设计2.1 八路竞赛抢答器的硬件框图

图2.1--八路竞赛抢答器硬件框图

2.2显示电路设计

8255芯片的PB0至PB7分别与数码管的八个引脚相连。将8255芯片中需要显

示的信息通过B口送入数码显示区,由数码管的亮灭显示出来。

图2.2--显示电路

系统复位等辅助电路倒计时和抢答电路

八段数码管显示电路

8255A

按键电路

8086CPU

2.3抢答电路设计

8255芯片的PA0至PA7分别与8个拨码开关相连,将八位选手的抢答信号(由拨码开关控制)通过A口送入8255芯片。

图2.3--抢答电路

2.4开始和复位电路

8255芯片的PC0口对应开始按键,PC3口对应复位按键。将抢答开始和结束的信号(由开始按键和复位按键控制)通过C口送入8255芯片。

图2.4--开始和复位电路2.5 可编程并行接口8255及其引脚说明

图2-5 8255A引脚图

引脚功能

RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。

RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许

CPU将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'

A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.

当A1=0,A0=0时,PA口被选择;

当A1=0,A0=1时,PB口被选择;

当A1=1,A0=0时,PC口被选择;

当A1=1.A0=1时,控制寄存器被选择。

8255端口地址

表2-1

2.6 8086及引脚说明

图2-6 8086引脚图

两种模式下,名称和功能相同的32个引脚

1、VCC、GND:电源、接地引脚(3个),8086CPU采用单一的+5V电源,但有

两个接地引脚。

2、AD

15—AD

(Address Data Bus):地址/数据复用信号输入/输出引脚(16

个),分时输出低16位地址信号及进行数据信号的输入/输出。

3、A

19/s

6

—A

15

/s

3

(Address Status Bus):地址/状态复用信号输出引脚(4

个),分时输出地址的高4位及状态信息,其中s

6

为0用以指示8086CPU

当前与总线连通;s

5 为1表明8086/8088CPU可以响应可屏蔽中断;s

4

、s

3

共有四个组态,用以指明当前使用的段寄存器,如表9-5所示,00—ES,01—SS,10—CS,11—DS。

4、NMI(Non-Maskable Interrupt)、INTR(Interrupt Request):中断请求信号输入引脚(2),引入中断源向CPU提出的中断请求信号,高电平有效,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。

5、RD(Read):读控制输出信号引脚(1),低电平有效,用以指明要执行一个对内存单元或I/O端口的读操作,具体是读内存单元,还是读I/O端口,取决于IO

M/控制信号。

6、CLK/(Clock):时钟信号输入引脚(1),时钟信号的方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为底电平,8086/8088的时钟频率(又称为主频)为4.77MHz,即从该引脚输入的时钟信号的频率为4.77MHz。

7、Reset(Reset):复位信号输入引脚(1),高电平有效。8088/8086CPU要求复位信号至少维持4个时钟周期才能起到复位的效果,复位信号输入之后,CPU 结束当前操作,并对处理器的标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设置为0FFFFH。

8、READY(Ready):“准备好”状态信号输入引脚(1),高电平有效,“Ready”输入引脚接收来自于内存单元或I/O端口向CPU发来的“准备好”状态信号,表明内存单元或I/O端口已经准备好进行读写操作。该信号是协调CPU与内存单元或I/O端口之间进行信息传送的联络信号。

9、TEST (Test):测试信号输入引脚(1),低电平有效,TEST信号与WAIT指令结合起来使用,CPU执行WAIT指令后,处于等待状态,当TEST引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。

10、MN/MX(Minimum/Maximum Model Control)最小/最大模式设置信号输入引脚(1),该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。

11、BHE/S7(Bus High Enable/Status):高8位数据允许/状态复用信号输出引脚(1),输出。分时输出BHE有效信号,表示高8为数据线D15—D8上的数

据有效和S

7 状态信号

但S

7

未定义任何实际意义。

利用BHE信号和AD0信号,可知系统当前的操作类型,具体规定见表2-2 所示。

表2-2 BHE 和A0的代码组合和对应的操作

在8088系统中,该引脚为0SS ,用来与R DT /、IO M /一起决定8088芯片当前总线周期的读写操作,如表2-3所示。 IO M /R DT /0SS 性能 1 0 0 中断响应 1 0 1 读I/O 端口 1 1 0 写I/O 端口 1 1 1 暂停(Halt ) 0 0 0 取指令操作码 0 0 1 读存储器 0 1 0 写存储器 0 1 1 无源

表2-3

(3).最小模式下的24--31引脚

当8086CPU 的X M MN /引脚固定接+5V 时,CPU 处于最小模式下,这时候剩余的24—31共8个引脚的名称及功能如下:

1、INTA (Interrupt

Acknowledge )中断响应信号输出引脚(1),低电平有效,该引脚是CPU 响应中断请求后,向中断源发出的认可信号,用以通知中断源,以便提供中断类型码,该信号为两个连续的负脉冲。

2、ALE (Address Lock Enable ):地址锁存允许输出信号引脚(1),高电平有效,CPU 通过该引脚向地址锁存器8282/8283发出地址锁存允许信号,把当前地址/数据复用总线上输出的是地址信息,锁存到地址锁存器8282/8283中去。

注意:ALE信号不能被浮空。

3、DEN(Data Enable):数据允许输出信号引脚,低电平有效,为总线收发器8286提供一个控制信号,表示CPU当前准备发送或接收一项数据。

4、R

DT/(Data Transmit/Receive):数据收发控制信号输出引脚(1),CPU 通过该引脚发出控制数据传送方向的控制信号,在使用8286/8287作为数据总线收发器时,R

DT/信号用以控制数据传送的方向,当该信号为高电平时,表示数据由CPU经总线收发器8286/8287输出,否则,数据传送方向相反。

5、M

IO/(Memory/Input &Output): 存储器/I/O端口选择信号输出引脚(1),这是CPU区分进行存储器访问还是I/O访问的输出控制信号。当该引脚输出高电平时,表明CPU要进行I/O端口的读写操作,低位地址总线上出现的是I/O 端口的地址;当该引脚输出低电平时,表明CPU要进行存储器的读写操作,地址总线上出现的是访问存储器的地址。

6、WR(Write): 写控制信号输出引脚(1),低电平有效,与M

IO/配合实现对存储单元、I/O端口所进行的写操作控制。

7、HOLD(Hold Request): 总线保持请求信号输入引脚(1),高电平有效。这是系统中的其它总线部件向CPU发来的总线请求信号输入引脚。

8、HLDA(Hold Acknowledge):总线保持响应信号输出引脚,高电平有效,表示CPU认可其他总线部件提出的总线占用请求,准备让出总线控制权。(4).最大模式下的24--31引脚

当8086CPU的X

M

MN/引脚固定接地时,CPU处于最大模式下,这时

候剩余的24—31共8个引脚的名称及功能如下:

1、QS

1、QS

(Instruction Queue Status):指令队列状态信号输出引脚(2),

这两个信号的组合给出了前一个T状态中指令队列的状态,以便于外部88086CPU 内部指令队列的动作跟踪,如下表所示:

2、2S 、1S 、0S :总线周期状态信号输出引脚(3),低电平的信号输出端, 这些信号组合起来,可以指出当前总线周期中,所进行数据传输过程的类型,总线控制器8288利用这些信号来产生对存储单元、I/O 端口的控制信号。2S 、

1S 、0S 与具体物理过程之间的对应关系,如表所示。

0S 2S

表2-5

这里对无源状态(在的最小模式中也存在,见P19)作一说明:从表中可以看出,每一种2S 1S 0S 的组合都对应一个具体的总线操作,除111外,其余都称为有源状态。也就是说,在有源状态(对应前一个总线周期的4T 和本总线周期的1T 和2T 状态)中,2S 1S 0S 至少有一个信号为0,当111012 S S S 时(对应总线周期的3T 和w T 且READY =1),也就是一个总线操作即将结束,另一个总线周期还未开始时,称为无源状态,很显然,这时2S 1S 0S 中任一信号的改变,都意味着一个新的总线周期的开始。

3、LOCK (Lock):总线封锁输出信号引脚(1),低电平有效,当该引脚输出低电平时,系统中其它总线部件就不能占用系统总线。

LOCK 信号是由指令前缀LOCK 产生的,在LOCK 前缀后面的一条指令执行完毕之后,便撤消LOCK 信号。此外,在8086的2个中断响应脉冲之间,LOCK 信号也自动变为有效的低电平,以防止其它总线部件在中断响应过程中,占有总线而使一个完整的中断响应过程被中断。

4、1/GT RQ 、0/GT RQ (Request/Grant):总线请求信号输入/总线允许信号输出引脚(2)。这两个信号端可供CPU 以外的两个处理器,用来发出使用总线的请求信号和接收CPU 对总线请求信号的应答。这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输,方向相反。其中1/GT RQ 比0/GT RQ 的优先级高。 (5).相关问题的说明

1、8086的数据线与地址线、状态线是分时复用的,即在某一时刻,总线上出现的是输出地址信息,在另一时刻,总线上是所需读、写的数据信息,或状态信息。

2、除了个别引脚外,8086的控制信号引脚的定义是一致的,有差别的是,8088的第18脚为M O I /,8086为M IO /,主要是为了使前者能与8位微处理器8080/8085 相兼容的缘故。8086第34引脚为BHE /S 7,这是因为8086 有16根数据线,可以用高、低8位总线分别进行一个字节的传送,也可以同时进行两个字节的传送,BHE 正是为了指明这几类操作而设置的。

3、Reset 引脚是复位信号输入端,系统启动、或在系统运行过程中,CPU 在接收到Reset 信号后,会使系统复位。复位后,CPU 处于如下状态:

CPU 的标志寄存器、指令指针寄存器IP 、段寄存器DS 、ES 、SS 和指令队列均被清零,码段寄存器CS 被置为FFFFH ,CPU 将从0FFFF0H 处开始执行指令。 4、CPU 与内存、I/O 端口之间在时间上的匹配主要靠“READY ”信号。 5、RD 信号与M IO /(或M O I /)配合使用,指明从内存或者I/O 端口读信息 6、高4位地址线与状态线分时复用,在T 1状态,输出地址信息,在其余状态,输出状态信息。 (6).8086CPU 的引脚分类

8086CPU 的40个引脚可以分成下列几大类:

(1)数据/地址复用线、地址线、地址/状态复用线――AD 0~AD 7 、AD 8~AD 15、) A 16~A 19/S 3~S 6;

(2)常规信号――GND (2个)、cc V 、CLK ; (3)常用信号――ALE 、IO M /、RD 、WR ; (4)中断――INTR 、NMI 、INTA ; (5)MX MN /、READY 、RESET ; (6)HOLD 、HLDA ;

(7)7/S BHE (8086)

、DEN 、R DT /、TEST 。

相关主题
相关文档
最新文档