课程设计实验报告.doc

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计实验报告

——竞赛抢答器

计科0201班

第五小组张国成 7号

竞赛抢答器

一、需求分析

本实验要求大家了解微机化竞赛抢答器的基本原理,进一步学习使用并行接口8255芯片,以及8253定时计数器的六种工作方式,中断的基本概念,中断服务子程序的编写。

二、功能描述

基本功能:在主持人按下抢答开关后,各位选手即可开始抢答,并在数码管上显示最先抢答选手的号码。

扩展功能:在主持人按下抢答开关后,计数器开始9秒倒计时,若倒计时结束后没有人抢答,则本轮抢答无效,进入下一轮。

三、概要设计

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

要8255、8259、8253等芯片。下图为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答器按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下,在七段数码管上将其组号(0~7)显示出来。

四、方案论证

在计数器每次计数结束后,对于全局变量counter的减一操作有两种方式,一个是通过不断扫描计数器是否计数结束,另一种是通过8253芯片计数结束产生中断。

方案一:通过对8253计数器的控制端口写控制字进行锁存,然后用一个读命令读出计数器中的数放寄存器ax中,通过比较ax中的数是否为零来判

断这次计数是否结束。若为零,就使counter减一。

方案二:将8253的输出接到8259的中断输入端,通过8253计数结束产生中断来控制,在中断服务子程序中对counter减一操作。

方案比较:方案一采用扫描,没有用到8259,程序编制简单,但是cpu耗费了更多的时间在扫描,效率相对来说较低。方案二采用中断,程序结

构化更为清晰,且cpu少了循环扫描的时间,效率较高。但是多用

了一个8259中断控制芯片,程序编制上涉及到中断服务子程序的

编写,稍显复杂。可见两种方案各有优劣。

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

五、模块划分

由于本次课程设计采用团队合作的形式,故要将本次实验进行模块划分,小组成员要了解全部程序流程,但是主要是完成自己负责的功能模块。组长负责协调监督指导小组成员,并完成最后的程序的连调工作。具体划分如下:

尚海涛、王祁远:负责8253计数

张国成、吴小龙:负责8259中断

杨德娜、唐益文:负责8255并行接口

每天的文档工作由各自详细记录自己今天的工作进度以及程序调试的过程和心得体会,并附上自己开发模块的文档说明,最后交由组长整合在一起,构成当天的开发文档。

六、详细设计

1)8255芯片简介

8255,是一个典型的可编程并行接口芯片。8255具有三个相互应独立的8位并行输入输出端口,即端口A,端口B和端口C,其中端口C分为两个4位来配合端口A和端口B工作,它为INTEL系列CPU与外设之间提供TTL电平兼容的接口。

8255A可以工作在方式0,方式1,方式2三种方式,其中端口A可以工作在这3种不同的方式下,而端口B只能工作在方式0和方式1,端口C配合A 口和B口工作。

8255A没有设置专门的联络信号线,但是可以使用端口中的某些端口中的某些位来的担任。端口A、B和C可以配合使用,来构成所需的单线,双线或三线联络信号的并行接口。

8255的内部结构

⑴与CPU接口部分

8255与CPU的接口部分通过数据总线缓冲器和读/写控制逻辑。

①数据总线缓冲器;

这是一个8位双向三态缓冲器,8255A通过它与CPU的系统数据总线连接。CPU所有的输入/输出数据,CPU通过输出指令发给8255A的控制字和用输入指令读入的外设的当前状态信息,都是通过这个数据缓冲器传送的。

②读/写控制逻辑电路

读/写控制逻辑电路通过6根控制线与CPU连接,它负责对8255A的数据传送过程进行控制。它接收到来自CPU控制总线的RESET、WR^、RD^和来自地址总线的A1,A0后,将这些信号进行组合,得到对A组控制部件和B组控制部件的相应控制命令,再用这些控制命令去控制这两个部件按初始化编程的要求,去完成对数据的输入/输出,对状态信息的读取和控制命令的传送。

⑵、与外设接口部分

8255A与外设的接口是通过3个输入/输出数据端口来实现的。每个端口都是8位的数据端口,即端口A、端口B和端口C,它们都可以用软件编程来来设置成输入口或输出口,这3个端口在功能上有各自的特点。

①端口A

端口A有一个8位的数据输入锁存器和一个8位的数据输入/输出锁存器/缓冲器,因此,端口A在进行输入或输出时,其数据都受到锁存。

②端口B

端口B有一个8位的数据输入缓冲器和1个8位的数据输出锁存器/缓冲器。因此,端口B只有在进行输出时,才能对数据进行锁存。

③端口C

端口C有一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲

器。端口C也只能在作输出口时,才能对数据进行锁存。

⑶、内部控制逻辑

8255A的内部控制逻辑由A组控制电路和B组控制电路组成。这两组控制电路根据CPU写如的控制命令字和读/写命令分别去控制两组端口的工作方式和读/写操作。其中A组控制电路控制端口A和端口C的高4位,B组控制电路控制端口B和端口C低4位。

2)8253芯片

8253的工作方式:

①.方式0

这种方式又称计数结束中断方式。当CPU写入控制字后,使其OUT端变低,在GATE信号保持高电平时,则写入计数初值后,下一个CLK脉冲下降沿开始计数。在计数过程中OUT端一直保持低电平,直到计数值减到0时(即计数结束)OUT端输出变为高,完成一次计数过程。

②.方式1

方式1又称为可编程单脉冲形成器。当写入控制字以后,OUT输出端将保持高电平。在CPU写入计数初值后,计数器并不开始计数,只有在门控信号GATE由低变高的上升沿之后的一个CLK脉冲的上升沿才开始计数,并且输出端OUT变低。在计数过程中OUT端一直保持低电平,直到计数结束才变高,这样,在OUT输出端得到一个单脉冲,该脉冲信号的宽度为OUT端的低电平。

③.方式2

这个方式又可称为频率发生器。当CPU写入控制字后,输出端OUT将变高,在写入计数初值以后的下一个CLI脉冲的下降沿开始计数。计数过程中OUT端始终保持高电平,当计数值减至1时OUT端变为低电平,而计数值减至0时OUT 端又变为高电平,同时会自动将计数值送到执行部件继续进行减法计数,形成连续工作,重复计数,从而输出固定频率的脉冲。

④.方式3

方式3又称为方波发生器,它的工作方式与方式2很相似,都是输出周期性的波形,门控信号的控制作用和自动重复计数的功能与方式2一样,只是OUT端输出的波形不同。

这种方式中写入控制字以后,OUT端将为高,写完计数初值后便可自动开始计数。在计数过程中不断输出一系列方波,其方波的占空比随计数初值的不同而不同,即占空比可以相等也可以不相等。

⑤.方式4

方式4又称为软件脉冲触发。这种方式中,CPU写入控制字和计数值后,OUT端变为高电平,一旦写入计数值后,下一个CLK脉冲的下降沿立即开始计数(相当于软件触发),当计数结束后OUT端由高变低,并维持一个CLK的低电平后再变高,计数器停止计数后,只有重新写入新的计数值,才能重新进行新的计数过程,因此这种计数方式也是一次性的。写入计数初值后,计数器不会开始计数,而是要等GATE端出现一个上升沿来触发启动,并在下一个时钟沿才开始减法计数。计数至0时,OUT端会变低,并维持一个CLK周期的低电平后再变高。因此,在N+1个CLK脉冲后,在OUT端输出一个CLK周期的负脉冲。⑥.方式5

方式5又称为硬件脉冲触发。在这种方式中,CPU写入控制字和计数值以后,OUT端变为高电平。写入计数初值后,计数器不会开始计数,而是要等GATE端

相关文档
最新文档