可编程定时器计数器8253及其应用.docx

上传人:b****5 文档编号:6065445 上传时间:2023-01-03 格式:DOCX 页数:16 大小:25.41KB
下载 相关 举报
可编程定时器计数器8253及其应用.docx_第1页
第1页 / 共16页
可编程定时器计数器8253及其应用.docx_第2页
第2页 / 共16页
可编程定时器计数器8253及其应用.docx_第3页
第3页 / 共16页
可编程定时器计数器8253及其应用.docx_第4页
第4页 / 共16页
可编程定时器计数器8253及其应用.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

可编程定时器计数器8253及其应用.docx

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

可编程定时器计数器8253及其应用.docx

可编程定时器计数器8253及其应用

合用标准文案

 

第八章可编程准时器/计数器8253及其应用

 

【回顾】可编程芯片的看法,端口的看法。

【本讲重点】准时与计数的基本看法及其意义,准时/计数器芯片Intel8253的性能归纳,

内、外面结构及其与CPU的连接。

准时与计数

1.准时与计数

在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于准时工作状态,也许对外面过程进行计数。

准时或计数的工作实质均表现为对脉冲信号的计数,若是计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于必然的时间,这

一过程即为准时,若是计数的对象是与外面过程相对应的脉冲信号(周期能够不相等),则此时即为计数。

2.准时与计数的实现方法

(1)硬件法

特地设计一套电路用以实现准时与计数,特点是需要开销必然硬设备,而且当电路制

成此后,准市价及计数范围不能够改变。

(2)软件法

利用一段延时子程序来实现准时操作,特点,无需太多的硬设备,控制比较方便,但

在准时期间,CPU不能够从事其余工作,降低了机器的利用率。

(3)软、硬件结合法

即设计一种特地的拥有可编程特点的芯片,来控拟定时和计数的操作,而这些芯片,

拥有中断控制能力,准时、计数到时能产生中断央求信号,所以准时期间不影响CPU的正

常工作。

准时/计数器芯片Intel8253

Intel8253是8086微机系统常用的准时/计数器芯片,它拥有准时与计数两大功能。

一、8253的一般性能归纳

1.每个8253芯片有3个独立的16位计数器通道;

2.每个计数器通道都能够依照二进制或二—十进制(BCD码)计数;

3.每个计数器的计数速率能够高达2MHz;

4.每个通道有6种工作方式,能够由程序设定和改变;

5.所有的输入、输出电平都与TTL兼容。

二、8253内部结构

8253的内部结构如图8-1所示,它主要包括以下几个主要部分:

 

优秀文档

合用标准文案

 

图8-18253的内部结构

1.数据总线缓冲器

实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传达CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时辰的实时计数值。

2.读/写控制逻辑

控制8253的片选及对内部相关存放器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。

3.控制字存放器

在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此存放器只能写入,不能够读出。

4.计数通道0#、1#、2#:

这是三个独立的,结构相同的计数器/准时器通道,每一个通道包括一个16位的计数

存放器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在

计数器工作的过程中,随从计数值的变化,在接收到CPU发来的读计数值命令时,用以锁

存计数值,供CPU读取,读取达成此后,输出锁存器又随从减1计数器变化。

三、8253的外面引脚

8253芯片是拥有24个引脚的双列直插式集成电路芯片,其引脚分布如图8-2所示。

8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外面设备,各个引脚及其所传达信号的情况,介绍以下:

1.D7~D0:

双向、三态数据线引脚,与系统的数据线连接,传达控制、数据及状态信息。

2.RD:

来自于CPU的读控制信号输入引脚,低电平有效。

3.WR:

来自于CPU的写控制信号输入引脚,低电平有效。

4.CS:

芯片选择信号输入引脚,低电平有效。

 

优秀文档

合用标准文案

 

图8-28253的引脚

5.A1、A0:

地址信号输入引脚,用以选择8253芯片的通道及控制字存放器。

A0、A1的状

态与8253端口地址的对应关系以下表所示。

A1

A0

0

0

0#通道

0

1

1#通道

1

0

2#通道

1

1

控制端口

6.VCC及GND:

+5V电源及接地引脚

7.CLKi:

i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于,即时钟周期不能够小于380ns。

8.GATEi:

i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式相关。

9.OUTi:

i=0,1,2,第i个通道的准时/计数到信号输出引脚,输出信号的形式由通道的工作

方式确定,此输出信号可用于触发其余电路工作,或作为向CPU发出的中断央求信号。

四、8253的控制字

8253有一个8位的控制字存放器,其格式以下:

 

图8-38253的控制字

其中:

 

优秀文档

合用标准文案

 

D0:

数制选择控制。

为1时,表示采用BCD码进行准时/计数;否则,采用二进制进行准时/计数。

D3~D1:

工作方式选择控制。

000,0;001,1;X10,2;X11,3;100,4;101,5;

D5、D4:

读写格式。

00,计数锁存命令;01,读/写高8位命令;10,读/写低8位命令;11,先读/写低8位,再读写高8位命令。

D7、D6:

通道选择控制。

000通道;01,1通道;10,2通道;11,非法

1.8253的初始化编程

要使用8253,必定第一进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字存放器,而初始值则写入相应通道的计数存放器中。

初始化编程包括以下步骤:

(1)写入通道控制字,规定通道的工作方式

(2)写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,

则低8位自动置0。

若为16位计数值则分两次写入,先写低8位,后写高8位。

D0:

用于确定计数数制,0,二进制;1,BCD码

【例1】设8253的端口地址为:

04H~0AH,要使计数器1工作在方式0,仅用8位二进制

计数,计数值为128,进行初始化编程。

控制字为:

01010000B=50H

初始化程序:

MOVAL,50H

OUT0AH,AL

MOVAL,80H

OUT06H,AL

【例2】设8253的端口地址为:

F8H~FEH,若用通道0工作在方式1,按二——十进制计

数,计数值为5080H,进行初始化编程。

控制字为:

00110011B=33H

初始化程序:

MOVAL,33H

OUT0FEH,AL

MOVAL,80H

OUT0F8H,AL

MOVAL,50H

OUT0F8H,AL

【例3】设8253的端口地址为:

04H~0AH,若用通道2工作在方式2,按二进制计数,计

数值为02F0H,进行初始化编程。

控制字为:

10110100B=0B4H

初始化程序:

MOVAL,0B4H

OUT0AH,AL

MOVAL,0F0H

OUT08H,AL

MOVAL,02H

 

优秀文档

合用标准文案

 

OUT08H,AL

2.读取8253通道中的计数值

8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬市价,要分两次读取,所以在读取计数值从前,要用锁存命令,将相应通道的计数值锁存在锁存器中,尔后分两次读入,先读低字节,后读高字节。

当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取达成此后,自动解锁。

如要读通道1的16位计数器,编程以下:

地址F8H~FEH。

MOVAL,40H;

OUT0FEH,AL;锁存计数值

INAL,0FAH

MOVCL,AL;低八位

INAL,0FAH;

MOVCH,AL;高八位

五、8253在系统中的典型连接

8253在系统中的连接如图8-4所示。

 

Intel8086

 

图8-4Intel8253在系统中的连接

六、8253的工作方式

8253共有6种工作方式,各方式下的工作状态是不一样的,输出的波形也不一样,其中比

较灵便的是门控信号的作用。

由此组成了8253丰富的工作方式、波形,下面我们逐个介绍:

1.几条基根源则

(1)控制字写入计数器时,所有的控制逻辑电路立刻复位,输出端OUT进入初始状态。

初始状态对不一样的模式来说不用然相同。

(2)计数初始值写入此后,要经过一个时钟周期上升沿和一个下降沿,计数执行部件才可

以开始进行计数操作,由于第一个下降沿将计数存放器的内容送减1计数器。

(3)平时,在每个时钟脉冲CLK的上升沿,采样门控信号GATE。

不一样的工作方式下,门控信号的触发方式是有详尽规定的,即也许是电平触发,也许是边沿触发,在有的模式中,

两种触发方式都是赞同的。

其中0、2、3、4是电平触发方式,1、2、3、5是上升沿触发。

(4)在时钟脉冲的下降沿,计数器作减1计数,0是计数器所能容纳的最大初始值。

二进制

 

优秀文档

合用标准文案

164

相当于2,用BCD数,相当于10

 

方式0的波形如8-5所示,当控制字写入控制字存放器后,出OUT就低,当数写入数器后开始数,在整个数程中,OUT保持低,当数到0后,OUT高;GATE的高低平控制数程可否行。

 

图8-5方式0波形

从波形中不看出,工作方式0有以下特点:

①数器只一遍,当数到0,不重新开始数保持高,直到入一新的数,

OUT才低,开始新的数;

②数是在写数命令后一个入脉冲,才装入数器的,下一个脉冲开始数,

所以,若是置数器初N,出OUT在N+1个脉冲后才能高;

③在数程中,可由GATE信号控制停。

当GATE=0,停数;当GATE=1,

数;

④在数程中能够改数,且种改是立刻有效的,分成两种情况:

若是8位

数,写入新后的下一个脉冲按新数;若是16位数,在写入第一个字后,停止数,写入第二个字后的下一个脉冲按新数。

3.方式1—可程的硬件触拍脉冲

方式1的波形如8-6所示,CPU向8253写入控制字后OUT高,并保持,写入数后其实不立刻数,只有当外界GATE信号启后(一个正脉冲)的下一个脉冲才开始数,OUT低,数到0后,OUT才高,此再来一个GATE正脉冲,数器又开始重新数,出OUT再次低,⋯,所以出一拍脉冲。

 

图8-6方式1波形

从波形不看出:

方式1有以下特点:

①出OUT的度数初的脉冲;

②出受控信号GATE的控制,分三种情况:

数到0后,再来GATE脉冲,重新开始数,OUT低;

在数程中来GATE脉冲,从下一CLK脉冲开始重新数,OUT保持低;

 

优秀文档

合用标准文案

 

改数后,只有当GATE脉冲启后,才按新数,否原数程不受影响,仍行,即新的改是从下一个GATE开始的。

③数是多次有效的,每来一个GATE脉冲,就自装入数开始从数,所以在

初始化,数写入一次即可。

4、方式2—速率生器

方式2的波形如8-7所示,在种方式下,CPU出控制字后,出OUT就高,写入数后的下一个CLK脉冲开始数,数到1后,出OUT低,一个CLK今后,OUT恢复高,数器重新开始数,⋯,所以在种方式下,只需写入一次数,就能

工作,出相同隔的脉冲(前提:

GATE保持高),即周期性地出,方式2下,8253有以下使用特点:

①通道能够工作;

②GATE能够控制数程,当GATE低停数,恢复高后重新从初;(注意:

方式与方式0不一样,方式0是数)

③重新置新的数即在数程中改数,新的数是下次有效的,同方式

1。

 

图8-7方式2波形

5.方式3—方波速率生器

方式3的波形如8-8所示,种方式下的出与方式2都是周期性的,不一样的是周

期不一样,CPU写入控制字后,出OUT高,写入数后开始数,不一样的是减2数,

当数到一半数,出低,重新装入数行减2数,当数到0,出

高,装入数行减2数,循不仅。

在方式3下,8253有以下使用特点:

 

数偶数

 

优秀文档

合用标准文案

 

计数值为奇数

图8-8方式3时计数器的工作波形

①通道能够连续工作;

②关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2个;若为奇数,则

在装入计数值后的下一个CLK使其装入,尔后减1计数,(N+1)/2,OUT改变状态,再减至0,OUT又改变状态,重新装入计数值循环此过程,所以,在这种情况下,输出有(N+1)/2个CLK个高电平,(N-1)/2个CLK个低电平;

③GATE信号能使计数过程重新开始,当GATE=0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,特别是当GATE=0时,若OUT此时为低,则立刻变高,其余动作同上;

 

④在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周

结束后才装入计数器。

但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。

6.方式4—软件触发的选通信号发生器

方式4的波形如图8-9所示,在这种方式下,也是当CPU写入控制字后,OUT立刻变高,写入计数值开始计数,当计数到0后,OUT变低,经过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。

 

图8-9方式4波形

方式4下,8253有以下使用特点:

①当计数值为N时,则间隔N+1个CLK脉冲输出一个负脉冲(计数一次有效);

②GATE=0时,禁止计数,GATE=1时,恢复连续计数;

③在计数过程中重新装入新的计数值,则该值是立刻有效的(若为16位计数值,则装入第

一个字节时停止计数,装入第二个字节后开始按新值计数)。

7.方式5—硬件触发的选通信号发生器

方式5的波形如图8-10所示,在这种方式下,当控制字写入后,OUT立刻变高,写入计数值后其实不立刻开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK此后,输出恢复为高,计数停止,若再有GATE脉冲来,则重新装入计数值开始计数,上述过程重复。

方式5下,8253有以下使用特点:

 

优秀文档

合用标准文案

 

①在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N+1)个CLK才一个负

脉冲;

②若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值

多次有效;

③若在计数过程中更正计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。

 

图8-10方式5波形

尽管8253有6种工作模式,但是从输出端来看,仍不外乎为计数和准时两种工作方式。

作为计数器时,8253在GATE的控制下,进行减1计数,减到终值时,输出一个信号。

作为准时器工作时,8253在门控信号GATE控制下,进行减1计数。

减到终值时,又自动装入初始值,重新作减1计数,于是输出端会不断地产生时钟周期整数倍的准时时间间隔。

8.8253的工作方式小结

下面,我们对8253的6种工作模式的特点,作一番比较和总结。

(1)

方式2、4、5的输出波形是相同的,都是宽度为一个

CLK周期的负脉冲,但方式

2连

续工作,方式4由软件触发启动,方式5由硬件触发启动。

(2)

方式5与方式1工作过程相同,但输出波形不一样,方式

1输出的是宽度为N个CLK脉

冲的低电平有效的脉冲(计数过程中输出为低),而方式5输出的为宽度为一个CLK脉冲的负脉冲(计数过程中输出为高)。

(3)输出端OUT的初始状态,方式0在写入方式字后输出为低,其余方式,写入控制字后,输出均变未能高。

(4)任一种方式,均是在写入计数初值此后,才能开始计数,方式0、2、3、4都是在写入计数初值此后,开始计数的,而方式1和方式5需要外面触发启动,才开始计数。

(5)6种工作方式中,只有方式2和方式3是连续计数,其余方式都是一次计数,要连续工作需要重新启动,方式0、4由软件启动,方式1、5由硬件启动。

(6)门控信号的作用;经过门控信号GATE,能够干预8253某一通道的计数过程,在不一样的

工作方式下,门控信号起作用的方式也不一样样,其中0、2、3、4是电平起作用,1、2、3、5是上升沿起作用,方式2、3对电平上升沿都能够起作用。

(7)在计数过程中改变计数值,它们的作用有所不一样。

(8)计数到0后计数器的状态,方式0、1、4、5连续倒计数,变为FF、FE。

,而方式

2、3、,则自动装入计数初值连续计数。

七、8253的编程应用

【例4】在IBMPC/XT中,8253作为准时计数器电路,它的三个通道的作用分别为:

计数器0编程为方式3,GATE0固定为高电平,OUT0作为中断央求信号接至8259A中断控制器的第0级IRQ0。

这个准时中断(约55ms)用于报时时钟的时间基准。

计数器1编程为方式2,GATE1固定为高电平,OUT1的输出经过一个D触发器后作为8237A-5DMA控制器通道0的DMA央求DREQ0,用于准时(约15us)启动刷新动向RAM,这

 

优秀文档

合用标准文案

 

样在2ms内能够有132次刷新,大于

128次(128次是系统的最低要求)。

计数器2编程为方式3,1KHZ的方波输出,经过滤波,去除高频重量后送扬声器,GATE2

是8255的PB0,OUT输出经一与门控制,控制信号为8255的PB1,这样利用PB0、PB1同时

为高的时间来控制发长音还是发短音。

TN准时时间

准时时间

时钟频率F为,T=1/F

N=

T

8253-5的地址为040H~043H,ROM-BIOS对8253-5的编程以下:

计数器0用于准时中断。

MOVAL,00110110B;00110110――二进制

OUT43H,AL

MOVAL,0;计数初值为0000,即为216

OUT40H,AL

OUT40H,AL;准时为:

840ns21655ms,即频率为――每秒产生次时

钟中断(CLK周期为:

1/1.19M)

计数器1用于准时DMA央求。

MOVAL,01010100B;01010100――二进制

OUT43H,AL

MOVAL,12H;计数初值为18D,准时:

840ns1815

s

OUT41H,AL

计数器2用于产生1KHZ的方波送至扬声器发声,声响子程序为

BEEP,入口地址为FFA08H。

BEEPPROCNEAR

MOVAL,10110110B;10110110——二进制

OUT43H,AL

MOVAX,0533H;计数初值为1331

OUT42H,AL

MOVAL,AH

OUT42H,AL

INAL,61H;取8255B端口

MOVAH,AL;存在AH

ORAL,03H;使PB1PB011

OUT61H,AL;输出至82255的B端口,使扬声器发声

SUBCX,CX;循环计数

G7:

LOOPG7

MOVBH,0

DECBX;BL的值为控制长短声,BL=6(长),BL=1(短)

JNZG7

MOVAL,AH;恢复8255B端口值,停止发声

OUT61H,AL

RET

 

优秀文档

合用标准文案

 

BEEPENDP

【例5】CPU8086,用8253的CH0(通道0),每隔2ms出一个脉冲,CLK2MHZ,达成件。

 

解析:

常数的算:

已知率F及定t,求数初N:

N1

t

NtF

F

用方式2,常数:

N2

1032106

4

103

控制字:

00110100——二制

端口地址:

CH0――00H;控制端口——06H

初始化程:

MOVAL,34H;00110100B

OUT06H,AL

MOVAX,4000

OUT00H,AL;先送低八位

MOVAL,AH

MOVAL,02H

OUT00H,AL;再送高八位

 

思虑:

若定20ms(即出50HZ的方波,工作方式2),CLK改4MHZ,CPU8086,

硬件又如何?

解析:

N4MHZ20ms80000(超65536,必考用两个通道)立刻第一的OUT出作第二的CLK入,取第二的OUT出最后果,超二,依次推。

此只需将算出的N分N1、N2、⋯作各的数初即可。

如本例可分解成420000。

 

程序从略。

 

【与思虑】

1.8253芯片共有几种工作方式?

每种方式各有什么特点?

2.某系中8253芯片的通道0~2和控制端口地址分FFF0H~FFF3H。

定通道0工作在方式2,CLK0=2MHz,要求出OUT01kHz的速率波;定通道l工作在方式CLKl入外面数事件,每100个向CPU出中断求。

写出8253通道0和通道1的初始化程序。

 

3.写一程序,使IBMPC机系板上的声路出200Hz至900Hz率化的警声。

 

4.已知:

PC/XT微机系中用作定及数的8253芯片的通道40H,其主率z,

参P239~240,三个通道行初始化置。

(CNT2的出方波率2kHz).

5.8253的通道2工作在数方式,外面事

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

当前位置:首页 > 求职职场 > 简历

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

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