第10章定时计数器8253.docx

上传人:b****6 文档编号:7977981 上传时间:2023-01-27 格式:DOCX 页数:16 大小:348.57KB
下载 相关 举报
第10章定时计数器8253.docx_第1页
第1页 / 共16页
第10章定时计数器8253.docx_第2页
第2页 / 共16页
第10章定时计数器8253.docx_第3页
第3页 / 共16页
第10章定时计数器8253.docx_第4页
第4页 / 共16页
第10章定时计数器8253.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

第10章定时计数器8253.docx

《第10章定时计数器8253.docx》由会员分享,可在线阅读,更多相关《第10章定时计数器8253.docx(16页珍藏版)》请在冰豆网上搜索。

第10章定时计数器8253.docx

第10章定时计数器8253

第十章定时计数器8253/8254

基本内容:

8253/8254的功能、编程结构和工作原理,掌握8253/8254的外部接线、编程和使用方法。

基本要求:

了解8253/8254的编程结构、工作原理及模式;掌握8253/8254的编程应用。

重点内容:

8253/8254的编程结构、工作原理及模式和编程应用。

难点内容:

8253/8254的编程结构和工作模式。

可编程控制接口芯片的学习要点:

(1)不强调对接口芯片内部电路原理的具体分析;

(2)侧重掌握接口芯片的外特性。

①主要引脚的名称及定义;

②内部逻辑结构框图及功能描述;

③控制字、状态字的组成及定义;

④工作方式的定义。

第一节概述

一、定时信号的获得

定时/计数技术用于构建微机系统的定时子系统。

所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。

定时有三种主要方法:

软件定时、纯硬件定时及可编程的硬件定时器/计数器。

(1)软件定时

使用延迟子程序

由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间,通过适当地挑选指令和安排循环次数来实现软件的定时。

该方法要求完全占用CPU的时间,因而降低了CPU的利用率。

(2)纯硬件定时

采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。

这样的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。

但它由纯硬件来完成,给使用带来不便。

(3)可编程硬件定时器/计数器

这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。

在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。

Intel8253/8254就是常用的可编程定时/计数器。

8253最高工作频率2.6MHz,8254最高工作频率为10MHz。

计数器/定时器的用处:

①作为中断信号

②输出精确的定时信号

③作为波特率发生器

④实现延迟

二、可编程计数器/定时器的工作原理

计数器/定时器的基本原理图

计数器/定时器可以有下面几种工作模式:

①计数结束产生中断

②可重复触发的单稳态触发器

③分频器

④方波发生器

⑤选通信号发生器

第二节可编程计数器/定时器8253

一、8253的编程结构

3个计数器,每个计数器内部有:

8位的控制寄存器

16位的计数初值寄存器

计数执行部件

输出锁存器

8253的编程结构

二、8253的工作原理

8253的工作原理图

1、计数器0,计数器1,计数器2

计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个计数器都是由一个16位的可预置的减法计数器构成。

每一个计数器都有CLK、GATE、OUT三个引脚。

①每一个计数器都是由一个16位的可预置的减法计数器构成,计数器的初值n由程序预置。

②CLK:

计数脉冲输入端。

每进入一个脉冲,计数器计数值就减1。

③OUT:

脉冲输出端。

当计数器计数值减到“0”时,就从OUT端输出一个信号,输出信号的波形取决于工作方式。

则:

定时时间=时钟周期(T)×预置的计数器初值(n)

④GATE:

门控信号端,当GATE为低电平时,禁止计数器工作;当GATE为高电平时,才允许计数器工作。

2、数据总线缓冲器

功能:

①往计数器设置初值

②从计数器读取计数值

③往控制寄存器设置控制字

3、读写逻辑电路

A1、A0对计数器和控制寄存器寻址,A1、A0为:

00----计数器0,01----计数器1,10----计数器2,11----控制器

RD读信号,读取选中计数器的内容(计数值)

WR写信号,向选中的计数器写入计数初值,或向选中控制器写入控制字

CS片选信号,有效表明8253被选中。

4、控制寄存器

在8253初始化时,由CPU写入控制字来设置计数器的工作方式。

特点:

只能写入而不能读出。

三、8253的控制字和编程

1、编程——即对8253初始化

刚接通电源时,8253处于未定义的状态,需用程序将其设置为一个特定的模式,即初始化。

步骤:

①写入控制字;②写入计数器初值。

注意:

①三个计数器应该分别初始化

②计数器一旦初始化之后,就在设置的模式下进行减1计数

2、控制字的格式

①SC1、SC0:

这两位决定这个控制字是哪一个计数器的控制字

②RL1、RL0:

设置数据读/写格式。

在读取计数值时,可令RL1、RL0=00,先将写控制字时的计数值锁存,然后再读取。

③M2、M1、M0:

设置每个计数器的工作方式。

④BCD:

用于选择每个计数器的计数制。

在二进制计数时,计数初值的范围是0000H~FFFFH,其中0000H是最大值,代表65536。

在BCD码计数时,计数初值的范围中0000~9999,其中,0000是最大值,代表10000。

注意:

最大计数为0000,不是FFFFH或9999。

除方式3外,最小值都为1。

四、8253的工作模式

8253的基本规则:

①控制字写入时,进入初始状态

②初值写入后,要经过上升沿和一个下降沿,才开始计数

③在CLK的上升沿被采样

④在CLK下降沿,计数器作减1计数

Intel8253有6种工作方式:

方式0—计数结束后输出由低变高

方式1—可编程序的单拍脉冲

方式2——频率发生器(分频器)

方式3—方波发生器

方式4——软件触发选通

方式5——硬件触发选通

6种工作方式的主要区别是:

1.输出的波形不同(时序图),

2.计数过程中GATE信号对计数操作的影响不同,

3.启动计数器的触发方式不同。

1、模式0——计数结束产生中断(计数结束后输出由低变高)

特点:

当计数到达0时,输出端OUT为高电平

模式0的时序图如下:

注:

CW=10H

①写入控制字后,OUT输出端变为低电平。

当写入计数初值后,计数器开始减1计数。

在计数过程中OUT一直保持为低电平,直到计数到0时,OUT输出变为高电平。

此信号可用于向CPU发出中断请求。

②计数器只计数一遍。

当计数到0时,不恢复计数初值,且输出一直保持为高电平。

只有在写入新的计数值时,OUT才变低,并开始新的计数。

③GATE是门控信号,GATE=1时允许计数,GATE=0时,禁止计数。

在计数过程中,如果GATE=0则计数暂停,当GATE=1后接着计数。

④在计数过程中可改变计数值。

若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。

如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。

如图所示。

2、模式1——可重复触发的单稳态触发器

特点:

门控上升沿作为触发信号

是单稳态方式

宽度主要决定于计数值

模式1的时序图如下:

注:

CW=12H

①写入控制字后,输出OUT将保持为高电平,计数由GATE启动。

GATE启动之后,OUT变为低电平,当计数到0时,OUT输出高电平,从而在OUT端输出一个负脉冲,负脉冲的宽度为n个(计数初值)CLK的脉冲宽度。

②当计数到0后,不用送计数值,可再次由GATE脉冲启动,输出同样宽度的单拍脉冲。

③在计数过程中,可改变计数初值,此时计数过程不受影响。

如果再次触发启动,则计数器将按新输入的计数值计数。

④在计数未到0时,如果GATE再次启动,则计数初值将重新装入计数器,并重新开始计数。

3、模式2——分频器(频率发生器)

特点:

是N分频的计数器

正脉冲为N-1个时钟脉冲宽度

负脉冲为1个时钟脉冲宽度

模式2的时序图:

CW=14H

①写入控制字后,输出将变为高电平。

写入计数值后,计数立即开始。

在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。

经过一个CLK周期,输出恢复为高,且计数器开始重新计数。

因此,它能够连续工作,输出固定频率的脉冲。

②如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。

因此,相当于对输入脉冲的N分频。

通过对N赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。

③计数过程可由门控脉冲控制。

当GATE=0时,暂停计数;当GATE变高自动恢复计数初值,重新开始计数。

④在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。

但在计数到1时输出变低,经过一个CLK周期后输出又变高,计数器将按新的计数值计数。

4、模式3——方波发生器

特点:

和模式2类似,但输出为方波或基本对称的矩形波

模式3的时序图:

CW=16H

①输出为周期性的方波。

若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。

②写入控制字后,输出将变为高电平.当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。

③若计数值为偶数,则输出对称方波。

如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N—1)/2个CLK脉冲期间输出为低电平。

④GATE信号能使计数过程重新开始。

GATE=1允许计数,GATE=0禁止计数。

停止后OUT将立即变高开,当GATE再次变高以后,计数器将重新装入计数初值,重新开始计数。

5、模式4——软件触发的选通信号发生器

特点:

当计数到0时,输出变为低电平,并持续一个时钟周期变为高电平。

模式4的时序图:

CW=18H

①写入控制字后,输出为高电平。

写入计数值后立即开始计数(相当于软件触发启动),当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。

只有在输入新的计数值后,才能开始新的计数。

②当GATE=1时,允许计数,而GATE=0,禁止计数。

GATE信号不影响输出。

③在计数过程中,如果改变计数值,则按新计数值重新开始计数。

如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值中开始计数。

6、模式5——硬件触发的选通信号发生器

特点:

用门控上升沿触发即硬件触发

计数到0时,输出端一个宽度为1个时钟周期的负脉冲,然后又自动变为高电平。

模式5的时序图:

CW=1AH

①写入控制字后,输出为高电平。

在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。

当计数到0时,输出一个CLK周期的负脉冲,并停止计数。

当门控脉冲再次触发时才能再计数。

②在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。

③如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。

当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。

两个注意点:

①时钟周期和输出周期的区别

②输出波形在时钟下降沿产生电平变化

例:

假设一个8253在某系统中的端口地址40H~43H,如果要将计数器0设置为设置为工作方式3,计数初值为3060H,采用二进制计数法,则初始化方法如下:

控制字:

计数器0,写两个字节,方式3,二进制计数

则控制字为:

00110110

MOVAL,36H;设置控制字00110110

OUT43H,AL;写入控制寄存器

MOVAX,3060H;设置计数值

OUT40H,AL;写低8位至计数器0

MOVAL,AH

OUT40H,AL;写高8位至计数器0

例:

已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT3产生一个最大的负脉冲。

分析:

OUT0:

初值=10us*8MHz=80方式3

OUT1:

初值=8MHz/2KHz=4000方式2

OUT2:

初值=0,二进制计数方式1

;CTC0

MOVDX,706H;控制端口地址

MOVAL,00010110B;CTC0控制字

OUTDX,AL

MOVDX,700H;CTC0口地址

MOVAL,80;CTC0初值

OUTDX,AL

;CTC1

MOVDX,706H;控制端口地址

MOVAL,01110100B;CTC1控制字

OUTDX,AL

MOVDX,702H;CTC1口地址

MOVAX,4000;CTC1初值

OUTDX,AL;先写低字节

MOVAL,AH;取高字节

OUTDX,AL;后写高字节

;CTC2

MOVDX,706H;控制端口地址

MOVAL,10110010B;CTC2控制字

OUTDX,AL

MOVDX,704H;CTC2口地址

MOVAL,0;CTC2初值

OUTDX,AL;先写低字节

OUTDX,AL;后写高字节

五、8253与PC总线的连接

六、在IBMPC/XT机中的应用

在IBMPC/XT机中,8253主要提供系统时钟中断、动态RAM的刷新定时及喇叭发声控制等功能。

8253的初始化是在计算机启动时由BIOS完成的。

下图是8253在IBMPC/XT机的应用的示意图

 

 

从时钟发生器来的频率2.386364MHZ经二分频后作为8253三个计数器的时钟输入,8253三个计数器的端口地址为40H—43H。

(1)计数器0用于定时中断(约55ms)

MOVAL,36H;计数器0,方式3,写两个字节,二进制计数

OUT43H,AL;控制字送控制字寄存器

MOVAL,0;计数值为最大值

OUT40H,AL;写低8位

OUT40H,AL;写高8位

(2)计数器1用于定时(15μs)DMA请求

MOVAL,54H;计数器1,方式2,只写低8位,二进制计数

OUT43,AL

MOVAL,12H;初值为18

OUT41H,AL

 

(3)计数器3用于产生约900HZ的方波送至扬声器

MOVAL,B6H;计数器3,方式3,写两字节,二进制

OUT43H,AL

MOVAX,533H;计数初值为533H

OUT42H,AL;写低8位

MOVAL,AH

OUT42H,AL;写高8位

七、Intel8254简介

Intel8254是Intel8253的改进型,它们在操作方式及引脚排列上完全相同。

相比8253,8254主要改进的内容是:

1.计数频率高

8254的计数频率可由直流至6MHz,8254-2可高达10MHz。

而8253最高只能达到2.6MHz。

2.有读回命令(写入至控制字寄存器)

如果控制字寄存器D7=1,D6=1,D0=0,即为8254的读回命令,其格式如图9.12所示。

这个命令可以使三个计数器的计数值一次锁存,而在8253则需要写入三个命令。

图9.128254的读回命令

另外,在8254中每个计数器都有一个状态字,当要读取时,也可由读回命令进行锁存。

其状态状态字的格式如图9.13所示。

图9138254的状态字格式

其中,D0~D5与方式控制字对应位的意义相同。

即为写入此计数器的控制字的相应部分。

D7表示OUT引脚的输出状态。

D6表示计数初值是否已装入减1计数器,D6=0表示已经装入,可以读取计数器。

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

当前位置:首页 > 高等教育 > 哲学

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

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