《第8章8253ppt课件》由会员分享,可在线阅读,更多相关《第8章8253ppt课件(40页珍藏版)》请在金锄头文库上搜索。
1、第八章 可编程定时/计数器8253及其应用 计算机系统中,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。 也可进行计数。 8253为可编程的硬件定时/计数器。 8.1 Intel8253-PIT的工作原理的工作原理一. 8253的功能8253为可编程的硬件定时为可编程的硬件定时/计数器。计数器。1.主要功能主要功能* 具有具有3个独立的个独立的16位计数器通道;位计数器通道;* 每个计数器均可按二进制或二每个计数器均可按二进制或二十进制计数;十进制计数;* 每个计数器的计数速率高达每个计数器的计数速率高达2MHz;* 每个通道有每个通道有6种工作方式,可由程序设置
2、和改变;种工作方式,可由程序设置和改变;* 所有的输入输出都与所有的输入输出都与TTL兼容。兼容。二. 8253的内部结构*三个计数器(减法器)三个计数器(减法器) 3个独立的个独立的16位减法器,位减法器,可作定时可作定时/计数器使用;计数器使用; 计数器按二计数器按二/BCD方式减方式减法计数,从预常减到零时,法计数,从预常减到零时,OUT端输出一信号。端输出一信号。数据总线缓冲 器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7 D0RDWRA0A1CS8253内部结构内部数据总线*数据总线缓冲器数据总线缓冲
3、器(传送信息传送信息) 写控制字写控制字, 写时间常数(计数初值),写时间常数(计数初值), 读计数值读计数值*读写逻辑读写逻辑*控制字寄存器控制字寄存器(存放控制字存放控制字)数据总线缓冲 器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7 D0RDWRA0A1CS8253内部结构内部数据总线三.8253 的引线* 数据线数据线(D7D0)* 地址线地址线:选择内部寄:选择内部寄 存器;存器;片内寻址片内寻址 A1 A0= 00、01、10、11 对应:通道对应:通道0、1、2和控和控制口地址制口地址* 控制线控
4、制线:完成片选和:完成片选和 读写操作。读写操作。*三个计数通道,可单独使用三个计数通道,可单独使用CLK:输入时钟脉冲线;GATE:门控信号输入线; 分电平控制或上升沿控制两种OUT:输出引脚; 当计数到“0”时,OUT 端输出一信号。具体波形由工作出方式决定。计数初值寄存器减一计数器输出锁存器CLKGATEOUT8253计数通道结构计数通道结构8253 编程结构(每一个通道的结构)编程结构(每一个通道的结构) 8253使用:使用:外部事件计数时:外部事件计数时:CLK上的计数脉冲有外部事件产生,间上的计数脉冲有外部事件产生,间隔可以不等。隔可以不等。定时时:定时时:CLK上输入精确的时钟脉
5、冲。上输入精确的时钟脉冲。 定时时间定时时间=预置的预置的计数初值计数初值n CLK周期周期Tc 或=预置的预置的计数初值计数初值n /时钟频率时钟频率fc 8253输入信号组合的功能表8253/8254的功能较差,没有复位信号,上电后,的功能较差,没有复位信号,上电后,其工作方式是不确定的,输出信号其工作方式是不确定的,输出信号OUT的电平的电平不能确定(这在某些应用中是不允许的),不能确定(这在某些应用中是不允许的),CPU必须对其进行初始化,才能正常工作。必须对其进行初始化,才能正常工作。8253/8254在单次、可重复触发的单稳和波特率在单次、可重复触发的单稳和波特率发生器等方面功能较
6、强。但没有输入捕获和输发生器等方面功能较强。但没有输入捕获和输出比较功能,在精密时间测量和直流马达控制出比较功能,在精密时间测量和直流马达控制中很不方便。中很不方便。四. 8253-PIT的控制字00 选择计数器选择计数器001 选择计数器选择计数器110 选择计数器选择计数器211 无效无效0=二进制1=BCD计数器计数器 读读/写格式写格式工作方式工作方式数制数制D0D1D2D3D4D5D6D7 在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。 00 计数器锁存命令计数器锁存命令 01 只读只读/写计数器低字节写计数器低字节 10 只读只读
7、/写计数器高字节写计数器高字节 11 先读先读/写计数器低字节,写计数器低字节, 然后读写高字节然后读写高字节000 方式方式0001 方式方式1*10 方式方式2*11 方式方式3100 方式方式4101 方式方式5五. 8253-PIT的编程8253-PIT初始化编程的步骤:初始化编程的步骤:1. 先写入通道控制字,规定通道的工作方式;(先写入通道控制字,规定通道的工作方式;(A1A0=11)2. 再写入计数初值(由控制字的再写入计数初值(由控制字的D7D6确定通道号)。确定通道号)。若规定只写入低若规定只写入低8 8位,则写入的为计数值的低位,则写入的为计数值的低8 8位,高位,高8 8
8、位自动置位自动置0 0;若规定只写入高若规定只写入高8 8位,则写入的为计数值的高位,则写入的为计数值的高8 8位,低位,低8 8位自动置位自动置0 0;若是若是1616位计数值,则分两次写入,先写入低位计数值,则分两次写入,先写入低8 8位,再写入高位,再写入高8 8位。位。(同一计数器地址,写两次)(同一计数器地址,写两次)BCDBCD: 0000H0000H9999H9999H(1000010000,1 199999999)二进制:二进制:0000H0000HFFFFHFFFFH(65536 65536 ,1 16553565535)3 3 . 三个通道分别初始化三个通道分别初始化 ,
9、, 顺序任意。顺序任意。初值写入后,要经过一个时钟脉冲的上升和下降沿,才将计数初值写入实际初值写入后,要经过一个时钟脉冲的上升和下降沿,才将计数初值写入实际的计数器,然后在门控信号控制下,开始对的计数器,然后在门控信号控制下,开始对CLK上的脉冲进行递减计数。上的脉冲进行递减计数。六六. 8253-PIT的工作方的工作方式式* CWCW写入,写入,OUT=0OUT=0;* * 写入计数初值,通道开始计数写入计数初值,通道开始计数;* * 计数到零,计数到零,OUT=1OUT=1;* OUTOUT是是N+1N+1个个CLKCLK后变高;后变高;* * 计数器只计数一遍(单次);计数器只计数一遍(
10、单次); * * 82538253无中断控制,可用无中断控制,可用OUTOUT信号信号作为中断请求。作为中断请求。* 计数过程中,计数过程中,GATEGATE变低,变低, 使计数暂停,变高后,继续计使计数暂停,变高后,继续计数。数。* * 计数过程中若改变计数初计数过程中若改变计数初值,则按新的计数值开始新的值,则按新的计数值开始新的计数。计数。1. 方式方式0-计数结束中断方式计数结束中断方式4方式方式1(可编程单稳(可编程单稳)写入控制字,写入控制字,OUT=1OUT=1,写入时常不计数;写入时常不计数; 由由GATEGATE启动计数启动计数,下一,下一个个CLKCLK的下降沿的下降沿 O
11、UT=0OUT=0;计数到计数到0 0,OUT=1OUT=1。单稳负脉冲宽度为单稳负脉冲宽度为N*TN*TC C由由GATEGATE重新启动;重新启动;计数中,若计数中,若GATEGATE再次再次触发,则重新装入初值,触发,则重新装入初值,重新计数。使输出负脉重新计数。使输出负脉冲加宽;冲加宽;计数中,可改变计数初计数中,可改变计数初值,值,到再次触发后有效。到再次触发后有效。由硬件启动计数可当限时器来用可当限时器来用方式方式2(波特率发生器)(波特率发生器)写入控制字写入控制字OUT=1OUT=1;写入时常后启动写入时常后启动对对CLKCLK的计数;的计数;计数到计数到1 1,OUT=0OU
12、T=0;一个一个CLKCLK周期后,周期后,OUT=1OUT=1, 且自动重新计数。且自动重新计数。通道连续工作,不需重置时常;通道连续工作,不需重置时常;计数过程中,计数过程中,GATE=0GATE=0,OUT=1,OUT=1,计数暂停,计数暂停,GATEGATE变高变高后重新计数;后重新计数;计数中,改变计数初计数中,改变计数初值,到计数值,到计数值为值为0时,按新初值计数。时,按新初值计数。产生连续的负脉冲序列产生连续的负脉冲序列 FOUT=FCLK / N方式方式3 3(方波速率发生器)(方波速率发生器)* 与方式与方式2 2的区别在于:输出的区别在于:输出为周期是为周期是N N个个C
13、LKCLK脉冲的方波。脉冲的方波。* * 若计数值为偶数,每个若计数值为偶数,每个CLKCLK使计数值减使计数值减2 2,计到,计到0 0,OUTOUT改改变状态,重装计数值开始新的变状态,重装计数值开始新的计数。计数。*若计数初值为奇数,第一个脉冲先减若计数初值为奇数,第一个脉冲先减1 1,以后,每个,以后,每个CLKCLK使计数值减使计数值减2 2,计到计到0 0 时,时,OUTOUT改变状态,重装计数值后,第一个脉冲减改变状态,重装计数值后,第一个脉冲减3 3,以后,每个,以后,每个CLKCLK使计数值减使计数值减2 2,计到,计到0 0时,时,OUTOUT改变状态。改变状态。*GATE
14、GATE信号控制计数过程同信号控制计数过程同方式方式2 2;* *计数过程中写入新的计数计数过程中写入新的计数值,将在半周期结束时装入值,将在半周期结束时装入计数器。计数器。 FOUT=FCLK / N例:要求计数器例:要求计数器0工作于方式工作于方式3,输出方波的频率为,输出方波的频率为2KHz,计数计数脉冲的频率为脉冲的频率为2.5MHz,采用采用BCD计数,试写出初始化程序段。计数,试写出初始化程序段。2. 计数初值:N = 2.5MHz/2KHz=1250MOV AL,37HOUT 83H,ALMOV AL,50HOUT 80H,ALMOV AL,12HOUT 80H,AL1. 825
15、3的端口地址为:80H,81H,82H,83H。000111113. 8253的方式控制字为:4. 初始化程序段:TOUT FCLK TCLK FOUT N= =方式方式4(软件触发选通)(软件触发选通)* * 写入控制字写入控制字OUT=1OUT=1;* * 写入时常后启动写入时常后启动CLKCLK计数计数* * 计数到计数到0 0,OUT=0OUT=0;* *一个一个CLKCLK周期后,周期后,OUT=1OUT=1,计计数器停止计数。数器停止计数。* * 计数器只计数一遍(单次)计数器只计数一遍(单次)* * OUTOUT是是N+1N+1个个CLKCLK后变低;后变低;* * 计数过程中,
16、计数过程中,GATE=0GATE=0, 计数暂停,为高后重新计数;计数暂停,为高后重新计数;* * 若在计数过程中,改变若在计数过程中,改变计数值,则按新的计数值重计数值,则按新的计数值重新开始计数。新开始计数。方式方式5(硬件触发选通)(硬件触发选通)* * 写入控制字写入控制字OUT=1OUT=1;* * 写入常数后,写入常数后,由由GATEGATE的的上升沿启动计数上升沿启动计数;* * 计数到计数到0 0,OUT=0OUT=0;* * 一个一个CLKCLK周期后,周期后,OUT=1OUT=1,计数器停止计数。计数器停止计数。* * 计数器只计数一次;计数器只计数一次;* * OUTOU
17、T是是N+1N+1个个CLKCLK后变低;后变低;* * 在计数过程中出现的在计数过程中出现的GATEGATE脉冲,脉冲,将使计数器重新开始计数,对输将使计数器重新开始计数,对输出状态没有影响;出状态没有影响;* * 若在计数过程中改变计数值,若在计数过程中改变计数值,只要没有只要没有GATEGATE信号触发,不影响信号触发,不影响计数过程。有新的计数过程。有新的GATEGATE信号触发信号触发则按新的计数值开始计数。则按新的计数值开始计数。七. 8253-PIT工作方式小结1. 输出端输出端OUT的初始状态的初始状态 只有方式只有方式0是在写入控制字后输出为低,其它均为高;是在写入控制字后输
18、出为低,其它均为高;2. 计数初值的设置计数初值的设置 任一种方式,只有在写入计数值后才能开始计数。任一种方式,只有在写入计数值后才能开始计数。 方式方式0、2、3、4在写入计数值后,计数自动开始在写入计数值后,计数自动开始方式方式1、5需外部触发,才开始计数。需外部触发,才开始计数。计数初值计数初值N与输出波形的关系与输出波形的关系各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 13. 门控信号的作用-GATE输入总是在CLK输入时钟的上升沿被采样。在方式0,2,3,4中,G
19、ATE输入是电平起作用。在方式1,2,3,5中 GATE输入是上升沿起作用的。4. 在计数过程中改变计数值在计数过程中改变计数值立即有效是写入计数值后的下一个立即有效是写入计数值后的下一个CLK脉冲后,新的计数值开始起作用。脉冲后,新的计数值开始起作用。5.计数到计数到0后计数器的状态后计数器的状态计数器减到计数器减到0后并不停止,在方式后并不停止,在方式0,1,4,5,计数器减到,计数器减到0后从后从FFFF/9999继续计数。方式继续计数。方式2,3是连续计数,计数器自动装入计数值后,是连续计数,计数器自动装入计数值后,继续计数。继续计数。 例例1:某:某8253端口地址为端口地址为F8H
20、FBH,欲用通道欲用通道0以方式以方式1,按按BCD计数,计数值为计数,计数值为5080。1.确定通道控制字;确定通道控制字;2.计数值的低计数值的低8位为位为80;3.计数值的高计数值的高8位为位为50。00110011初始化程序为:MOV AL,33HOUT 0FBH,ALMOV AL,80HOUT 0F8H,ALMOV AL,50HOUT 0F8H,AL在计数过程中,在计数过程中,8253读计数器现行值的方法:读计数器现行值的方法:(将计数值存入内部锁存器)(将计数值存入内部锁存器)MOV AL,03H ;计数器0的锁存命令OUT 0FBH,AL;写入控制寄存器IN AL,0F8H ;读
21、低8位MOV CL,AL ;存入CL中IN AL,0F8H ;读高8位MOV CH,AL ;存入CH中8.2 Intel8253-PIT的应用举例的应用举例A4A3A0A5M/IOA7A6A9A8G1G2BG2ACBAY4A2A1RDWRD7D0GATE0OUT0CLK0CLK1CLK2GATE1OUT1GATE2OUT2A1A0RDWRD7D0CS1MHz方波5V2KHz方波1ms的负脉冲单脉冲8086CPU74LS138例2:用8253产生各种定时波形。例2:用8253产生各种定时波形。要求:(1)通道0输出频率为2KHz的方波;(2)通道1产生宽度为1ms的负脉冲;(3)通道2以硬件方式
22、触发,输出单脉冲时常为26。已知:8253基地址为310H,3通道所用时钟脉冲频率为1MHz。通道通道0 0工作于方式工作于方式3 3,控制端,控制端GATEGATE0 0接接+5V+5V,时间常数时间常数 N0=1MHz/2KHz=500N0=1MHz/2KHz=500;通道通道1 1工作于方式工作于方式1 1,由控制端,由控制端GATEGATE1 1的正跳变触发,的正跳变触发,OUT1OUT1的的宽度为时常,单次触发,时间常数宽度为时常,单次触发,时间常数 N1=1ms/0.001ms=1000N1=1ms/0.001ms=1000通道通道2 2工作于方式工作于方式5 5,由控制端,由控制
23、端GATEGATE2 2的正跳变触发,可连续的正跳变触发,可连续触发,时间常数触发,时间常数N2=26N2=26。TOUT FCLK TCLK FOUT N= =分析:分析:;通道0初始化程序MOV DX,316HMOV AL, 00110111BOUT DX,ALMOV DX,310H MOV AL,00HOUT DX,ALMOV AL,05HOUT DX,AL;通道1初始化程序MOV DX,316HMOV AL, 01110011BOUT DX,ALMOV DX,312H MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL;通道2初始化程序MOV DX,316HM
24、OV AL, 10011011BOUT DX,ALMOV DX,314H MOV AL,26HOUT DX,AL例3:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。1). 一个定时器的最大定时时间: 65536/(2*106)=0.032768 s=32.768ms2). 将定时器1的CLK1接2MHZ时钟,计数初值:3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:每每5ms产生产生一个脉冲一个脉冲例4:8253控制LED。要求:LED点亮10秒,熄灭10秒分析分析: 8253的地址
25、线与CPU高8位数据线D8D15相连,8253的各端口的地址为81H、83H、85H、87H。OUT1输出占空比为1:1的方波, 8253端口1工作在方式3。时钟频率为2MHz时,16位计数通道的最大定时时间为:0 .5s65536=32.768ms级连:通道0输出400Hz脉冲(时常5000),通道1输出0.05Hz方波(时常8000)。D7-D0WR RD A1 A0 CSCLK0OUT0CLK1OUT1译码WRRDA2A1M/ IOA0-A7+5VD8-D15GATE0GATE12MHz;通道0初始化程序MOV AL, 00110101BOUT 87,ALMOV AL,00HOUT 81
26、,ALMOV AL,50HOUT 81,AL;通道1初始化程序MOV AL, 01110111BOUT 87,ALMOV AL,00HOUT 83,ALMOV AL,80HOUT 83,AL例5:用8253设计一个自动计数系统(计数500向CPU提出中断申请)。8253端口地址: F0H, F2H, F4H, F6H,8253工作方式:计数器1工作于方式0,按BCD计数,先读写低字节,后读写高字节。D7-D0OUT0 WR RD A1 A0 CSGATE1CLK1译码INTRWRRDA2A1M/IOAB+5V+5V+5V;通道1初始化程序MOV AL, 01110001BOUT 0F6H, A
27、LMOV AL, 99HOUT 0F2H, ALMOV AL, 04HOUT 0F2H, AL;读通道1计数值程序MOV AL, 01000000BOUT 0F6H, ALIN AL, 0F2HMOV AH, ALIN AL, 0F2HXCHG AH, AL当前计数值的读取 (1)利用GATE控制信号,使计数器停止计数。故干扰了计数过程,需要硬件电路配合。 (2)利用计数器锁存命令锁存现行计数值,就可从相应的计数器通道中读取计数值。第三节 Intel8253-PIT在PC/XT机中的应用GATE0GATE1GATE2CLK0CLK1CLK2OUT2A1A0RDWRD7D0CSIRQ018.2H
28、zT/C2 OUT896HzA1A0IORIOWT/C CSD7D0U21D QC QOUT1OUT05VU73D S QC CLRDRQ066.2878KHzPCLK2.38636MHzRESETDRVPB0DACK0BRD40H-43H方式3,n =0方式2,n =18方式3,n =1331本章要求本章要求掌握掌握8253的功能的功能掌握初始化编程的方法掌握初始化编程的方法了解了解6中工作方式的特点中工作方式的特点会解决简单的问题会解决简单的问题方式0 计数结束中断GATEOUTCLK 03124写入写入4写入方式写入方式0WRGATE:开关作用开关作用设定工作方式设定工作方式设定计数初值
29、设定计数初值计数值送入计计数值送入计 数器数器计数过程计数过程计数结束计数结束35方式1 可编程单稳脉冲GATEOUTCLK 03124写入写入4写入方式写入方式1WRGATE:触发作用触发作用设定工作方式设定工作方式设定计数初值设定计数初值硬件启动硬件启动计数值送入计计数值送入计 数器数器计数过程计数过程计数结束计数结束36方式2 频率发生器(分频器)03124GATEOUTCLK写写入入4写入写入方式方式2031240312403124WRGATE:开关作用开关作用37方式3 方波发生器03124GATEOUTCLK写入写入4写入写入方式方式3031240312403124WRGATE:开关作用开关作用初值初值N为为偶数偶数:N/2脉冲数输出高脉冲数输出高, N/2脉冲数输出低脉冲数输出低初值初值N为为奇数奇数:(N+1)/2脉冲数输出高,脉冲数输出高, (N-1)/2脉冲数输出低脉冲数输出低38方式4 软件触发选通信号GATEOUTCLK03124写入写入4写入写入方式方式423写入写入31 0WRGATE:开关作用开关作用39方式5 硬件触发选通信号GATEOUTCLK03124写入写入4写入写入方式方式52233写入写入311 0WRGATE:触发作用触发作用重重触发:触发:装计数值装计数值触发触发40