1 / 26

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

第八章 可编程定时 / 计数器 8253 及其应用. 第一节 Intel8253-PIT 的工作原理. 一 . 8253 的功能. 习题: 8 - 4 , 8 - 5. 计算机系统中,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。 8253 为可编程的硬件定时 / 计数器。. 1. 主要功能 * 具有 3 个独立的 16 位计数器通道; * 每个计数器均可按二进制或二 — 十进制计数; * 每个计数器的计数速率高达 2MHz ; * 每个通道有 6 种工作方式,可由程序设置和改变;* 所有的输入输出都与 TTL 兼容。.

gannon
Download Presentation

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

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章 可编程定时/计数器8253及其应用 第一节 Intel8253-PIT的工作原理 一. 8253的功能 习题:8-4,8-5 计算机系统中,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。8253为可编程的硬件定时/计数器。 1. 主要功能 * 具有3个独立的16位计数器通道; * 每个计数器均可按二进制或二—十进制计数; * 每个计数器的计数速率高达2MHz; * 每个通道有6种工作方式,可由程序设置和改变;* 所有的输入输出都与TTL兼容。

  2. 内部数据总线 数据总线 缓冲 器 CLK0 计数器 0 GATE0 OUT0 D7 ~ D0 CLK1 RD WR A0 A1 读/写 逻辑 计数器 1 GATE1 OUT1 CS 控制字 寄存器 计数器 2 CLK2 GATE2 OUT2 8253内部结构 二. 8253的内部结构 *数据总线缓冲器(传送信息) 写控制字, 写时常, 读计数值 *读写逻辑 *控制字寄存器(存放控制字) *三个计数器(减法器) 3个独立的16位减法器,可作定时/计数器使用; 计数器按二/BCD方式减法计数,从预常减到零时,OUT端输出一信号。

  3. 内部数据总线 数据总线 缓冲 器 CLK0 计数器 0 GATE0 OUT0 D7 ~ D0 CLK1 RD WR A0 A1 读/写 逻辑 计数器 1 GATE1 OUT1 CS 控制字 寄存器 计数器 2 CLK2 GATE2 OUT2 8253内部结构 三.8253 的引线 * 数据线(D7~D0) * 地址线:选择内部寄 存器; * 控制线:完成片选和 读写操作。 CLK:输入脉冲线; GATE:门控信号输入线; GATE=0 禁止计数, GATE=1 允许工作; OUT:输出引脚; 当计数到“0”时,OUT 端输出一信号。

  4. 8253输入信号组合的功能表

  5. D7 D6 D5 D4 D3 D2 D1 D0 计数器 读/写格式 工作方式 数制 00 选择计数器0 01 选择计数器1 10 选择计数器2 11 非法选择 00 计数器锁存命令 10 只读/写最高有效字节(高八位) 01 只读/写最低有效字节(低八位) 11 先读写最低有效字节然后读写最高有效字节 000 方式0 001 方式1 *10 方式2 *11 方式3 100 方式4 101 方式5 四. 8253-PIT的控制字 在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。 0=二进制 1=BCD

  6. 五. 8253-PIT的工作方式 1. 方式0 * CW写入,OUT=0; * 写入时常,通道开始计数; * 计数到零,OUT=1; * 计数器只计数一遍; * OUT是N+1个CLK后变高; * 计数过程中,GATE=0, 计数暂停; * 计数过程中可改变计数值; * 8253无中断控制,可用OUT信号作为中断请求。

  7. 方式1(可编程单稳) * 写入控制字OUT=1,写入常数不计数; * GATE启动计数,OUT=0; * 计数到,OUT=1。 *单拍脉冲宽度为N; *由GATE重新启动; *计数中,可重新启动; *计数中,可改变计数值,再次启动有效。

  8. 方式2(速率发生器) * 写入控制字OUT=1; * 写入常数立即对CLK计数; * 计数到1,OUT=0; * 一个CLK周期后,OUT=1,重新计数。 * 通道连续工作不需重置时常; * 计数过程中,GATE=0,计数暂停,GATE变高后重新计数; * 计数过程中可改变计数值;新的计数值在下一次有效。

  9. 方式3(方波速率发生器) * 与方式2的区别在于:输出为周期是N个CLK脉冲的方波。 * 若计数值为偶数,每个CLK使计数值减2,计到0,OUT改变状态,重装计数值开始新的计数。 *若计数值为奇数,第一个脉冲先减1,以后,每个CLK使计数值减2,计到0 时,OUT改变状态,重装计数值后,第一个脉冲减3,以后,每个CLK使计数值减2,计到0时,OUT改变状态。 *GATE信号控制计数过程; *计数过程中写入新的计数值将在半周期结束时装入计数器。

  10. 3. 8253的方式控制字为: 00 11 011 1 例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。 1. 8253的端口地址为:80H,81H,82H,83H。 2. 常数计算:TC = 2.5MHz/2KHz=1250 4. 初始化程序段: MOV AL,37H OUT 83H,AL MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,AL

  11. 方式4(软件触发选通) * 写入控制字OUT=1; * 写入常数立即对CLK计数; * 计数到0,OUT=0; * 一个CLK周期后,OUT=1,计数器停止计数。 * 计数器只计数一遍; * OUT是N+1个CLK后变低; * 计数过程中,GATE=0, 计数暂停; * 若在计数过程中,改变计数值,则按新的计数值重新开始计数。

  12. 方式5(硬件触发选通) * 写入控制字OUT=1; * 写入常数后,由GATE的上升沿启动计数; * 计数到0,OUT=0; * 一个CLK周期后,OUT=1,计数器停止计数。 * 计数器只计数一次; * OUT是N+1个CLK后变低; * 在 计数过程中出现的GATE脉冲, 将使 计数器重新开始计数,对输出状态没有影响; * 若在计数过程中改变计数值,只要没有GATE信号触发,不影响计数过程。有新的GATE信号触发则按新的计数值开始计数。

  13. 六. 8253-PIT工作方式小结 1. 输出端OUT的初始状态 只有方式0是在写入控制字后输出为低,其它均为高; 2. 计数值的设置 任一种方式,只有在写入计数值后才能开始计数,方式0、2、3、4在写入计数值后,计数自动开始,方式1、5需外部触发,才开始计数。

  14. 计数值N与输出波形的关系

  15. 3. 门控信号的作用-----GATE输入总是在CLK输入时钟的上升沿被采样。在方式0,2,3,4中,GATE输入是电平起作用。在方式1,2,3,5中 GATE输入是上升沿起作用的。

  16. 4. 在计数过程中改变计数值 立即有效是写入计数值后的下一个CLK脉冲后,新的计数值开始起作用。 5.计数到0后计数器的状态 计数器减到0后并不停止,在方式0,1,4,5,计数器减到0后从FFFF/9999继续计数。方式2,3是连续计数,计数器自动装入计数值后,继续计数。

  17. 七. 8253-PIT的编程 8253-PIT初始化编程的步骤: 1.写入通道控制字,规定通道的工作方式;(A1A0=11) 2. 写入计数值(由控制字的D7D6确定通道号)。 ①若规定只写入低8位,则写入的为计数值的低8位,高8位自动置0; ②若规定只写入高8位,则写入的为计数值的高8位,低8位自动置0; ③若是16位计数值,则分两次写入,先写入低8位,再写入高8位。

  18. 0 0 1 1 0 0 1 1 第二节 Intel8253-PIT的应用举例 例1:某8253端口地址为F8H~FBH,欲用通道0以方式1,按BCD计数,计数值为5080。 1.确定通道控制字; 2.计数值的低8位为80; 3.计数值的高8位为50。 在计数过程中,8253读计数器现行值的方法:(将计数值存入内部锁存器) 初始化程序为: MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL MOV AL,03H ;计数器0的锁存命令 OUT 0FBH,AL;写入控制寄存器 IN AL,0F8H ;读低8位 MOV CL,AL ;存入CL中 IN AL,0F8H ;读高8位 MOV CH,AL ;存入CH中

  19. 例2:用8253产生各种定时波形。 74LS138 A9 A8 1MHz方波 G1 CLK0 CLK1 CLK2 A7 A6 5V A4 A3 A0 C BA GATE0 OUT0 2KHz方波 8086 CPU GATE1 OUT1 A5 M/IO 1ms的负脉冲 GATE2 OUT2 D7—D0 单脉冲 A1 A0 RD WR A2 A1 RD WR Y4 G2B G2A D7—D0 CS

  20. 例2:用8253产生各种定时波形。要求: (1)通道0输出频率为2KHz的方波; (2)通道1产生宽度为1ms的负脉冲; (3)通道2以硬件方式触发,输出单脉冲时常为26。 已知:8253基地址为310H,3通道所用时钟脉冲频率为1MHz。 分析:通道0工作于方式3,控制端GATE0接+5V,时间常数N0=1MHz/2KHz=500; 通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1的宽度为时常,单次触发,时间常数N1=1ms/0.001ms=1000; 通道2工作于方式5,由控制端GATE2的正跳变触发,可连续触发,时间常数N2=26。

  21. ;通道0初始化程序 MOV DX,316H MOV AL, 00110111B OUT DX,AL MOV DX,310H MOV AL,00H OUT DX,AL MOV AL,05H OUT DX,AL ;通道2初始化程序 MOV DX,316H MOV AL, 10011011B OUT DX,AL MOV DX,314H MOV AL,26H OUT DX,AL ;通道1初始化程序 MOV DX,316H MOV AL, 01110011B OUT DX,AL MOV DX,312H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL

  22. +5V GATE0 GATE1 D7-D0 WR RD A1 A0 CS WR RD A2 A1 D8-D15 2MHz CLK0 OUT0 CLK1 OUT1 M/ IO 译码 A0-A7 例3:8253控制LED。要求:LED点亮10秒,熄灭10秒 分析: 8253的地址线与CPU高8位数据线D8——D15相连,8253的各端口的地址为81H、83H、85H、87H。 OUT1输出占空比为1:1的方波, 8253端口1工作在方式3。 时钟频率为2MHz时,16位计数通道的最大定时时间为: 0 .5s65536=32.768ms 级连:通道0输出400Hz脉冲(时常5000),通道1输出0.05Hz方波(时常8000)。

  23. ;通道0初始化程序 MOV AL, 00110101B OUT 87,AL MOV AL,00H OUT 81,AL MOV AL,50H OUT 81,AL ;通道1初始化程序 MOV AL, 01110111B OUT 87,AL MOV AL,00H OUT 83,AL MOV AL,80H OUT 83,AL

  24. +5V +5V D7-D0 OUT0 WR RD A1 A0 CS +5V INTR WR RD A2 A1 GATE1 CLK1 M/IO 译码 AB 例4:用8253设计一个自动计数系统(计数500向CPU提出中断申请)。 8253端口地址: F0H, F2H, F4H, F6H, 8253工作方式:计数器1工作于方式0,按BCD计数,先读写低字节,后读写高字节。

  25. ;通道1初始化程序 MOV AL, 01110001B OUT 0F6H, AL MOV AL, 99H OUT 0F2H, AL MOV AL, 04H OUT 0F2H, AL 当前计数值的读取 (1)利用GATE控制信号,使计数器停止计数。故干扰了计数过程,需要硬件电路配合。 (2)利用计数器锁存命令锁存现行计数值,就可从相应的计数器通道中读取计数值。 ;读通道1计数值程序 MOV AL, 01000000B OUT 0F6H, AL IN AL, 0F2H MOV AH, AL IN AL, 0F2H XCHG AH, AL

  26. GATE0 GATE1 GATE2 IRQ0 18.2Hz OUT0 5V PB0 D Q C Q U21 D S Q C CLR U73 CLK0 CLK1 CLK2 DRQ0 66.2878KHz PCLK 2.38636MHz OUT1 A1 A0 IOR IOW T/C CS DACK0BRD RESETDRV OUT2 A1 A0 RD WR T/C2 OUT 896Hz D7—D0 D7—D0 CS 第三节 Intel8253-PIT在PC/XT机中的应用 方式3,n =0 方式2,n =18 方式3,n =1331 40H---43H

More Related