1 / 98

第九章 定时 / 计数器 8253

xtwang@mail.xidian.edu.cn. 第九章 定时 / 计数器 8253. 5. 1. 2. 3. 4. 8253 内部 结构及工作原理. 8253 的控制字及工作方式. 8253 与系统总线的接口连接方法. 8253 引脚功能及特点. 8253 的应用和设计. Contents. 8253 简介. 定时. 分频. 方波. §9.1 8253 引脚功能及特点.

Télécharger la présentation

第九章 定时 / 计数器 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. xtwang@mail.xidian.edu.cn 第九章 定时/计数器8253

  2. 5 1 2 3 4 8253内部结构及工作原理 8253的控制字及工作方式 8253与系统总线的接口连接方法 8253引脚功能及特点 8253的应用和设计 Contents

  3. 8253简介 定时 分频 方波

  4. §9.1 8253引脚功能及特点 Intel8253是8086/8088微机系统常用的定时/计数器芯片,它具有定时,计数与分频三大功 能,同类型的定时/计数器芯片还有Intel8254等,8253是24脚双列直插芯片,用+5V电源供电。 1、8253的一般性能概述 (1)每个8253芯片有3个独立的16位计数器通道。 (2)每个计数器通道都可以按照二进制或二--十进制计数。 (3)每个通道有6种工作方式,可以由程序设定和改变。

  5. 引脚名 功 能 连接去向 数据总线(双向) CPU 片选信号 译码电路 读信号 CPU 写信号 CPU 端口地址 CPU 3个计数通道的输入时钟 (计数脉冲) 外部 3个计数通道的控制信号 外部 3个计数通道的输出信号 外部 Vcc 电源(+5V) / GND 地 / §9.1 8253引脚功能及特点 表18253引脚定义 Intel公司生产的可编程定时/计数器8253 采用24脚的DIP封装,用作为分频器、定时信号产生器等。

  6. §9.2 8253的原理结构及工作原理 可编程定时/计数器8253的原理结构图 定时/计数器8253一共有三个独立的计数通道 (也称计数器): 计数器0、 计数器1、 计数器2。

  7. §9.2 8253的原理结构及工作原理 CPU 可访问

  8. §9.2 8253的原理结构及工作原理 定时/计数器8253占用4个端口地址,: 寻 址 COUNTA 0 0 计数通道0 COUNTB 0 1 计数通道1 COUNTC 1 0 计数通道2 COUNTD 1 1 控制字寄存器 其中控制字寄存器用一个端口地址,由控制字中的 位来指定寻址哪个计数通道,其它3个计数通道各占用一个端口地址。为本章说明方便,将这四个地址分别用COUNTA、COUNTB、 COUNTC和COUNTD表示。 通过计数通道的端口地址可以访问通道中的CR、OL,当对通道进行写操作时,实际上表示将计数初值(即时常数)写入CR;当对通道进行读操作时,表示将从OL中读取计数值。

  9. §9.3 8253的控制字及工作方式 • 8253共有 6种工作方式 • 工作于哪种方式,由控制寄存器的内容来设定 图 8253的方式控制寄存器

  10. §9.3 8253的控制字及工作方式 三个计数通道的控制寄存器共用一个端口地址,由控制字中的位 (即 )来确定计数通道: 含 义 0 0 计数通道0 0 1 计数通道1 1 0 计数通道2 1 1 保留

  11. §9.3 8253的控制字及工作方式 • EG: 8253的控制寄存器端口地址为COUNTD • 要对计数器0,1,2的三个控制寄存器进行设置,需要对COUNTD这个地址进行三次访问,执行3次OUT指令才行。 MOV DX COUNTD (指向控制寄存器) MOV AL 00XXXXXX (对计数器0设置) OUT DX AL MOV AL 01XXXXXX (对计数器1设置) OUT DX AL MOV AL 10XXXXXX (对计数器2设置) OUT DX AL

  12. 方式控制字的位 (即 )用于设定计数通道的读写规则: 含 义 0 0 计数通道的锁存命令,即将当前CE的内容锁存到OL 0 1 只读写CR或OL的低8位 1 0 只读写CR或OL的高8位 1 1 先读写CR或OL的低8位,再读写高8位 §9.3 8253的控制字及工作方式 如果是16位时常数必须分两次写 为什么不能 一次送一个字?

  13. 方式控制字的 位( )用于设定计数通道的工作方式: 含 义 0 0 0 方式0 0 0 1 方式1 ×1 0 方式2 ×1 1 方式3 1 0 0 方式4 1 0 1 方式5 §9.3 8253的控制字及工作方式

  14. §9.3 8253的控制字及工作方式 • 方式控制字的最低位 (即BCD位)用于指定读写数据的格式,当BCD=0时,表示读写数据为二进制数,当BCD=1时,表示读写数据为两位十进制数。

  15. §9.3 8253的控制字及工作方式 • 8253的初始化编程 • EG. 8088系统上,8253的地址为40H~43H,计数器0计数初值为23,工作在工作方式2,十进制计数;计数器1的计数初值为100,工作在工作方式0;计数器2计数初值为1000,工作在工作方式5。试写出该8253的控制字初始化程序段。 • MOV DX, 43H • MOV AL, 00110101B • OUT DX, AL • MOV AL, 01010000B • OUT DX, AL • MOV AL, 10111010B • OUT DX, AL

  16. §9.3 8253的工作方式 • 名词介绍: • (1)CLK脉冲:是指CLK上从上升沿到下降沿的时间 • (2)计数器: 与计数通道的含义一致 • (3)时常数: 是指通过指令写入到计数器的值,可以理解成计数器的初值。

  17. §9.3 8253的控制字及工作方式 • 1.方式0 ——计数达到终值时中断 功能:给定时间t0,当到达时间t0时,需要进行某种操作。 1.当写入方式控制字后,OUT=0 2.写入时常数后,开始计数,计数器达到0时变高电平 3.再次写入时常数,开始新一轮计数 控制信号GATE可以暂停计数操作,来加长定时的时间(在时常数不变的情况下) 当GATE=0时,表示相应的计数器暂停计数; 当GATE=1时,表示相应的计数器正常计数。

  18. §9.3 8253的控制字及工作方式 N+1个时钟周期 减1计数到00之前变成高电平 GATE=1情况下方式0计数过程 计数到达终值后,输出高电平,但CE继续减1计数

  19. §9.3 8253的控制字及工作方式 利用GATE信号加长OUT端的低电平宽度

  20. §9.3 8253的控制字及工作方式 利用写入新的时常数加长OUT端的低电平宽度

  21. §9.3 8253的控制字及工作方式 • 方式0具有下列一些特点: • 在向8253置方式字或置时常数时,OUT输出变成低电平; • 置入时常数后,下一个CLK脉冲,使CR内容(初值)置入计数单元; • 在后续CLK脉冲,进行“减1”计数; • 当计数至0时,OUT由低变高,并继续计数,从0到0FFFFH; • 上述计数过程要受GATE控制,当GATE=1时允许计数,当GATE=0时则暂停计数; • 正常情况下,即GATE=1,对计数器置入时常数N时,要经过N+1个时钟周期才能使OUT输出高电平; • OUT端由低变高信号可用作为中断请求信号,表示已达到了预定的时间; • 在计数过程中,如GATE变为低电平,这时只是暂停计数,等待GATE信号变为高电平后,计数器继续“减1”计数。 • 在计数过程中,如果重新写入计数初值,就重新开始重新计数,延长OUT端的低电平。

  22. §9.3 8253的控制字及工作方式 • 例题,对8253(地址:40H~43H)写控制字,将计数器0设置成工作方式0,假设时常数为1500,写出初始化程序: MOV DX, 43H MOV AL, 0011 0000B OUT DX, AL MOV DX, 40H MOV AX, 1500 OUT DX, AL XCHG AL, AH OUT DX, AL 计数器的初始化分为两部分 写控制字 和 写时常数 分析: 1.设置工作方式,通过写控制字实现 2.控制字分析:时常数=1500要用16位寄存器 00 11 000 0 B 3.控制字端口地址:43H 4. 计数器0的地址:40H 5.向计数器零写时常数1500 反过来,给出控制自己,要能分析出8253的工作方式

  23. §9.3 8253的控制字及工作方式 2.方式1 ——硬件触发的单脉冲形成 功能:用硬件触发形成单脉冲。 1.当写入方式控制字后,OUT=1 2.写入时常数,OUT端无变化 3.GATE上升沿触发计数开始,下一个时钟,OUT=0 4.减1计数,计数器达到0时 OUT=1

  24. §9.3 8253的控制字及工作方式 在第一次硬件触发产生单脉冲完成之前,又来了一个触发信号,从而使单脉冲宽度变宽

  25. §9.3 8253的控制字及工作方式 在某次单脉冲完成之前,又写入了新的时常数,下次单脉冲才采用新时常数

  26. §9.3 8253的控制字及工作方式 • 方式1具有下列一些特点: • 在置方式1的控制字或置入时常数后,不影响输出,OUT端仍输出高电平; • 在GATE端输入有效的触发信号(上升沿),并经过一个CLK脉冲,OUT变为低电平,作为单脉冲的开始,同时将CR读入CE,并开始“减1”计数; • 当CE计数到0之前,OUT端变为高电平,表示本次单脉冲形成结束; • 正常情况下,当计数通道的时常数为N时,硬件触发所产生的单脉冲(低电平)的宽度为N个计数时钟周期; • 每个触发信号都可以形成一个单脉冲,但如果在单脉冲低电平期间再加入触发信号,则可以使单脉冲宽度加宽; • 在单脉冲形成期间,向CR置入新的时常数,但未加触发信号,则本次单脉冲的形成不受影响,之后的触发信号才使用新的时常数。

  27. §9.3 8253的控制字及工作方式 方式0和方式1的异同 相同点 输入方式一样:都是给定初值,进行减1计数 输出形式一样:都是输出低电平信号,在计数器减到0以后转为高电平 功能一样: 都是定时器 不同点 触发形式不一样: 方式0: 软件触发,通过写时常数进行新一次计数的开始 方式1: 硬件触发,通过GATE0的一次上升沿触发新一次计数的开始 持续时间不同: 方式0: N+1个时钟周期的低电平 方式1: N 个时钟周期的低电平

  28. §9.3 8253的控制字及工作方式 例题,控制8253,将计数器2设置为工作方式1,时常数为15,采用低8位寄存器计数,写初始化程序: 分析: 1.设置工作方式,通过写控制字实现 2.控制字分析:时常数=15,要低8位寄存器 MOV DX, COUNTD; MOV AL, 1001 0010B OUT DX, AL MOV DX, COUNTC; MOV AL, 15 OUT DX, AL 01 10 001 0 B 3.控制字端口地址:COUNTD 4.计数器2端口地址: COUNTC 4.向计数器零写时常数15

  29. §9.3 8253的控制字及工作方式 • EG. 8088最大系统下,8253的地址范围为370H~373H,输入时钟为1MHz方波,先将计数器0和计数器1分别设置在工作方式0和工作方式1,时常数均为7,写初始化程序,GATE有效,画输出波形。 MOV DX, 373H MOV AL, 00010000B OUT DX, AL MOV AL, 01010010B OUT DX, AL MOV DX, 370H MOV AL, 7 OUT DX, AL MOV DX, 371H OUT DX, AL ? ?

  30. §9.3 8253的控制字及工作方式 • EG. 8253的计数器0和计数器1分别输出波形如下,写初始化程序。 MOV DX, COUNTD MOV AL, 00010000B OUT DX, AL MOV AL, 01010010B OUT DX, AL MOV DX, COUNTA MOV AL, 7 OUT DX, AL MOV DX, COUNTB OUT DX, AL

  31. §9.3 8253的控制字及工作方式 • 思考:计数器工作在工作方式1的时候,能否产生具有一定频率的周期信号?

  32. §9.3 8253的控制字及工作方式 • 3.方式2 ——分频脉冲形成 • 功能:方式2类似于N分频器,利用这种方式可以产生周期信号。 • 在正常情况下(GATE=1), • 将计数器设置成方式2后(写完控制字),OUT端输出高电平; • 向CR置入时常数N后,下一个CLK脉冲开始“减1”计数; • 当计数到0001H时,OUT端变为低电平,经过一个CLK脉冲,OUT端再次变为高电平,产生一个时钟周期的负脉冲, • 与此同时,重新将时常数从CR读入CE,并继续计数。 • 这样,就可以产生周期为N的分频信号。

  33. 重点 §9.3 8253的控制字及工作方式 正常情况下(即GATE=1)的分频脉冲形成,当时常数为 N时,则OUT产生的信号为计数时钟的N分频,高电平为 (N-1)个计数时钟周期,低电平为1个计数时钟周期。

  34. §9.3 8253的控制字及工作方式 硬件触发 GATE信号的作用效果,当GATE为低电平时,计数器暂停计数,GATE端的上升沿使计数器重新读入时常数。

  35. §9.3 8253的控制字及工作方式 软件触发 写入新的时常数的情况,只能在下一次分频脉冲后起作用。

  36. §9.3 8253的控制字及工作方式 • 方式2具有下列一些特点: • 在置方式2的控制字后,OUT端变为高电平; • 在置入时常数后,下一个CLK脉冲期间,将时常数从CR读入CE,并开始“减1”计数; • 当CE计数到01时,在OUT端输出一个负脉冲,并重新读入时常数进行计数; • 正常情况下,当计数通道的时常数为N时,OUT产生的信号为计数时钟的N分频; • OUT产生的分频信号,有两种同步方式:向CR写入新的时常数(称为软件同步)和在GATE端产生上升沿(称为硬件同步); • 当GATE=0时,计数器暂停计数。

  37. §9.3 8253的控制字及工作方式 EG,用8253的计数器1生成5分频信号,采用低8位时常数计数。写初始化程序,画输出信号波形。 MOV DX, COUNTD MOV AL, 1001 0100B OUT DX, AL MOV DX, COUNTB MOV AL, 5 OUT DX, AL 分析: (1)5分频 计数器时常数 N=5 (2)控制字分析: 01010100B

  38. §9.3 8253的控制字及工作方式 • 时常数计算 • EG1. 输入信号CLK频率为2MHz,输出信号频率为1KHz, 时常数 = ? • EG2. 输入信号CLK周期为1us,输出信号周期为1.3ms, 时常数 = ? • EG3. 输入信号CLK频率为1MHz,输出为如下的周期信号, 时常数 = ? 2000 1300 4500 3

  39. §9.3 8253的控制字及工作方式 4.方式3 ——方波信号形成(分频) 功能:方式3类似于方式2,只是在OUT上产生对称的或近似对称的方波。 • 输出信号的周期取决于输入时常数N • 当N为偶数时,输出对称方波 • 当N为奇数时,输出近似对称方波 • (高电平比低电平多一个时钟周期) N=4 N=5

  40. §9.3 8253的控制字及工作方式 • 在正常情况下(GATE=1),将计数器设置成方式3后,OUT端输出高电平; • 向CR置入时常数N(设N为偶数)后,下一个CLK脉冲将时常数从CR读入CE,并开始“减2”计数。 • 当计数到0时,OUT端变为低电平;重新将时常数从CR读入CE,并进行“减2”计数。 • 当计数到0时,OUT端再次变为高电平,产生一个时钟周期的方波信号。重复这一过程,可以产生周期为N的对称方波信号。

  41. §9.3 8253的控制字及工作方式 • 当设定的时常数N为奇数时, • 在将时常数从CR读入CE时会自动减1,使CE中的初值变成N-1(偶数) • OUT端输出高电平,并开始“减2”计数 • 当计数到0时,再经过1个CLK后使OUT端变成低电平 • 重新将时常数从CR读入CE,并进行“减2”计数,当计数到0时,OUT端再次变为高电平,重复这一过程,可以产生周期为N的近似对称方波。

  42. 重点 §9.3 8253的控制字及工作方式 应用:生成低频的时钟信号 正常情况下(即GATE=1)的对称方波信号形成,时常数N为偶数

  43. §9.3 8253的控制字及工作方式 为正常情况下的近似对称方波信号形成,时常数N为奇数

  44. §9.3 8253的控制字及工作方式 表示GATE信号的作用效果(时常数N为奇数),当GATE为低电平时,计数器暂停计数,GATE端的上升沿使计数器重新读入时常数。

  45. §9.3 8253的控制字及工作方式 • 方式3具有下列一些特点: • 在置方式3的控制字后,OUT端变为高电平; • 在置入偶数的时常数后,OUT端变为高电平,下一个CLK脉冲期间,将时常数从CR读入CE,并开始“减2”计数;当CE计数到0时,OUT端输出变为低电平,并重新读入时常数进行计数;当再次计数到0时,OUT端输出变为高电平,产生一个周期的对称方波信号; • 在置入奇数的时常数后,OUT端变为高电平,下一个CLK脉冲期间,将时常数从CR读入CE时自动减1,并开始“减2”计数;当CE计数到0时,再经过1个CLK后使OUT端变成低电平;并重新读入时常数进行计数;当再次计数到0时,OUT端输出变为高电平,产生一个周期的近似对称方波信号; • 正常情况下,当计数通道的时常数为N时,OUT产生的信号为计数时钟的N分频方波信号; • OUT产生的方波信号,有两种同步方式:向CR写入新的时常数(称为软件同步)和在GATE端产生上升沿(称为硬件同步); • 当GATE=0时,计数器暂停计数。

  46. §9.3 8253的控制字及工作方式 EG,8254计数器0接在8086CPU的CLK时钟上,要求计数器0的输出为0.5MHZ的新时钟方波,写初始化程序。 分析:8086CPU的CLK主频:5MHZ 现要求0.5MHZ 周期是CLK的10倍 MOV DX, COUNTD MOV AL, 0001 0110B OUT DX, AL MOV DX, COUNTA MOV AL, 10 OUT DX, AL 时常数N=10

  47. §9.3 8253的控制字及工作方式 EG,8254计数器0接在8086CPU的CLK时钟上,要求计数器0的输出为1MHZ的新时钟方波,计数器2产生1Hz的单脉冲周期信号。写初始化程序,画出8253引脚连接图和OUT0的输出波形。 级联的准则: 两个时常数均在计数范围之内 两个计数范围之积等于总分频数 分析: 8086时钟:5MHz 计数器2输出:1Hz 分析: 8086时钟:5MHz 计数器0输出:1MHz 5000000分频>65535 5分频 级联 5000*1000 时常数N0=5

  48. §9.3 8253的控制字及工作方式 MOV DX, COUNTD MOV AL, 00010110B OUT DX, AL MOV AL, 01110110B OUT DX, AL MOV AL, 10110100B OUT DX, AL MOV DX, COUNTA MOV AL, 5 OUT DX, AL MOV DX, COUNTB MOV AX, 5000 OUT DX, AL XCHG AL, AH OUT DX, AL MOV DX, COUNTC MOV AX, 1000 OUT DX, AL XCHG AL, AH OUT DX, AL 5MHz N=5 1MHz 5MHz N=5000 1KHz N=1000 1Hz

  49. §9.3 8253的控制字及工作方式 MOV DX, COUNTD MOV AL, 00010110B OUT DX, AL MOV AL, 01110110B OUT DX, AL MOV AL, 10110100B OUT DX, AL MOV DX, COUNTA MOV AL, 5 OUT DX, AL MOV DX, COUNTB MOV AX, 1000 OUT DX, AL XCHG AL, AH OUT DX, AL MOV DX, COUNTC MOV AL, 1000 OUT DX, AL XCHG AL, AH OUT DX, AL 5MHz N=5 1MHz N=1000 1KHz N=1000 1Hz 级联的方式自选,但随着级联方式不同,时常数设定随之改变

  50. §9.3 8253的控制字及工作方式 • 5.方式4 ——软件触发产生选通信号 • 将计数器设置成方式4后,OUT端输出高电平; • 向CR置入时常数N后,下一个CLK脉冲将时常数从CR读入CE,并开始“减1”计数; • 当计数到0时,OUT端变为低电平,经过一个CLK脉冲,OUT端再次变为高电平,完成一次选通信号的产生。 • 当再次写入时常数N时,OUT端将经过(N+1)计数时钟周期后产生负的选通信号。

More Related