《第8章8253ppt课件.ppt》由会员分享,可在线阅读,更多相关《第8章8253ppt课件.ppt(40页珍藏版)》请在三一文库上搜索。
1、第八章 可编程定时/计数器8253及其应用,计算机系统中,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。 也可进行计数。 8253为可编程的硬件定时/计数器。,8.1 Intel8253-PIT的工作原理,一. 8253的功能,8253为可编程的硬件定时/计数器。,主要功能 * 具有3个独立的16位计数器通道; * 每个计数器均可按二进制或二十进制计数; * 每个计数器的计数速率高达2MHz; * 每个通道有6种工作方式,可由程序设置和改变; * 所有的输入输出都与TTL兼容。,二. 8253的内部结构,*三个计数器(减法器) 3个独立的16位减法器,可作定时/计
2、数器使用; 计数器按二/BCD方式减法计数,从预常减到零时,OUT端输出一信号。,*数据总线缓冲器(传送信息) 写控制字, 写时间常数(计数初值), 读计数值,*读写逻辑,*控制字寄存器(存放控制字),三.8253 的引线,* 数据线(D7D0) * 地址线:选择内部寄 存器; 片内寻址 A1 A0= 00、01、10、11 对应:通道0、1、2和控制口地址 * 控制线:完成片选和 读写操作。,*三个计数通道,可单独使用 CLK:输入时钟脉冲线; GATE:门控信号输入线; 分电平控制或上升沿控制两种 OUT:输出引脚; 当计数到“0”时,OUT 端输出一信号。具体波形由工作出方式决定。,计数
3、初值寄存器,减一计数器,输出锁存器,CLK GATE,OUT,8253计数通道结构,8253 编程结构(每一个通道的结构),8253使用: 外部事件计数时:CLK上的计数脉冲有外部事件产生,间隔可以不等。 定时时:CLK上输入精确的时钟脉冲。 定时时间=预置的计数初值nCLK周期Tc 或=预置的计数初值n /时钟频率fc,8253输入信号组合的功能表,8253/8254的功能较差,没有复位信号,上电后,其工作方式是不确定的,输出信号OUT的电平不能确定(这在某些应用中是不允许的),CPU必须对其进行初始化,才能正常工作。 8253/8254在单次、可重复触发的单稳和波特率发生器等方面功能较强。
4、但没有输入捕获和输出比较功能,在精密时间测量和直流马达控制中很不方便。,四. 8253-PIT的控制字,0=二进制 1=BCD,在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。,五. 8253-PIT的编程,8253-PIT初始化编程的步骤:,1. 先写入通道控制字,规定通道的工作方式;(A1A0=11) 2. 再写入计数初值(由控制字的D7D6确定通道号)。 若规定只写入低8位,则写入的为计数值的低8位,高8位自动置0; 若规定只写入高8位,则写入的为计数值的高8位,低8位自动置0; 若是16位计数值,则分两次写入,先写入低8位,再写入高8位
5、。(同一计数器地址,写两次) BCD: 0000H9999H(10000,19999) 二进制:0000HFFFFH(65536 ,165535) 3 . 三个通道分别初始化 , 顺序任意。,初值写入后,要经过一个时钟脉冲的上升和下降沿,才将计数初值写入实际的计数器,然后在门控信号控制下,开始对CLK上的脉冲进行递减计数。,六. 8253-PIT的工作方式,* CW写入,OUT=0; * 写入计数初值,通道开始计数; * 计数到零,OUT=1; * OUT是N+1个CLK后变高; * 计数器只计数一遍(单次); * 8253无中断控制,可用OUT信号作为中断请求。,* 计数过程中,GATE变低
6、, 使计数暂停,变高后,继续计数。 * 计数过程中若改变计数初值,则按新的计数值开始新的计数。,1. 方式0-计数结束中断方式,4,方式1(可编程单稳),写入控制字,OUT=1, 写入时常不计数; 由GATE启动计数,下一个CLK的下降沿 OUT=0; 计数到0,OUT=1。,单稳负脉冲宽度为N*TC 由GATE重新启动; 计数中,若GATE再次触发,则重新装入初值,重新计数。使输出负脉冲加宽; 计数中,可改变计数初值,到再次触发后有效。,由硬件启动计数,可当限时器来用,方式2(波特率发生器),写入控制字OUT=1; 写入时常后启动对CLK的计数; 计数到1,OUT=0; 一个CLK周期后,O
7、UT=1, 且自动重新计数。 通道连续工作,不需重置时常;,计数过程中,GATE=0,OUT=1,计数暂停,GATE变高后重新计数; 计数中,改变计数初值,到计数值为0时,按新初值计数。,产生连续的负脉冲序列 FOUT=FCLK / N,方式3(方波速率发生器),* 与方式2的区别在于:输出为周期是N个CLK脉冲的方波。 * 若计数值为偶数,每个CLK使计数值减2,计到0,OUT改变状态,重装计数值开始新的计数。,*若计数初值为奇数,第一个脉冲先减1,以后,每个CLK使计数值减2,计到0 时,OUT改变状态,重装计数值后,第一个脉冲减3,以后,每个CLK使计数值减2,计到0时,OUT改变状态。
8、,*GATE信号控制计数过程同方式2; *计数过程中写入新的计数值,将在半周期结束时装入计数器。,FOUT=FCLK / N,例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。,2. 计数初值:N = 2.5MHz/2KHz=1250,MOV AL,37H OUT 83H,AL MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,AL,1. 8253的端口地址为:80H,81H,82H,83H。,4. 初始化程序段:,方式4(软件触发选通),* 写入控制字OUT=1; * 写入时常后启动CLK
9、计数 * 计数到0,OUT=0; *一个CLK周期后,OUT=1,计数器停止计数。 * 计数器只计数一遍(单次) * OUT是N+1个CLK后变低;,* 计数过程中,GATE=0, 计数暂停,为高后重新计数; * 若在计数过程中,改变计数值,则按新的计数值重新开始计数。,方式5(硬件触发选通),* 写入控制字OUT=1; * 写入常数后,由GATE的上升沿启动计数; * 计数到0,OUT=0; * 一个CLK周期后,OUT=1,计数器停止计数。,* 计数器只计数一次; * OUT是N+1个CLK后变低; * 在计数过程中出现的GATE脉冲,将使计数器重新开始计数,对输出状态没有影响; * 若在
10、计数过程中改变计数值,只要没有GATE信号触发,不影响计数过程。有新的GATE信号触发则按新的计数值开始计数。,七. 8253-PIT工作方式小结,1. 输出端OUT的初始状态 只有方式0是在写入控制字后输出为低,其它均为高;,2. 计数初值的设置 任一种方式,只有在写入计数值后才能开始计数。 方式0、2、3、4在写入计数值后,计数自动开始 方式1、5需外部触发,才开始计数。,计数初值N与输出波形的关系,各种工作方式的输出波形,方式 0,方式 1,方式 2,方式 3,方式 4,方式 5,0,N,0,N,0,N,0/N,1,1,0,N,N/2,N/2,0/N,0,N,0 1,N,0 1,N,0
11、1,3. 门控信号的作用-GATE输入总是在CLK输入时钟的上升沿被采样。在方式0,2,3,4中,GATE输入是电平起作用。在方式1,2,3,5中 GATE输入是上升沿起作用的。,4. 在计数过程中改变计数值 立即有效是写入计数值后的下一个CLK脉冲后,新的计数值开始起作用。,5.计数到0后计数器的状态 计数器减到0后并不停止,在方式0,1,4,5,计数器减到0后从FFFF/9999继续计数。方式2,3是连续计数,计数器自动装入计数值后,继续计数。,例1:某8253端口地址为F8HFBH,欲用通道0以方式1,按BCD计数,计数值为5080。,1.确定通道控制字; 2.计数值的低8位为80; 3
12、.计数值的高8位为50。,初始化程序为: MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL,在计数过程中,8253读计数器现行值的方法:(将计数值存入内部锁存器),MOV AL,03H ;计数器0的锁存命令 OUT 0FBH,AL;写入控制寄存器 IN AL,0F8H ;读低8位 MOV CL,AL ;存入CL中 IN AL,0F8H ;读高8位 MOV CH,AL ;存入CH中,8.2 Intel8253-PIT的应用举例,例2:用8253产生各种定时波形。要求:,(1)通道0输出频率为2KHz的方波;
13、(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。,分析:,;通道0初始化程序 MOV DX,316H MOV AL, 00110111B OUT DX,AL MOV DX,310
14、H MOV AL,00H OUT DX,AL MOV AL,05H 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,;通道2初始化程序 MOV DX,316H MOV AL, 10011011B OUT DX,AL MOV DX,314H MOV AL,26H OUT DX,AL,例3:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。
15、 1). 一个定时器的最大定时时间: 65536/(2*106)=0.032768 s=32.768ms 2). 将定时器1的CLK1接2MHZ时钟,计数初值: 3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:,每5ms产生一个脉冲,例4:8253控制LED。要求:LED点亮10秒,熄灭10秒,分析: 8253的地址线与CPU高8位数据线D8D15相连,8253的各端口的地址为81H、83H、85H、87H。 OUT1输出占空比为1:1的方波, 8253端口1工作在方式3。,时钟频率为2MHz时,16位计数通道的最大定时时间为: 0 .5s65536=32.768ms
16、,级连:通道0输出400Hz脉冲(时常5000),通道1输出0.05Hz方波(时常8000)。,;通道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,例5:用8253设计一个自动计数系统(计数500向CPU提出中断申请)。,8253端口地址: F0H, F2H, F4H, F6H,,8253工作方式:计数器1工作于方式0,按BCD计
17、数,先读写低字节,后读写高字节。,;通道1初始化程序 MOV AL, 01110001B OUT 0F6H, AL MOV AL, 99H OUT 0F2H, AL MOV AL, 04H OUT 0F2H, AL,;读通道1计数值程序 MOV AL, 01000000B OUT 0F6H, AL IN AL, 0F2H MOV AH, AL IN AL, 0F2H XCHG AH, AL,当前计数值的读取 (1)利用GATE控制信号,使计数器停止计数。故干扰了计数过程,需要硬件电路配合。 (2)利用计数器锁存命令锁存现行计数值,就可从相应的计数器通道中读取计数值。,第三节 Intel8253
18、-PIT在PC/XT机中的应用,40H-43H,方式3,n =0,方式2,n =18,方式3,n =1331,本章要求 掌握8253的功能 掌握初始化编程的方法 了解6中工作方式的特点 会解决简单的问题,35,方式0 计数结束中断,GATE,OUT,CLK,0,3,1,2,4,写入4,写入方式0,WR,GATE:开关作用,设定工作方式 设定计数初值 计数值送入计 数器 计数过程 计数结束,36,方式1 可编程单稳脉冲,GATE,OUT,CLK,0,3,1,2,4,写入4,写入方式1,WR,GATE:触发作用,设定工作方式 设定计数初值硬件启动 计数值送入计 数器 计数过程 计数结束,37,方式
19、2 频率发生器(分频器),0,3,1,2,4,GATE,OUT,CLK,写入 4,写入 方式2,0,3,1,2,4,0,3,1,2,4,0,3,1,2,4,WR,GATE:开关作用,38,方式3 方波发生器,0,3,1,2,4,GATE,OUT,CLK,写入 4,写入 方式3,0,3,1,2,4,0,3,1,2,4,0,3,1,2,4,WR,GATE:开关作用 初值N为偶数:N/2脉冲数输出高, N/2脉冲数输出低 初值N为奇数:(N+1)/2脉冲数输出高, (N-1)/2脉冲数输出低,39,方式4 软件触发选通信号,GATE,OUT,CLK,0,3,1,2,4,写入 4,写入 方式4,2,3,写入 3,1,0,WR,GATE:开关作用,40,方式5 硬件触发选通信号,GATE,OUT,CLK,0,3,1,2,4,写入 4,写入 方式5,2,2,3,3,写入 3,1,1,0,WR,GATE:触发作用,重触发:装计数值,触发,
链接地址:https://www.31doc.com/p-2552571.html