1 / 48

第 7 章 可编程接口芯片及应用

第 7 章 可编程接口芯片及应用. 第十三讲 接口电路 2006.12.11 (星期二). 本节介绍 8253-5 定时 / 计数器接口 计数器定时器概述 8253 的工作原理 8253 的应用举例. 7.1 计数器定时器概述. 在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制,如定时扫描、定时中断、定时检测等等。 在另外一些场合往往需要计数器,以便对事件进行计数。而定时功能通常是通过计数来实现的,因此一般将两者融为一体。. 定时控制或计数事件举例. [1] 分时系统的程序切换 [2] 向外部设备输出周期性定时控制信号

Télécharger la présentation

第 7 章 可编程接口芯片及应用

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. 第7章 可编程接口芯片及应用 第十三讲 接口电路 2006.12.11(星期二) • 本节介绍8253-5定时/计数器接口 • 计数器定时器概述 • 8253的工作原理 • 8253的应用举例

  2. 7.1 计数器定时器概述 • 在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制,如定时扫描、定时中断、定时检测等等。 • 在另外一些场合往往需要计数器,以便对事件进行计数。而定时功能通常是通过计数来实现的,因此一般将两者融为一体。

  3. 定时控制或计数事件举例 • [1]分时系统的程序切换 • [2]向外部设备输出周期性定时控制信号 • [3]定时时间到发出中断申请 • [4]外部事件统计达到规定值发出控制信号或提出中断请求

  4. 计数器和定时器的功能 • 两个方面: (1)作为计数器,在设置好计数常数(即定时初值)后,便开始减1计数,减到“0”时,输出一个信号。 (2)作为定时器,在设置好定时常数后,便进行减1计数,并按定时常数不断地输出为时钟周期整倍数的定时间隔。 两者区别是,作计数器时,在减到0以后,输出一个信号后便结束;作定时器时,不断产生定时脉冲信号。

  5. 实现定时的方法 • 主要有三种方法来实现定时功能 • 软件定时 • 不可编程的硬件定时 • 可编程的硬件定时

  6. 软件定时 • 方法: • 让机器循环执行某一条或一系列指令 • 特点: • 通过正确选取指令和合适的循环次数,便很容易实现定时功能 • 灵活方便节省费用,最简单的定时。 • CPU的利用率太低

  7. 不可编程硬件定时 • 专用的芯片: • 例如:555 • 特点: • 外接电阻R和电容C • 电路结构简单,价格便宜。 • 定时时间和范围不能由程序控制和改变

  8. 可编程硬件定时 • 方法: • 由微处理器的时钟信号提供时间基准 • 利用硬件电路和中断方法控制定时 • 定时时间和范围完全由软件来确定和改变 • 硬件部分称为可编程定时器/计数器电路 • 特点: • CPU利用率高 • 定时时间由软件设置,使用灵活方便。 • 定时精确,获得广泛应用。

  9. 8253芯片介绍 • 定时器/计数器芯片8253-5是Intel系列的定时器/计数器芯片,被广泛应用于PC机系列,提供系统定时和系统发声源。 • 同8253相兼容的芯片有8254-2等,它们的主要区别是计数频率不同。8253-5的计数频率为5MHz,而8254-2则可达10MHz。

  10. 7.2 8253的工作原理 • 主要介绍以下内容 • 8253框图 • 8253引脚信号 • 8253工作方式 • 8253编程方法

  11. 8253的内部框图

  12. 如上图所示,8253由外部数据接口、内部控制电路以及3个计数器通道所组成。如上图所示,8253由外部数据接口、内部控制电路以及3个计数器通道所组成。 • (1)数据总线缓冲器 • 这是8253和CPU数据总线的接口部件,是8位、双向、三态的缓冲器,CPU访问8253时所有数据都经过这个缓冲器传送。 • (2)读/写控制逻辑 • 这是8253内部操作的控制电路,它从系统控制线上接收输入信号,然后转变成8253内部操作的各种控制信号。

  13. (3)控制字寄存器 • 当A1和A0都为1时,访问控制字寄存器,它从数据总线上接收CPU送来的控制字,并由控制字的D6,D7的编码决定控制字写入哪个通道的控制寄存器,由寄存在每个通道的控制字寄存器里的控制字,决定每个计数器通道的工作方式、选择计数器是按二进制或二—十进制计数、并选择每个计数器初值的写入顺序。

  14. (4)通道0计数器、通道1计数器和通道2计数器 8253由3个同样的计数通道组成,每个计数通道都有CLK和GATE两根输入引脚和OUT一根输出引脚。从编程的角度看,每个计数通道的结构如下图所示。 外部输入到8253的CLK引脚上的时钟脉冲频率不能大于2MHz。如果大于2MHz,则必需经分频后才能送到CLK端。

  15. 8253的计数通道结构

  16. 8253的引脚信号图

  17. 8253寄存器寻址

  18. A1A0引脚接线方法 1 • 8088系统的接线方法 • 只要将A1A0分别与地址总线的最低两位A1,A0相连即可。比如,在以8088为CPU的PC/XT机中,地址总线高位部分(A9~A4)用于I/O端口译码,形成选择各I/O芯片的片选信号,低位部分(A3~A0)用于各芯片内部端口的寻址。若8253的端口基地址为40H,则通道0,1,2和控制字寄存器端口的地址分别为40H,41H,42H和43H。

  19. 8253引脚信号 • 8253的3个计数通道在结构和功能上是完全一样的,每个通道都有一个时钟输入引脚CLK、一个输出引脚OUT和一个门控引脚GATE。下面介绍这3根引脚的功能。

  20. 8253引脚信号 • CLK 时钟输入引脚 • 每个通道的计数器单元CE,对CLK输入脉冲进行计数。CLK脉冲可以是系统时钟脉冲,也可以由系统时钟分频或者是其它脉冲源提供。这个输入脉冲可以是均匀的、连续的、周期精确的,也可以是不均匀的、断续的、周期不定的。 • 若8253用作分频器,工作于定时器方式时,则CLK输入是连续的、周期精确的时钟脉冲,而OUT输出必定是频率降低的、周期精确的时钟脉冲。 • 若8253用作计数器,这时要求CLK输入只是脉冲的数量,而不是脉冲的时间间隔,所以CLK可以输入周期不定的脉冲。当然也可以输入周期确定的脉冲。当计数到预置的数值后,就从OUT端输出一个脉冲。若CLK的脉冲周期不定,则OUT输出的脉冲周期也不确定。

  21. 8253引脚信号 • OUT 脉冲输出引脚 • 减1计数到零/定时时间到的脉冲输出引脚。不管8253工作于何种方式,当计数器减1计数到零时,在OUT引脚上必定有电平或脉冲信号输出。 • GATE 门控输入引脚 • 这是一根外部控制计数器工作的信号线,通常当GATA为低电平时,就禁止通道的计数单元计数。

  22. 8253控制字寄存器 • 控制字寄存器是一种只写寄存器,在对8253进行编程时,由CPU用输出指令向它写入控制字,来选定计数器通道,规定各计数器通道的工作方式,读写格式和数制。控制字的格式如下图所示。

  23. 8253的控制字格式

  24. 8253控制字说明1 • SC1SC0——通道选择位 • 由于8253内部有3个计数通道,需要有3个控制字寄存器分别规定相应通道的工作方式,但这3个控制字寄存器只能使用同一个端口地址,在对8253进行初始化编程,设置控制字时,需由这两位来决定在向哪一个通道写入控制字。选择SC1SC0=00,01,10分别表示向8253的计数器通道0~2写入控制字。SC1SC0=11时无效。

  25. 8253控制字说明2 • RL1RL0——读/写操作位 • 用来定义对选中通道中的计数器的读/写操作方式。当CPU向8253的某个16位计数器装入计数初值,或从8253的16位计数器读入数据时,可以只读写它的低8位字节或高8位字节。RL1RL0组成4种编码,表示4种不同的读/写操作方式 。

  26. 读/写操作字段的定义 • RL1RL0=01,表示只读/写低8位字节数据,只写入低8位时,高8位自动置为0。 • RL1RL0=10,表示只读/写高8位字节数据,只写入高8位时,低8位自动置为0。 • RL1RL0=11,允许读/写16位数据。由于8258的数据线只有8位(D7~D0),一次只能传送8位数据,故读/写16位数据时必须分两次进行,先读/写计数器的低8位字节,后读/写高8位字节。 • RL1RL0=00,把通道中当前数据寄存器的值送到16位锁存器中,供CPU读取该值。

  27. 8253控制字说明3 • M2M1M0——工作方式选择位 • 8253的每个通道都有6种不同的工作方式,即方式0~5。当前工作于哪种方式,由这3位来选择。每种工作方式的特点、计数器的输出与输入及门控信号之间的关系等问题,将在后面作进一步介绍。

  28. 8253控制字说明4 • BCD——计数方式选择位 • 当BCD位为1时,采用BCD码计数,写入计数器的初值用BCD码表示,初值范围为0000~9999H,其中0000表示最大值10000,即104。例如,当我们预置的初值n=1200H时,就表示预置了一个十进制数1200。 • 当BCD位为0时,则采用二进制格式计数,写入计数器中的初值用二进制数表示。在程序中,二进制数可以写成16进制数的形式,所以初值范围为0000~FFFFH,其中0000表示最大值65536,即216。这时,如果我们仍预置了一个初值n=1200H,就表示预置了一个十进制数4608。

  29. 8253初始化编程步骤 • 刚接通电源时,诸如8253之类的可编程外围接口芯片通常都处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。对8253芯片进行初始化编程时,需按下列步骤进行: • (1)写入控制字 • (2)写入计数初值

  30. 8253初始化编程举例 • 在某微机系统中,8253的3个计数器的端口地址分别为4E0H、4E2H和4E4H,控制字寄存器的端口地址为4E6H,要求8253的通道0工作于方式3,并已知对它写入的计数初值n=1234H,则初始化程序如下:

  31. MOV AL,00110110B ;选择通道0,先读/写低字节 ;后高字节,方式3,二进制计数 MOV DX, 4E6H ;指向控制口 OUT DX, AL ;送控制字 MOV AL, 34H ;计数值低字节 MOV DX, 4E0H ;指向计数器(通道)0 端口 OUT DX, AL ;先写入低字节 MOV AL, 12H ;计数值高字节 OUT DX, AL ;后写入高字节

  32. 门控信号的控制功能 • 门控信号GATE在各种工作方式中的控制功能如下表所示,其中符号“—”表示无影响。 工作方式 GATE为低电平或下降沿 GATE为上升沿 GATE为高电平 方式0 禁止计数 允许计数 — 从初始值开始计数,下一 方式1 — — 个时钟后输出变为低电平 方式2 禁止计数,使输出变高 从初值开始计数 允许计数 方式3 禁止计数,使输出变高 从初值开始计数 允许计数 方式4 禁止计数 允许计数 — 方式5 从初值开始计数 — —

  33. 8253的工作方式 • 8253的每个通道都有6种不同的工作方式,现在介绍如下: • 方式0 计数结束中断方式 • 方式1 可编程单稳态输出方式 • 方式2 比率发生器 • 方式3 方波发生器 • 方式4 软件触发选通 • 方式5 硬件触发选通

  34. 8253工作方式0的时序图

  35. 8253工作方式1的时序图

  36. 8253工作方式2的时序图

  37. 8253工作方式3的时序图

  38. 8253工作方式4的时序图

  39. 8253工作方式5的时序图

  40. 9.3 8253应用举例 • 8253芯片可以用在微型机系统中,构成各种计数器、定时器电路或脉冲发生器等。使用8253时,先要根据实际需要设计硬件电路,然后用输出指令向有关通道写入相应的控制字和计数初值。也就是对8253进行初始化编程。此后8253就可以工作了。 • 由于8253的3个计数通道是完全独立的。因此可以分别对它们进行硬件设计和软件编程, 使三个通道工作于相同或不同的工作方式。

  41. 8259应用举例1 用8253产生各种定时波形 • 某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。 • 指定3个计数通道分别完成以下功能: (1)通道0工作于方式3,输出频率为2kHz的方波 (2)通道1产生宽度为480μs的单脉冲 (3)通道2方式2,输出负脉冲,时间常数为26。 • 据此设计的硬件电路如下图所示。

  42. 8253定时波形产生电路 74LS138 M/IO CLK 1MH z 方波 0 CLK A 1 G1 9 A CLK 8 2 A 8253 G2A 7 A 6 8086 Y CS A 4 G2B GATE +5V 5 0 CPU OUT 2KH z 方波 0 A C 4 A B 3 A A GATE 0 1 A A OUT 480μs宽单脉冲 2 1 1 A A 1 0 RD RD GATE 2 WR WR OUT 负脉冲 2 D ~ D D ~ D 7 0 7 0

  43. 初始化程序清单1 ;通道0初始化程序 MOV DX, 316H ;控制口地址 MOV AL, 00110111B ;通道0控制字,先读写低字节 ;后高字节,方式3,BCD计数 OUT DX, AL ;写入方式字 MOV DX, 310H ;通道0口地址 MOV AL, 00H ;低字节 OUT DX, AL ;先写入低字节 MOV AL, 05H ;高字节 OUT DX, AL ;后写入高字节

  44. 初始化程序清单2 ;通道1初始化程序 MOV DX, 316H MOX AL, 01110011B ;通道1方式字,先读写低字节 ;后高字节,方式1,BCD计数 OUT DX, AL MOV DX, 312H ;通道1口地址 MOV AL, 80H ;低字节 OUT DX, AL MOV AL, 04H ;高字节 OUT DX, AL

  45. 初始化程序清单3 ;通道2初始化程序 MOV DX, 316H MOV AL, 10010101B ;通道2控制字,只读写低字节 ;方式5,BCD计数 OUT DX, AL MOV DX, 314H ;通道2口地址 MOV AL, 26H ;低字节 OUT DX, AL ;只写入低字节

  46. 8253在PC/XT机中的应用 • 在PC/XT机中,使用8253-5作计数器/定时器电路。参看下面的电路连接图。 • 三个计数通道的用途分别如下: • 计数通道0---实时时钟 • 计数通道1---动态RAM刷新定时器 • 计数通道2---扬声器音调控制

  47. DACK BR D 0 GATE +5V 0 GATE IRQ PB 1 OUT 0 0 GATE 0 到8259A 2 +5V 从8255A-5来 8253-5 U26 S DRQ CLK D Q D D Q 0 0 到8237A-5 CLK 74LS175 74LS175 1 启动DMA CLK U21 U21 2 C Q PCLK C OUT 1 CLR 2.38636MH z IOR RD IOW WR RESETDRV CS T/C CS A A 1 1 OUT T/C2 0UT A A 2 0 0 到扬声器接口电路 D ~D D ~D 7 0 7 0 8253在PC/XT机中的接线图

  48. 思考: 1。熟悉课上8253的应用例题 2。设计电路,用8253 产生10Hz的方波,输入时钟为1MHz

More Related