slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第九章 可编程接口与应用 —— 可编程定时 / 计数器 8253 PowerPoint Presentation
Download Presentation
第九章 可编程接口与应用 —— 可编程定时 / 计数器 8253

Loading in 2 Seconds...

play fullscreen
1 / 40

第九章 可编程接口与应用 —— 可编程定时 / 计数器 8253 - PowerPoint PPT Presentation


  • 217 Views
  • Uploaded on

第九章 可编程接口与应用 —— 可编程定时 / 计数器 8253. 主讲:刘英. 回顾:主要接口芯片. 简单的输入 / 输出接口芯片 如锁存器 74LS373 、单向缓冲器 74LS244 、双向缓冲器(数据收发器) 74LS245 等。 可编程接口芯片:其功能可以由软件来选用控制。 如并行输入输出接口 8255 、串行输入输出接口 8250/8251 、定时器 / 计数器 8253 、中断控制器 8259 、 DMA 控制器 8237 等。. 9.2 可编程定时 / 计数器 8253. 9.2 可编程定时 / 计数器 8253. 基本概念

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第九章 可编程接口与应用 —— 可编程定时 / 计数器 8253' - kanoa


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第九章 可编程接口与应用——可编程定时/计数器8253

主讲:刘英

slide2
回顾:主要接口芯片
  • 简单的输入/输出接口芯片
    • 如锁存器74LS373、单向缓冲器74LS244、双向缓冲器(数据收发器)74LS245等。
  • 可编程接口芯片:其功能可以由软件来选用控制。
    • 如并行输入输出接口8255、串行输入输出接口8250/8251 、定时器/计数器8253、中断控制器8259、DMA控制器8237等。
slide4

9.2.1 基本概念

1. 定时与计数

定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值也就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等)则此时即为计数。

slide5

9.2.1 基本概念

2. 定时与计数的实现方法
  • 硬件方法:定时/计数器电路
    • 利用脉冲计数在设定的时间输出定时信号
  • 软件方法:用一段程序实现延时
    • 利用程序循环延迟指定的时间
    • 缺点:CPU占用率?延时精度?兼容?
  • 软、硬件结合法
    • 即设计一种专门的具有可编程特性的芯片
slide6

9.2.1 基本概念

3. 定时/计数器的用途
  • 可以实现定时与计数两个功能,可用于
    • 系统时钟
    • DRAM刷新定时
    • 定时采样
      • 在规定的时间对温度、压力、流量等参数进行采样
    • 实时控制
      • 对外部事件进行计数,按计数结果进行控制
    • 脉冲的计数
    • 。。。
1 8253

9.2.2 定时/计数器芯片Intel8253

1. 8253的一般性能
  • 每个8253芯片有3个独立的16位计数器通道;
  • 每个计数器通道都可以按照二进制或二-十进制(BCD码)计数;
  • 每个计数器的计数速度可以高达2MHz;
  • 每个通道有6种工作方式,可以由程序设定和改变;
  • 所有的输入、输出电平都与TTL兼容。
2 8253

9.2.2 定时/计数器芯片Intel8253

编址部件0

编址部件1

编址部件3

编址部件2

2. 8253的内部结构
slide9

9.2.2 定时/计数器芯片Intel8253

  • 数据总线缓冲器
    • 实现8253与CPU数据总线连接的8位双向三态缓冲器
  • 读/写控制逻辑
    • 控制8253的片选及对内部相关寄存器的读/写操作
  • 控制字寄存器
    • 8位,在8253的初始化编程时,由CPU写入控制字
  • 计数通道(3个)
    • 每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器。
3 8253

9.2.2 定时/计数器芯片Intel8253

CLK0

GATE0

OUT0

DB

D7-D0

通道0

A1

A0

A1

CLK1

GATE1

OUT1

A0

通道1

WR

IOW

IOR

片选信号

RD

CLK1

GATE1

OUT1

CS

通道2

8253

3. 8253的外部引脚
1 cpu

9.2.2 定时/计数器芯片Intel8253

A1 A0 选 择

0 0 计数通道0

0 1 计数通道1

1 0 计数通道2

1 1 控制寄存器

(1)与CPU连接的引脚
  • D7~D0:双向、三态数据线引脚,与系统的数据总线连接。
  • RD#:来自于CPU的读控制信号输入引脚,低电平有效。
  • WR#:来自于CPU的写控制信号输入引脚,低电平有效。
  • CS#:芯片选择信号输入引脚,低电平有效。
  • A1、A0:地址信号输入引脚,由8253片内译码,用以选择芯片的计数通道及控制字寄存器。
slide12

9.2.2 定时/计数器芯片Intel8253

(2)与外设连接的引脚
  • CLKn:计数脉冲输入引脚,用来输入定时基准脉冲或计数脉冲。
  • GATEn:门控信号输入引脚,用来控制计数器的启动或停止。
  • OUTn:计数通道的定时/计数到信号输出引脚,不同工作方式下产生不同波形。

(n = 0~2)

slide13

9.2.2 定时/计数器芯片Intel8253

(3)定时/计数的工作过程
  • 设置8253的工作方式
  • 设置计数初值到初值寄存器
  • 第一个CLK信号使初值寄存器的内容置入计数寄存器
  • 以后每来一个CLK信号,计数寄存器减1
  • 减到0时,OUT端输出一特殊波形的信号

注:以上计数过程中还受到GATE信号的控制

4 8253

9.2.2 定时/计数器芯片Intel8253

D7 D6 D5 D4 D3 D2 D1 D0

计数器 读/写格式 工作方式 数制

4. 8253的控制字

1--计数值为BCD码格式

0--计数值为二进制格式

D3 D2 D1 模式选择

0 0 0 模式0

0 0 1 模式1

/ 1 0 模式2

/ 1 1 模式3

1 0 0 模式4

1 0 1 模式5

0 0----对计数器进行锁存

0 1----只读/写低8位字节

1 0----只读/写高8位字节

1 1----先读/写低8位字节,

再读/写高8位字节.

0 0----选计数器0

0 1----选计数器1

1 0----选计数器2

1 1----无意义

1 82531

9.2.2 定时/计数器芯片Intel8253

(1)8253的初始化编程
  • 初始化编程包括如下步骤:
    • 写入通道控制字,规定通道的工作方式。
    • 写入计数值。若规定只写低8位,则高8位自动置0;若规定只写高8位,则低8位自动置0;若为16位计数值则分两次写入,先写低8位,后写高8位。
slide16

9.2.2 定时/计数器芯片Intel8253

【例1】 设8253的端口地址为:04H~07H,要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,进行初始化编程。

控制字为:01010000B=50H

初始化程序:

MOV AL,50H

OUT 07H,AL ;将控制字写入控制字寄存器

MOV AL,80H

OUT 05H,AL ;将计数值写入计数器1低8位

slide17

9.2.2 定时/计数器芯片Intel8253

【例2】 设8253的端口地址为:F8H~FBH,若用通道0工作在方式1,按二——十进制计数,计数值为5080H,进行初始化编程。

控制字为:00110011B=33H

初始化程序:

MOV AL,33H

OUT 0FBH,AL ;写控制字

MOV AL,80H

OUT 0F8H,AL ;先写低8位

MOV AL,50H

OUT 0F8H,AL ;再写高8位

2 82531

9.2.2 定时/计数器芯片Intel8253

(2)读取8253通道中的计数值
  • 8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。
  • 当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。
slide19

9.2.2 定时/计数器芯片Intel8253

【例3】如要读通道1的16位计数器,编程如下:地址F8H~FBH。

控制字为:01000000B=40H

读计数值程序:

MOV AL,40H

OUT 0FBH,AL ;锁存计数值

IN AL,0F9H

MOV CL,AL ;读低8位

IN AL,0F9H

MOV CH,AL ;读高8位

5 8253

9.2.2 定时/计数器芯片Intel8253

5. 8253在系统中的典型连接

8253

8253占用4个接口地址:

计数器0

计数器1

计数器2

控制寄存器

DB

D0~D7

IOW

WR

CLK

共三组

GATE

IOR

RD

OUT

A1

A1

A0

A0

高位地址

A15-A2

译码器

CS

(决定8253的基地址)

6 8253

9.2.2 定时/计数器芯片Intel8253

6. 8253的工作方式
  • 8253有6种工作方式,各种方式下的工作状态不同,输出波形也不同。
  • 几条基本原则
    • 控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态。
    • 计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿,计数执行部件才可以开始进行计数操作。
    • 在每个时钟脉冲CLK的上升沿,采样门控信号GATE。
    • 在时钟脉冲的下降沿,计数器作减1计数,0是计数器所能容纳的最大初始值。二进制相当于216(65536),用BCD码计数时,相当于104(10000)。
slide22

9.2.2 定时/计数器芯片Intel8253

(1)方式0——计数结束产生中断
  • 结果特点:计数器减1为0时,OUT升高,向CPU发中断请求
  • 过程特点
    • 控制字写入:OUT=0。当控制字写入控制字寄存器后,输出端OUT变成低电平,并且在计数值减到0之前一直保持低电平
    • 计数值写入:OUT不变,仍然为低电平(OUT=0)。
    • 计数期间:OUT为低电平(OUT=0)
    • 计数为0时:OUT升高(OUT=1),向CPU发中断请求(如果使用中断的话)。直到CPU写入新的控制字或计数值时,才能使OUT=0
    • 计数期间写入新的计数值:立即有效。如果计数值是一个字节,则在写入后的下一个时钟脉冲,新的计数值由CR送入CE,开始新的计数。如果计数值是两个字节,则写入第一个字节时,计数不受影响,写入第二个字节后的下一个时钟脉冲时,新的计数值由CR送CE,启动计数器按新的计数值开始计数。
    • GATE作用:GATE=0时,禁止计数,计数器停止;GATE=1时,允许计数,此时计数器从刚才断的地方开始连续计数。
    • 计数值有效期限:计数值一次有效
slide24

9.2.2 定时/计数器芯片Intel8253

(2)方式1 ——单脉冲触发器
  • 结果特点:输出单拍负脉冲,脉冲宽度可编程设定。
  • 过程特点
    • 控制字写入:OUT=1
    • 计数值写入:OUT=1(不变)
    • 启动方式:GATE上跳沿。启动后的下一个CLK脉冲使OUT变低电平(OUT=0),即延迟一个时钟周期
    • 计数期间:OUT为低电平(OUT=0)
    • 计数为0时,OUT变为高电平(OUT=1)
    • 计数期间写入新的计数值:不影响原计数,只有当下一个GATE上跳沿到来时,才使用新的计数值。
    • GATE作用:GATE=0或GATE=1时,不影响计数,但若出现上跳沿则重新启动计数器,按最新计数初值开始计数。若在计数尚未结束时,就出现了上跳沿,则重新计数,因此,使输出负脉冲的宽度延长。这种方式常用于工业控制系统中的干扰自动复位电位。
    • 计数值有效期限:计数值多次有效。计数初值写入CR后,在没有新的计数值写入CR之前,原计数初值在CR中保持不变,以后每触发一次,CR中保存的这个计数初值就装入CE一次。
slide26

9.2.2 定时/计数器芯片Intel8253

(3)方式2 ——脉冲频率发生器(分频器)
  • 结果特点:产生连续的负脉冲信号,负脉冲宽度等于一个时钟周期。脉冲周期可由软件设定,脉冲周期=计数值×时钟周期
  • 过程特点
    • 控制字写入:OUT=1
    • 计数值写入:OUT=1(不变)
    • 启动方式:两种。一是硬件启动:GATE上跳沿启动;二是软件启动:写入计数值启动(此时GATE=1)
    • 计数期间:OUT为高电平(OUT=1),但CE由1到0的计数中,OUT输出一个负脉冲,宽度为一个时钟周期
    • 计数为0时,OUT为高电平(OUT=1),开始下一个周期的计数
    • 计数期间写入新的计数值:影响随后的脉冲周期
    • GATE作用:GATE=0时,OUT=1,停止计数; GATE=1时,不影响计数器工作; GATE上跳沿时,启动计数器,重新开始
    • 计数值有效期限:计数值重复有效。在这种方式下,当计数器的值减到0时,CR的计数初值自动重新装入CE,实现循环计数
slide28

9.2.2 定时/计数器芯片Intel8253

(4)方式3 ——方波发生器
  • 结果特点:产生连续的方波。方波的重复周期=计数值×时钟周期
  • 过程特点
    • 控制字写入:OUT为高电平(OUT=1)
    • 计数值写入: OUT为高电平(OUT=1)
    • 启动方式:两种。一是硬件启动:GATE上跳沿启动;二是软件启动:写入计数值启动(此时GATE=1)
    • 计数期间:若计数值N为偶数,则在前N/2计数期间,OUT输出高电平(OUT=1),后N/2计数期间, OUT输出低电平(OUT=0);若计数值N为奇数,则在前(N+1)/2计数期间,OUT输出高电平(OUT=1),后(N-1)/2计数期间, OUT输出低电平(OUT=0);
    • 计数为0时,OUT输出高电平(OUT=1),从而完成一个周期。然后,CR值自动装入CE,开始下一个周期
    • 计数期间写入新的计数值:不影响当前输出周期,影响下一个周期
    • GATE作用:GATE=0时,OUT=1,停止计数; GATE=1时,不影响计数器工作; GATE上跳沿时,启动计数器,重新开始
    • 计数值有效期限:计数值重复有效。
slide30

9.2.2 定时/计数器芯片Intel8253

(5)方式4 ——软件触发的选通信号发生器
  • 结果特点:计数器减为0时,输出一个时钟周期的负脉冲
  • 过程特点
    • 控制字写入:OUT为高电平(OUT=1)
    • 计数值写入: OUT为高电平(OUT=1)
    • 启动方式:写入计数值。写入计数值后,再过一个CLK时钟周期,减1计数器CE获得计数初值,开始减1计数
    • 计数期间: OUT为高电平(OUT=1)
    • 计数为0时:计数器减到0后,输出一个负脉冲,宽度为1个时钟周期。然后又自动变为高电平,并一直维持高电平。通常将此负脉冲作为选通信号
    • 计数期间写入新的计数值:立即有效(同方式0)
    • GATE作用:GATE=0时禁止计数;OUT=1时允许计数,此时计数器从暂停的地方开始继续计数。GATE信号不影响OUT的状态
    • 计数值有效期限:计数值一次有效。只有在输入新的计数值后,才能开始新的计数过程
slide32

9.2.2 定时/计数器芯片Intel8253

(6)方式5 ——硬件触发的选通信号发生器
  • 结果特点:计数器减为0时,输出一个时钟周期的负脉冲
  • 过程特点
    • 控制字写入:OUT为高电平(OUT=1)
    • 计数值写入: OUT为高电平(OUT=1)
    • 启动方式:GATE上跳沿。当GATE端有上跳沿信号后,下一个CLK脉冲使CR的计数初值装入CE,从而开始计数过程
    • 计数期间: OUT为高电平(OUT=1)
    • 计数为0时:计数器减到0后,输出一个负脉冲,宽度为1个时钟周期。然后又自动变为高电平
    • 计数期间写入新的计数值:不影响本次计数,但影响GATE上跳沿启动后的计数过程。一但GATE重新启动,将按新的计数初值开始计数
    • GATE作用:无论GATE=0还是GATE=1均不影响计数过程,而当GATE有上跳沿时将重新启动计数过程,按最新计数值开始计数
    • 计数值有效期限:计数值多次有效。当计数器的计数值减到0后,将自动重新装入计数值(由CR装入CE),但并不开始计数,而是在GATE信号的上跳沿才开始计数
slide34

9.2.2 定时/计数器芯片Intel8253

8253的工作方式小结(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需要外部触发启动,才开始计数。

slide35

9.2.2 定时/计数器芯片Intel8253

8253的工作方式小结(续)(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、,则自动装入计数初值继续计数。

slide36

9.2.2 定时/计数器芯片Intel8253

【例4】设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。

分析:时间常数的计算:已知时钟频率F及定时时间t,求计数初值N:

1) 一个定时器的最大定时时间:

65536/(2*106)=0.032768 s=32.768ms

提示:超过65536,必须考虑用两个通道级连,即将第一级的OUT输出作为第二级的CLK输入,取第二级的OUT输出为最后结果,超过二级,依次类推。

slide37

9.2.2 定时/计数器芯片Intel8253

2) 将定时器1的CLK1接2MHZ时钟,计数初值:

3) 将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:

slide38

9.2.2 定时/计数器芯片Intel8253

8253

D7~D0

CPU

AB

地址

译码

线路连接图:

两个定时器串连使用

slide39

9.2.2 定时/计数器芯片Intel8253

8253初始化程序:

MOV AL, 00110100B ;0号定时器,方式2

OUT 43H, AL

MOV AX, 1000

OUT 40H, AL

MOV AL, AH

OUT 40H, AL

MOV AL, 01110100B ;1号定时器,方式2

OUT 43H, AL

MOV AX, 10000

OUT 41H, AL

MOV AL, AH

OUT 41H, AL

slide40
习题

(1)I/O接口的主要功能有哪些?有哪两种编址方式?在8086/8088系统中采用哪一种编址方式?

(2)试比较4种基本输入输出方法的特点。

(3)利用三态门芯片74LS244作为输入接口,接口地址为40FBH,试画出其与8086系统总线的连接图。

(4)若8253芯片的接口地址为D0D0H~D0D3H,时钟信号频率为2MHz。现利用计数器0、1、2分别产生周期为10us的对称方波及每1ms和1s产生一个负脉冲,试画出其与系统的电路连接图,并编写包括初始化在内的程序。

(5)某一计算机应用系统采用8253芯片的计数器0作频率发生器,输出频率为500Hz;用计数器1产生1000Hz的连续方波信号,输入8253的时钟频率为1.19MHz。试问:初始化时送到计数器0和计数器1的初值分别为多少?计数器1工作于什么方式下?