1 / 34

第 7 章 可编程定时器 / 计数器 8253-5 ( PIT )

第 7 章 可编程定时器 / 计数器 8253-5 ( PIT ). 又叫“可编程间隔定时器”,可实现延时控制、定时和计数。 计数和定时信号的产生可采用三种方法: 1. 、硬件的计数器 / 定时器,不占用 CPU 的时间,可多任务并行工作。 1 )固定的数字逻辑电路实现:通用性和灵活性差; 2 )可编程的:灵活性好,较通用。 2 、软件实现:通用性和灵活性好。. 7.1 可编程定时器 / 计数器的工作原理. 如图 7-1 , 控制寄存器(可写) 计数初值寄存器 CR (可写) 计数执行单元 CE 计数输出锁存器 OL (可读) 状态寄存器(可读)

kailey
Download Presentation

第 7 章 可编程定时器 / 计数器 8253-5 ( PIT )

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章 可编程定时器/计数器8253-5(PIT) • 又叫“可编程间隔定时器”,可实现延时控制、定时和计数。 • 计数和定时信号的产生可采用三种方法: • 1.、硬件的计数器/定时器,不占用CPU的时间,可多任务并行工作。 • 1)固定的数字逻辑电路实现:通用性和灵活性差; • 2)可编程的:灵活性好,较通用。 • 2、软件实现:通用性和灵活性好。

  2. 7.1 可编程定时器/计数器的工作原理 • 如图7-1, • 控制寄存器(可写) • 计数初值寄存器CR(可写) • 计数执行单元CE • 计数输出锁存器OL(可读) • 状态寄存器(可读) • 计数器:由设置的计数初值,在门控脉冲GATE控制下,对CLK脉冲开始减1计数,当减到0,输出一个信号OUT,并置状态寄存器,供查询用。此信号可启动I/O操作或作为中断请求。

  3. 定时器:由设置的计数初值,在门控脉冲GATE控制下,对CLK脉冲开始减1计数,当减到0,输出一个脉冲,再从初值减1计数,连续输出一系列定时间隔的脉冲,间隔Tout=Tclk*计数初值N (或Fout=Fclk/N)。 • 通过控制寄存器可设置多种工作方式。

  4. 7.2 8253-5的结构和功能 • 计数速率可达2.6MHz,可编程设置6种工作方式. • 适用于: • 1、方波频率发生器 • 2、分频器 • 3、实时时钟 • 4、事件计数器 • 5、程控单脉冲发生器

  5. 结构 • 结构框图及引脚排列如图7-2, • 1、与CPU的连接信号: • D7~D0:双向数据线。 • RD-、WR-:读、写信号 • CS-:片选信号,由A2~A15译码产生 • A0、A1:片内寄存器寻址,选择3个计数器和控制寄存器。 • 2、结构 • 1)3个计数器:结构相同、工作独立,工作方式由控制字设定。

  6. 包括:16位的计数初值寄存器CR(可写)、计数执行单元CE(减法计数寄存器)和计数输出锁存器OL(可读);8位的控制寄存器。包括:16位的计数初值寄存器CR(可写)、计数执行单元CE(减法计数寄存器)和计数输出锁存器OL(可读);8位的控制寄存器。 • 有三条信号线: • 计数输入CLK:输入定时基准和计数脉冲; • 输出信号OUT:指示计数完成,输出脉冲波形; • 门控输入GATE:允许/禁止计数、启动/停止计数。起输出信号的同步作用(参见表7-6) • 2)数据总线缓冲器:写控制字、装入计数初值和读取计数值。

  7. 3)读写逻辑:有A1、A0、CS-、RD-、WR-组合决定功能,见表7-1。3)读写逻辑:有A1、A0、CS-、RD-、WR-组合决定功能,见表7-1。 • 4)控制字(工作方式)寄存器:由A1A0=11选中。规定第一次写入为控制字,此后写入为命令。 • 3、控制字寄存器的格式:见表7-2~7-5

  8. 7-2~7-5

  9. 7.3 8253-5的工作方式 • 一、规定: • 1)控制字写入时,立即复位; • 2)写计数初值后,到下一个时钟下降沿才开始计数; • 3)对于给定的方式,对GATE的触发方式有具体的规定: • 电平触发:在时钟脉冲上升沿对门控信号电平进行采样,GATE至少保持一个Tclk宽度;

  10. 上升沿触发:门控脉冲上升沿使边沿触发器置位,在下一个时钟脉冲上升沿被采样,GATE可很窄,可正脉冲也可负脉冲。上升沿触发:门控脉冲上升沿使边沿触发器置位,在下一个时钟脉冲上升沿被采样,GATE可很窄,可正脉冲也可负脉冲。 • 4)OUT波形都是在CLK的下降沿产生电平的变化。 • 二、六种方式 设计数初值N=4,如图... • 1、方式0——计数结束中断 • GATE=0,计数器停止计数,GATE=1,重新开始计数,直到计数结束,OUT为高电平,再次启动要重新输入计数值,GATE不影响OUT电平。

  11. 2、方式1——硬件可重触发单稳态方式 • 基本和方式0相似,但输出单稳态是用GATE上升沿重触发的,OUT低电平宽度等于计数时间(NTclk)。 • 3、方式2——速率发生器(分频方式) • 输出的负脉冲宽度等于Tclk(简写为T),频率是CLK的N分之一,GATE为低电平时停止计数。 • 4、方式3——方波方式 • 输出的负脉冲宽度等于NT/2,频率是CLK的N分之一,GATE为低电平时停止计数。

  12. 若输入计数初值时偶数,则OUT在计数前一半为高,后一半为低电平;若输入计数初值时偶数,则OUT在计数前一半为高,后一半为低电平; • 若输入计数初值时奇数,则OUT在(N+1)T/2前为高,后(N-1)T/2为低电平。 • 5、方式4——软件触发选通方式 • 基本同方式0,但计数结束输出一负脉冲,宽度为T,每次靠软件设置计数初值才能计数,GATE为低电平时停止计数,但OUT不变。 • 6、方式5——硬件触发选通方式 • 基本同方式1,但计数结束输出一负脉冲,宽度为T,用软件设置一次计数初值后,每次要靠门控脉冲上升沿选通才能计数。

  13. 7.4 8253-5的初始化 • 一、写入方式控制字 • 用OUT指令,地址:CS-=0,A1A0=11 • 二、写入计数初值 • 按控制字中的RL1RL0的规定写,可8位或16位,若为16位,要分两条输出指令;且要满足BCD位的规定。 • 用OUT指令,地址:CS-=0, • A1A0=00 计数器0 • 01 计数器1 • 10 计数器2

  14. 三、读计数值 有两种方法: • 1、直接读计数器端口 • 先用GATE无效或阻断时钟输入,以保证稳定读出。 • 用IN指令,地址:同二。 • 2、锁存计数器的当前计数值 • 1)锁存命令:RL1RL0=00,用OUT指令,地址:A1A0=11。 • 2)读出,用IN指令,同二。 • 注意:必须读完控制字中RL1RL0规定的字节数,才能保证下次的正确读写。

  15. 7.5 8253-5的应用举例 • 例:8253在IBM-PC机中的应用 • 在系统中作定时信号用。 • 1、硬件连接 逻辑图见图7-5 • D7~D0、RD-、WR-,CS-接Y2,A1A0片内寄存器寻址,端口地址:040H~043H • 3个计数器的CLK的频率为1.193186MHz,是PCLK经二分频后产生的. • GATE0和GATE1=1(常启状态),GATE2由8255的B口(PB0允许发声)控制开启。 • OUT0——8259的日时钟中断IRQ0;

  16. 7-5

  17. OUT1——D触发器的时钟,二分频后锁存器的输出作8237的DREQ0;OUT1——D触发器的时钟,二分频后锁存器的输出作8237的DREQ0; • OUT2——8255的PC5(代表音调),同时经75477到8255的PC4(代表发声数据),供CPU检测用。 • 2、各计数器的功能: • (1)计数器0:产生系统日时钟信号,工作于方式3,计数初值为0,控制字为36H,OUT0的输出频率为1193181.6/65536=18.2Hz的方波脉冲序列,即每隔1/18.2=55ms产生一次中断请求,计时并时钟显示.

  18. (2)计数器1:产生动态存储器刷新请求,工作于方式2,计数初值为18(12H),控制字为54H,(2)计数器1:产生动态存储器刷新请求,工作于方式2,计数初值为18(12H),控制字为54H, • OUT1的输出频率=1193181.6/18=66.2878KHz的负脉冲序列, 即每隔1/66287.8=15.08us向8237A的DREQ0请求,进行一行的刷新操作. • (3)计数器2:为扬声器提供约900Hz的方波信号,工作于方式3,计数初值为0533H(1331),控制字为B6H,OUT2输出频率为1193181.6/1331=894Hz的方波信号. • 3、编程步骤 • 1)初始化:写入方式控制字; • 写入计数初值; • 2)控制程序

  19. (1)对计数器0的初始化程序 • MOV AL,36H • OUT 43H,AL • MOV AL,0 • OUT 40H,AL • OUT 40H,AL • (2)对计数器1的初始化程序 • MOV AL,54H • OUT 43H,AL • MOV AL,12H(或18D) • OUT 41H,AL

  20. (3)对计数器2的初始化程序 • MOV AL,B6H ;若要1KHz的方波信号,计数 • OUT 43H,AL ;初值为多少?如何编程? • MOV AX,0533H • OUT 42H,AL • MOV AL,AH • OUT 42H,AL • (4)控制程序 使PB1PB0=11 • IN AL,61H • MOV AH,AL • OR AL,03H • OUT 61H,AL

  21. 例:三个计数通道组合应用 • 应用电路如图7-6所示。设置如下: • 通道0:方式2,计数初值为1000D • 通道1:方式1,计数初值为500D • 通道2:方式3,计数初值为2000D • 外接时钟CLK为2.5MHz • 画出CLK0~2,GATE0~2及OUT0~2波形,计算OUT的重复周期和时间,并写出初始化程序。

  22. 7-6

  23. 解题分析 • (1)fCLK0=fCLK2=fCLK= 2.5MHz • T=1/f=400ns • 通道2:方式3,计数初值为2000,输出方波。TOUT2=2000T=800us • 通道1:方式1,计数初值为500,输出单脉冲。因 TCLK1= TOUT2 • TOUT1=500 TCLK1 =400000us • 通道0:方式2,计数初值为1000,输出一串负脉冲。TOUT2=1000T=400us,但持续时间t为TOUT1 =400000us=400ms • OUT为OUT0的反相波形,如图7-7 • TOUT =400ms,tOUT=400us

  24. 7-7

  25. (2)初始化程序:设端口地址为80H~83H • MOV AL,00110101B;通道0,方式2 • OUT 83H,AL • MOV AL,00H ;分两次送 • OUT 80H,AL • MOV AL,10H • OUT 80H,AL • MOV AL,01110011B;通道1,方式1 • OUT 83H,AL • MOV AL,00H ;分两次送 • OUT 81H,AL • MOV AL,05H • OUT 81H,AL

  26. MOV AL,10110111B;通道2,方式3 • OUT 83H,AL • MOV AL,00H • OUT 82H,AL • MOV AL,20H • OUT 82H,AL • …… • (3)讨论 • 若为二进制计数,如何改?

  27. 例:8253在实时控制系统中的应用 • 如图7-8,作采样周期发生器。计数器输出作定时中断信号IRQ2,再连到8259的IR2上。 • 1、采样周期发生器的设计原理 • 采样周期一般在0.5s~几十s。 • 而对一个计数器,用1.19MHZ的CLK,N取最大65536时,OUT周期也只有约55ms。 • 故要多个计数器串联使用。前级作分频器用。

  28. 7-8

  29. 1、硬件连接 • 如图7-8所示。fCLK0=2*fPCLK • IBM-PC机的CPU是8088。与CPU的连接: • 数据线:DB7~DB0——D7~D0 • 地址线:AB0——A0,AB1——A1 • AB9~AB2=10001100——CS • 端口地址为230H~233H • 控制线:IOR——RD • IOW——WR • 8253连接:GATE0、1——+5V,计数器0输出OUT0作CLK1,PCLK二分频后输入CLK0,OUT1——IRQ2

  30. 2、软件编程 • 分析:中断类型码:0AH • 中断服务程序的程序名为RTIME • 中断向量地址=0A*4=0028H • 计数器0:工作方式2,N=0(二进制低字节=256) • 计数器1:工作方式3,N=TIME(二进制16位) • (1)8253初始化程序 • MOV DX,233H ;初始化计数器0 • MOV AL,00010100B • OUT DX,AL • MOV DX,230H • MOV AL,0 • OUT DX,AL

  31. MOV DX,233H;初始化计数器1 • MOV AL,01110110B • OUT DX,AL • MOV DX,231H • MOV AL,BYTE PTR TIME;8位分别送 • MOV DX,AL • MOV AL,BYTE PTR TIME+1 • OUT DX,AL • (2)中断服务程序首地址送中断向量表 • MOV DI,28H • CLD • MOV AX,OFFSET RTIME

  32. STOSW • MOV AX,SEG RTIME • STOSW • …...

  33. 8253定时/计数器实验 • 编程将8253定时器0设置为方式3(方波),定时器1设置为方式2(分频),定时器0输出的脉冲作为定时器1的时钟输入。定时器2设置为方式2(分频),用示波器观察各对应引脚之间的波形关系。

More Related