第9章 8253定时计数器
合集下载
第九章可编程计数器定时器8253及其应用(精)

一、计数/定时的工作原理
CLK是计数输入信号,计数器对CLK端出现的脉冲个数 进行计数 •CLK端可以输入外部事件 •CLK端可以接入固定频率的时钟信号,从而实现 计时 OUT信号在计数结束时发生变化 •可将OUT作为外部设备的控制信号 •可将OUT作为向CPU申请中断的信号
CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令
边界
写入初值
三、8253的编程命令
•初始化
1)写入控制字 2)按控制字要求写入计数初值
计数器初值计算:N=fCLK/fOUT
例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制 寄存器端口地址73H。计数器0,工作模式2,CR/OL仅使用低8 位,初值为100,计数值使用二进制 MOV AL, 14H OUT 73H, AL MOV AL, 64H OUT 70H, AL
例如输入脉冲频率为2MHz,那么计数2106
计时1秒
因此,使用同一个芯片,既能计数,又能计时——计时器/计数器
一、计数/定时的工作原理
组成:
控制寄存器——决定工作模式 状态寄存器——反应工作状态 初值寄存器——计数的初值 计数输出寄存器——CPU从中 读当前计数值 计数器——执行计数操作, CPU不能访问
定时和计数器
对不同信号的计数 定时器
对时钟信号进行计数 周期性 对外部脉冲进行计数 周期性、非周期性
计数器
8253计数/定时器
可编程(工作方式/计数值) 三个独立的计数器通道 对初值进行减一计数 二进制/BCD计数初值 计数对象的最高频率为2MHz
微机第9章8253

0 0----选计数器0
0 1----选计数器1 1 0----选计数器2 1 1----无意义
写入控制口,地址A1A0=11
2、计数初值的写入
若规定只写低8位,则写入的为计数值的低8位, 高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位, 低8位自动置0; 若是16位计数值,则分两次写入,先写低8位, 再写入高8位。
计数值写入计数器各自的 计数通道(端口地址)
注: ① 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个 正脉冲后才能被真正装入指定通道(若在此CLK下降 沿之前读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次 在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计 数。
④ 当GATE变为低电平时计数 停止,再变为高电平时计数继 续进行。 ⑤若计数过程中重新送入初值, 则按新值重新计数。
(2)方式1——可重复触发单稳触发器
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 方式1时序图 CW N=3
③计数过程中,再次给通道写入时间 ①写入CW后OUT变为高电平, GATE 常数,不影响现行操作过程,GATE再 上升沿触发后,OUT变为低并开始计数, 次触发后才按新的时间常数操作。 归零时OUT变为高电平。 ④计数过程中,GATE触发沿提前到来, ②GATE再来一次上升沿使OUT为低, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先 计数器以初值重新计数。 设定的计数值加宽。 可重复触发——当计数归零后,不用再次送计数值,只要给它触发脉冲,即 可产生一个同样宽度的单稳脉冲输出。
《微机原理与接口技术》第九章8253

二、8253的内部结构
数据总线 缓冲器 读/写控 制电路 计数通道
通道控制 寄存器
三、 8253的管脚分配
控制线
数据线 通道选择
通道管脚
四、 8253的编程
8253只有一个控制字,8253的一个方式 控制字只决定一个计数通道的工作模式。 8253 的控制字格式如图所示。共分为 4 部 分,通道选择、计数器读 / 写方式、工作 方式和计数码的选择。
第9章 可编程接口芯片
可编程接口概术 可编程定时/计数器接口芯片8253
可编程接口概术
一个简单的具有输入功能和输出功能的 可编程接口电路如下图,它包括一个输入接口, 其组成主要是八位的三态门;一个输出接口, 其组成主要是八位的锁存器;另外还有八位的 多路转换开关及控制这个开关的寄存器FF。
9. 1 可编程定时/计数器接口芯片8253 一、功能
定时和脉冲信号的处理与接口是完全有别于 并行信号的,其特点是信号形式简单但需要连 续检测,下面介绍的INTEL8253可编程定时/ 计数器就是可以实现所要求这方面功能。8253 内部有3个独立的16位定时/计数器通道。计 数器可按照二进制或十进制计数,计数和定时 范围可在1—65535之间改变,每个通道有6种 工作方式,计数频率可高达2MHz以上。
4、方式3——方波发生器 方式2虽然可以作分频电路,但其输出 是窄脉冲,如果是方波,就只有选方式3
5、方式4——软件触发方式 方式4在工作过程中有以下特点:
a、 门控信号GATE为高电平,计数器开始减 1计数,OUT维持高电平; b、 当计数器减到0,输出端OUT变低,再经 过一个 CLK 输入时钟周期, OUT 输出又变 高。
解:1、电路。 需要两个通道,一个作为计数,选用通道0。另一 个产生1KHz信号,选用通道1。工作原理如下,传感 器电路把物理事件转换为脉冲信号输入到通道0计数, 当记录10000个事件后,通道0计数器溢出,GATE端输 出高电平,这时通道1开始工作,产生1KHz信号推动喇 叭发音。
第九章_计数(定时)器8253

左旭坤(zxk78@)
1.方式0 (计数结束产生中断)
(1)输出信号OUT的波形: 初始状态为高电平;写入控制字后变为低电平;计数初值减为0时变为高电平 (2)启动计数的条件: 写入计数初值后自动开始 (3)门控信号GATE的功能: GATE为低电平时暂停计数(OUT保持输出低电平);GATE变回高电平时继 续计数 (4)计数初值的设置(更改): 如果在计数过程中修改计数值,则写入新计数值的第一个字节时使原先的计 左旭坤(zxk78@) 数停止。写入第二个字节后,开始以新写入的计OV OUT
AL.3BH 43H.AL ;写计数器0控制字
MOV
OUT MOV OUT MOV
AL.50H
40H.AL AL.28H 40H.AL AL.56H
;写计数器0初值
;写计数器1控制字
OUT
MOV OUT
43H,AL
AL.64H 41H.AL
左旭坤(zxk78@)
;写计数器1初值
【例9-2】 按乐谱编写乐曲程序
功能:让计算机按乐谱演奏
左旭坤(zxk78@)
计算机发声原理
8255的PB口地址: 61H
8253的控制口地址: 43H
8253的定时器2地址: 42H
原理:
8255的PB口工作在方式0输出;8253的定时器2工作在方式3 由8255的PB0和PB1控制定时器2启动和扬声器启动 即:PB0=1:定时器2启动; PB1=1:扬声器启动
课后思考: 按照以上四点, 对各组的两种工作方式 进行比较。
左旭坤(zxk78@)
9.3 8253的控制字
8253在使用前要写入控制字,用来规定其工作方式。 3个通道中各有一个控制字寄存器,它们使用同一个口地 址,靠控制字中的D7,D6 2位的编码加以区别。 控制字格式如下 :
第9章_3 可编程定时计数器8253

OUT
2
1)写入计数值开始计数。周期性计数。 2)N=偶数,正负半周=N/2,N=奇数,正半周=(N+1)/2,负半周=(N-1)/2。 3)计数过程中GATE=0,暂停计数,GATE=1重新计数。 4)计数过程中改变计数值,下一周期按新的计数值计数
9.4 可编程的定时/计数器8253/8254 方式4——软件触发选通
9.4 可编程的定时/计数器8253/8254 8253的引线及内部结构:
D0~D7
CLK0
数据 总线 缓冲
计数器 #0 (CNT0) 计数器 #1 (CNT0) 计数器 #2 (CNT0)Biblioteka GATE0OUT0 CLK1
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND
9.4 可编程的定时/计数器8253/8254 方式5——硬件触发选通
WR GATE 启动计数 CLK CW=16 N=3
OUT
3 GATE OUT 3 2 3
3
2
1
0
0
GATE重复 启动计数
3
2
1
0
GATE
WR 计数中改 变计数值 OUT
CW=16
N=4
N=2 4 3 2 1 0 2 1
GATE
控制字 寄存器
•三个16位计数口: #0:CLK0、OUT0、GATE0 #1:CLK1、OUT1、GATE1 #2:CLK2、OUT2、GATE2
9.4 可编程的定时/计数器8253/8254 8253的口地址及操作:
•片内地址:A0,A1 •片选:CS •数据总线:D0~D7 •读/写信号: RD
D0 ;初始化通道0 D7 ;计数值100
定时计数器8253课件

3个计数通道 通道控制寄存器 数据总线缓冲器 读/写控制电路
20010.12
定时计数器8253
3
计数通道
• 通道0、通道1和通道2
• CLK:计数器的脉冲输入端,GATE: 计数器的门控信 号,OUT: 计数器的输出信号,一般与计数溢出有关。
• 工作原理:
• 8253计数器工作在减1状态,每输入一个计数脉冲,计数 器值减1,当计数器
• 分为4部分,通道选择、计数器读/写方式、工作方式和计
数码的选择。
计数器选择(SC1、SC0)
计数器读/写方式(RLl、RL0)
20010.12
定时计数器8253
9
• 计数器的锁存操作
• 8253一旦初始化后,就不需要CPU参与而自动计数。为了 读出计数值时不干扰实际计数过程,同时读出的值又是稳 定的,就要求对通道计数器中的计数值进行锁存。
读/写控制电路
❖ 片选信号 CS ❖ A1A0的组合 :选择三个通道、一个控制寄
存器,共4个端口 ❖ 读信号 R D 和写信号W R 由CPU提供,低电平
有效。
20010.12
定时计数器8253
7
8253的管脚分配
• 通道管脚
• CLKn:通道n的脉冲输入管脚.外部事件
或定时脉冲由这三个管脚输入;
OUT 8253控制口,AL
MOV AL,40H
;置8253通道0时间常数,
OUT 通道0端口,AL ; 第一次写初始计数值的低8位,
MOV AL,38H
; 第二次写高8位。3840H=14400秒=4小时
OUT 通道0端口,AL
……
中断程序中有关程序段如下:
……
MOV AL,00000001B ;8255置位/复位控制字,使PC0=1
20010.12
定时计数器8253
3
计数通道
• 通道0、通道1和通道2
• CLK:计数器的脉冲输入端,GATE: 计数器的门控信 号,OUT: 计数器的输出信号,一般与计数溢出有关。
• 工作原理:
• 8253计数器工作在减1状态,每输入一个计数脉冲,计数 器值减1,当计数器
• 分为4部分,通道选择、计数器读/写方式、工作方式和计
数码的选择。
计数器选择(SC1、SC0)
计数器读/写方式(RLl、RL0)
20010.12
定时计数器8253
9
• 计数器的锁存操作
• 8253一旦初始化后,就不需要CPU参与而自动计数。为了 读出计数值时不干扰实际计数过程,同时读出的值又是稳 定的,就要求对通道计数器中的计数值进行锁存。
读/写控制电路
❖ 片选信号 CS ❖ A1A0的组合 :选择三个通道、一个控制寄
存器,共4个端口 ❖ 读信号 R D 和写信号W R 由CPU提供,低电平
有效。
20010.12
定时计数器8253
7
8253的管脚分配
• 通道管脚
• CLKn:通道n的脉冲输入管脚.外部事件
或定时脉冲由这三个管脚输入;
OUT 8253控制口,AL
MOV AL,40H
;置8253通道0时间常数,
OUT 通道0端口,AL ; 第一次写初始计数值的低8位,
MOV AL,38H
; 第二次写高8位。3840H=14400秒=4小时
OUT 通道0端口,AL
……
中断程序中有关程序段如下:
……
MOV AL,00000001B ;8255置位/复位控制字,使PC0=1
微机原理与接口技术9章8253

定时器/计数器
• 主要内容
– 定时与计数 – 可编程定时器/计数器接口芯片8253
定时与计数
• 定时技术在微机系统中必不可少
– 微机的工作在标准时钟控制下完成 – 为外设提供实时时钟 – 向外设定时发出控制信号
• 定时中断、定时检测、定时扫描、定时显示……
– 对外部事件进行计数
定时与计数
• 定时与计数
可编程定时/计数芯片8253
• 8253的工作方式
– 方式4——软件触发的选通信号发生器
• 波形图
可编程定时/计数芯片8253
• 8253的工作方式
– 方式4——软件触发的选通信号发生器
• 工作特点
– 计数由软件启动,每次写入计数初值只启动一次 计数 – 当计数值为N时,则间隔N+1个CLK脉冲输出一 个负脉冲(计数一次有效) – 在计数过程中,可由GATE信号控制暂停。当 GATE=0时,暂停计数;当GATE=1时,继续计 数 – 在计数过程中写入新的计数初值,则按新的初值 重新开始计数
可编程定时/计数芯片8253
• 8253的工作方式
– 方式5——硬件触发的选通信号发生器
• 波形图
可编程定时/计数芯片8253
• 8253的工作方式
– 方式5——硬件触发的选通信号发生器
• 工作特点
– 计数由GATE上升沿启动,只要GATE端给触 发脉冲,则会装入计数值,并开始计数 – 在这种方式下,若设置的计数值是N,则在 GATE脉冲后,经过(N+1)个CLK,OUT端 才输出一个负脉冲 – 在计数过程中修改计数初值,不会影响本次计 数,只有GATE端再次触发时,才按新的计数 值计数
微机原理与接口技术
第九章 8253
第9章计数器定时器8253

命令
编程原则: ① 设置初值前必须先写控制字; ② 初值设置要符合控制字中的格式规定; ③ 要读取计数器的当前值和状态字,必须用
控制字先锁定,才能读取。
9.4 8253/8254的编程命令
编程命令有两类:
① 读出命令; 读计数器计数值 读状态寄存器值(只对8254)
MOV BH, AL
;BX中为计数器0的当前计数值
思考题
• 1 设8253端口地址为200H~203H,使用计数器1, 工作于方式3(方波发生器),二进制计数,计数 初值为3000H,请编写初始化程序。
;方法1,16位计数,先写低8位,后写高8位。根据题目写出 控制字为01110110B(76H)。 MOV DX,203H ;8253控制寄存器 MOV AL,76H ;二进制计数、方式3、先写低8 位、后 写高8位、计数器1 OUT DX,AL ;控制字写入控制字寄存器 MOV DX,201H ;计数器1 MOV AL,00H ;计数初值低8位 OUT DX, AL ;计数初值低8位写入计数器1 MOV AL,30H ;计数初值高8位 OUT DX, AL ;计数初值高8位写入计数器1
9.5 8253/8254的工作模式
有6种工作模式,都遵守的基本规则:
① 控制字写入时,进入初始状态; ② 初值写入后,要经过上升沿和一个下降沿,计数执行部
件才开始计数; ③ 在CLK的上升沿,GATE被采样,对于一给定的工作模
式,GATE的触发方式有具体规定; ④ 在CLK下降沿,计数器作减1计数;
器将按新的初值重新计数。 • OUT端输出是一个约(N+1)TCLK宽度的负脉冲。
(2) 模式1—— 可编程的单稳态触发器
性质:
• 写入控制字,OUT端为高电平,计数初值装入该 计数器后,在GATE信号的上升沿后的下一个CLK 脉冲的下降沿开始计数,OUT变为低电平。在整 个计数过程中,OUT保持低电平,当计数器减为0 时,OUT变为高电平,输出一个单脉冲,若GATE 信号再由低变高,可再产生一个单脉冲,相当一 个单稳态。
编程原则: ① 设置初值前必须先写控制字; ② 初值设置要符合控制字中的格式规定; ③ 要读取计数器的当前值和状态字,必须用
控制字先锁定,才能读取。
9.4 8253/8254的编程命令
编程命令有两类:
① 读出命令; 读计数器计数值 读状态寄存器值(只对8254)
MOV BH, AL
;BX中为计数器0的当前计数值
思考题
• 1 设8253端口地址为200H~203H,使用计数器1, 工作于方式3(方波发生器),二进制计数,计数 初值为3000H,请编写初始化程序。
;方法1,16位计数,先写低8位,后写高8位。根据题目写出 控制字为01110110B(76H)。 MOV DX,203H ;8253控制寄存器 MOV AL,76H ;二进制计数、方式3、先写低8 位、后 写高8位、计数器1 OUT DX,AL ;控制字写入控制字寄存器 MOV DX,201H ;计数器1 MOV AL,00H ;计数初值低8位 OUT DX, AL ;计数初值低8位写入计数器1 MOV AL,30H ;计数初值高8位 OUT DX, AL ;计数初值高8位写入计数器1
9.5 8253/8254的工作模式
有6种工作模式,都遵守的基本规则:
① 控制字写入时,进入初始状态; ② 初值写入后,要经过上升沿和一个下降沿,计数执行部
件才开始计数; ③ 在CLK的上升沿,GATE被采样,对于一给定的工作模
式,GATE的触发方式有具体规定; ④ 在CLK下降沿,计数器作减1计数;
器将按新的初值重新计数。 • OUT端输出是一个约(N+1)TCLK宽度的负脉冲。
(2) 模式1—— 可编程的单稳态触发器
性质:
• 写入控制字,OUT端为高电平,计数初值装入该 计数器后,在GATE信号的上升沿后的下一个CLK 脉冲的下降沿开始计数,OUT变为低电平。在整 个计数过程中,OUT保持低电平,当计数器减为0 时,OUT变为高电平,输出一个单脉冲,若GATE 信号再由低变高,可再产生一个单脉冲,相当一 个单稳态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章(1) 8253计数器/定时器
8253/8254的编程结构; 8253/8254的两类控制字; 8253/8254必须遵守的编程原则; 8253/8254的两类编程命令; 8253/8254的6种工作模式的特点;
关于定时信号
• 定时信号:
– 软件方法获得 – 硬件方法获得
9.7.1 多功能接口芯片82380的组成 和信号
• 82380的基本功能结构
9.7.1 多功能接口芯片82380的组成 和信号
• 对外连接信号:
– DREQ7~DREQ0 – EDACK2~EDACK0 – EOP – HOLD – HLDA
9.7.1 多功能接口芯片82380的组成 和信号
图9.6
模式3的时序图
9.5 8253/8254的工作模式
• 模式4——软件触发的选通 信号发生器
图9.7 模式4的时序图
9.5 8253/8254的工作模式
• 模式5——硬件触发 的选通信号发生器
图9.8 模式5的时序图
• 计数初值N与输出波形的关系
(2) GATE门控信号的作用
一般情况下,GATE信号为低电平时禁止计数,为高电平时允 许计数,方式1和方式5则需要有由低变高的上升沿触发脉冲来启 动计数。GATE信号对各种工作方式的影响如表所示。
;将计数器1设置为模式1
;对计数器1设置初始值M(BCD码) ;将计数器2设置为模式3 ;对计数器2设置初始值N(二进制)
9.7 32位微机系统中的多功能接口芯片 82380
• 高集成度和多功能 • 兼容性好
9.7.1 多功能接口芯片82380的组成 和信号
• 内部含有:
– 1个8通道的32位DMA控制器; – 20级的可编程中断控制器; – 4个16位计数器/定时器; – 动态RAM刷新电路; – 系统复位逻辑电路; – 插入等待状态的控制电路; – 内部总线仲裁电路。
• 状态寄存器的格式如下:
9.4 8253/8254的编程命令
• 编程有3条原则必须遵守:
– 对计数器设置初始值前必须先写控制字。 – 初始值设置时,要符合控制字中的格式规定, 即只写低位字节还是只写高位字节,或高低位 字节都写,控制字中一旦规定,具体初始值设 定时就要一致。
– 要读取计数器的当前值和状态字,必须用控制 字先锁定,才能读取。
9.1 可编程计数器/定时器的工作原理
• 计数器/定时器:
– 在多任务的分时系统中作为中断信号实现程序 的切换。 – 可往I/O设备输出精确的定时信号。 – 作为一个可编程的波特率发生器。 – 实现时间延迟。
9.1 可编程计数器/定时器的工作原理
• 计数器/定时器的原理图
9.2.1 8253/8254的编程结构
9.2.2 8253/8254的外部信号
• 8253/8254的编程结构(只有8254有状态寄 存器)
9.3.1 8253/8254控制寄存器和控制字
模式设置控制字
8253的控制字格式
9.3.1 8253/8254控制寄存器和控制字
• 控制字有两类
– 模式设置控制字
– 读出控制字
9.3.2 8254的状态寄存器和状态字
• 主要组成
– DMA控制器 – 中断控制器 – 计数器/定时器 – 等待状态电路 – CPU复位电路
9.7.1 多功能接口芯片82380的组成 和信号
• 82380的中断控制器
9.7.1 多功能接口芯片82380的组成 和信号
• 5个内部中断
– IRQ1和IRQ4 – IRQ1.5 – IRQ0和IRQ8
GATE信号作用
(3) 计数初值的设置
任何一种工作方式,只有在写入计数初值后才能开始计数。 门控信号GATE保持为高电平,方式0、方式2、方式3和方式4在 写入计数初值后,计数过程就开始了;而方式1和方式5需要有 外部GATE触发,才能开始计数。 (4) 计数过程中改变计数值的影响 8253在计数过程中写入新的计数初值,对计数过程的 影响见表所示。
• 有三个计数器 • 共用1个控制寄存器和1个状态寄存器(只 有8254有状态寄存器) • 每个计数器通过3个引脚 • 执行部件实际上是1个16位的减法计数器
9.2.2 8253/8254的外部信号
CLK0~CLK2 GATE0~GATE2 OUT0~OUT2 A1、A0 RD WR CS
MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT AL,14H 76H,AL AL,LCNT 70H,AL AL,73H 76H,AL AX,MCNT 72H,AL AL,AH 72H,AL AL,96H 76H,AL AL,NCNT 74H,AL ;将计数器0设置为模式2 ;对计数器0设置计数初始值L(二进制)
方式
0 立即有效
写入新的计数值
1
2
外部GATE触发后有效
计数到1 后有效
3
4
计数到0后有效或外部GATE触发后有效
立即有效
5
外部GATE触发后有效
9.6 8253/8254应用举例(1)
• 用8253/8254为A/D子系统提供采样信号的例子
Байду номын сангаас
9.5 8253/8254的工作模式(2)
• 程序段下:
9.4 8253/8254的编程命令
• 编程命令包括两类
– 写入命令,包括
• 设置控制字命令 • 设置初值命令 • 锁存命令
– 读出命令
• 读取计数器当前的值。 • 对8254,还可读取状态字
9.4 8253/8254的编程命令
• 读取计数器2的当前计数值的例子
MOV AL,11011000B ;对计数器2发锁存命令,锁存当前计数值 OUT 76H,AL ;76H为控制口地址 IN AL,74H ;读取计数器2的读取值,74H为计数器2的地址 ――――――――――――――― 对8254读取状态字和计数值 MOV AL,11000000B ;计数器0的锁存命令 OUT 76H,AL ;76H为控制口地址,对锁存计数器0的状态和计数值 IN AL,76H ;从状态口读取计数器0的状态 MOV CL,AL ;将计数器0的状态送到CL IN AL,70H ;读取计数器0 的低8位 MOV BL,AL ;将低8位送到BL IN AL,70H ;读取计数器0的高8位 MOV BH,AL ;BX中为计数器0的当前计数值
9.7.2
82380和CPU的连接
图9.3
模式0的时序图
9.5 8253/8254的工作模式
2. 方式 1—— 可重触发的单稳 态触发器
方式 1 是在 GATE 门控信号的作 用下才开始计数。
图9.4
模式1的时序图
9.5 8253/8254的工作模式
• 模式2——分频器
图9.5
模式2的时序图
• 模式3——方波发生器
9.5 8253/8254的工作模式
9.5 8253/8254的工作模式
• 6种工作模式
– 计数结束产生中断 – 可重复触发的单稳态触发器 – 分频器 – 方波发生器 – 软件触发的选通信号发生器 – 硬件触发的选通信号发生器
9.5 8253/8254的工作模式
1. 方式 0—— 计数到零 产生中断请求
在方式 0 下,门控信号 决定计数的启 / 停,装入初 值决定计数过程重新开始, 计数过程时序图所示。
要开始计数, GATE 门控信号必须 是高电平,随后每个时钟CLK的下降沿 都使计数执行单元的内容减 1 ,减到 0 时,输出端 OUT 变成高电平,并一直 维持高电平,直到写入新的计数值,开 始下一轮的计数。计数初值一次有效, 经过一次计数过程后,必须重新写入计 数初值。当输出端 OUT 变成高电平时, 可利用 OUT 的上升沿作为中断请求信 号。方式0主要用于对外部事件计数。
8253/8254的编程结构; 8253/8254的两类控制字; 8253/8254必须遵守的编程原则; 8253/8254的两类编程命令; 8253/8254的6种工作模式的特点;
关于定时信号
• 定时信号:
– 软件方法获得 – 硬件方法获得
9.7.1 多功能接口芯片82380的组成 和信号
• 82380的基本功能结构
9.7.1 多功能接口芯片82380的组成 和信号
• 对外连接信号:
– DREQ7~DREQ0 – EDACK2~EDACK0 – EOP – HOLD – HLDA
9.7.1 多功能接口芯片82380的组成 和信号
图9.6
模式3的时序图
9.5 8253/8254的工作模式
• 模式4——软件触发的选通 信号发生器
图9.7 模式4的时序图
9.5 8253/8254的工作模式
• 模式5——硬件触发 的选通信号发生器
图9.8 模式5的时序图
• 计数初值N与输出波形的关系
(2) GATE门控信号的作用
一般情况下,GATE信号为低电平时禁止计数,为高电平时允 许计数,方式1和方式5则需要有由低变高的上升沿触发脉冲来启 动计数。GATE信号对各种工作方式的影响如表所示。
;将计数器1设置为模式1
;对计数器1设置初始值M(BCD码) ;将计数器2设置为模式3 ;对计数器2设置初始值N(二进制)
9.7 32位微机系统中的多功能接口芯片 82380
• 高集成度和多功能 • 兼容性好
9.7.1 多功能接口芯片82380的组成 和信号
• 内部含有:
– 1个8通道的32位DMA控制器; – 20级的可编程中断控制器; – 4个16位计数器/定时器; – 动态RAM刷新电路; – 系统复位逻辑电路; – 插入等待状态的控制电路; – 内部总线仲裁电路。
• 状态寄存器的格式如下:
9.4 8253/8254的编程命令
• 编程有3条原则必须遵守:
– 对计数器设置初始值前必须先写控制字。 – 初始值设置时,要符合控制字中的格式规定, 即只写低位字节还是只写高位字节,或高低位 字节都写,控制字中一旦规定,具体初始值设 定时就要一致。
– 要读取计数器的当前值和状态字,必须用控制 字先锁定,才能读取。
9.1 可编程计数器/定时器的工作原理
• 计数器/定时器:
– 在多任务的分时系统中作为中断信号实现程序 的切换。 – 可往I/O设备输出精确的定时信号。 – 作为一个可编程的波特率发生器。 – 实现时间延迟。
9.1 可编程计数器/定时器的工作原理
• 计数器/定时器的原理图
9.2.1 8253/8254的编程结构
9.2.2 8253/8254的外部信号
• 8253/8254的编程结构(只有8254有状态寄 存器)
9.3.1 8253/8254控制寄存器和控制字
模式设置控制字
8253的控制字格式
9.3.1 8253/8254控制寄存器和控制字
• 控制字有两类
– 模式设置控制字
– 读出控制字
9.3.2 8254的状态寄存器和状态字
• 主要组成
– DMA控制器 – 中断控制器 – 计数器/定时器 – 等待状态电路 – CPU复位电路
9.7.1 多功能接口芯片82380的组成 和信号
• 82380的中断控制器
9.7.1 多功能接口芯片82380的组成 和信号
• 5个内部中断
– IRQ1和IRQ4 – IRQ1.5 – IRQ0和IRQ8
GATE信号作用
(3) 计数初值的设置
任何一种工作方式,只有在写入计数初值后才能开始计数。 门控信号GATE保持为高电平,方式0、方式2、方式3和方式4在 写入计数初值后,计数过程就开始了;而方式1和方式5需要有 外部GATE触发,才能开始计数。 (4) 计数过程中改变计数值的影响 8253在计数过程中写入新的计数初值,对计数过程的 影响见表所示。
• 有三个计数器 • 共用1个控制寄存器和1个状态寄存器(只 有8254有状态寄存器) • 每个计数器通过3个引脚 • 执行部件实际上是1个16位的减法计数器
9.2.2 8253/8254的外部信号
CLK0~CLK2 GATE0~GATE2 OUT0~OUT2 A1、A0 RD WR CS
MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT AL,14H 76H,AL AL,LCNT 70H,AL AL,73H 76H,AL AX,MCNT 72H,AL AL,AH 72H,AL AL,96H 76H,AL AL,NCNT 74H,AL ;将计数器0设置为模式2 ;对计数器0设置计数初始值L(二进制)
方式
0 立即有效
写入新的计数值
1
2
外部GATE触发后有效
计数到1 后有效
3
4
计数到0后有效或外部GATE触发后有效
立即有效
5
外部GATE触发后有效
9.6 8253/8254应用举例(1)
• 用8253/8254为A/D子系统提供采样信号的例子
Байду номын сангаас
9.5 8253/8254的工作模式(2)
• 程序段下:
9.4 8253/8254的编程命令
• 编程命令包括两类
– 写入命令,包括
• 设置控制字命令 • 设置初值命令 • 锁存命令
– 读出命令
• 读取计数器当前的值。 • 对8254,还可读取状态字
9.4 8253/8254的编程命令
• 读取计数器2的当前计数值的例子
MOV AL,11011000B ;对计数器2发锁存命令,锁存当前计数值 OUT 76H,AL ;76H为控制口地址 IN AL,74H ;读取计数器2的读取值,74H为计数器2的地址 ――――――――――――――― 对8254读取状态字和计数值 MOV AL,11000000B ;计数器0的锁存命令 OUT 76H,AL ;76H为控制口地址,对锁存计数器0的状态和计数值 IN AL,76H ;从状态口读取计数器0的状态 MOV CL,AL ;将计数器0的状态送到CL IN AL,70H ;读取计数器0 的低8位 MOV BL,AL ;将低8位送到BL IN AL,70H ;读取计数器0的高8位 MOV BH,AL ;BX中为计数器0的当前计数值
9.7.2
82380和CPU的连接
图9.3
模式0的时序图
9.5 8253/8254的工作模式
2. 方式 1—— 可重触发的单稳 态触发器
方式 1 是在 GATE 门控信号的作 用下才开始计数。
图9.4
模式1的时序图
9.5 8253/8254的工作模式
• 模式2——分频器
图9.5
模式2的时序图
• 模式3——方波发生器
9.5 8253/8254的工作模式
9.5 8253/8254的工作模式
• 6种工作模式
– 计数结束产生中断 – 可重复触发的单稳态触发器 – 分频器 – 方波发生器 – 软件触发的选通信号发生器 – 硬件触发的选通信号发生器
9.5 8253/8254的工作模式
1. 方式 0—— 计数到零 产生中断请求
在方式 0 下,门控信号 决定计数的启 / 停,装入初 值决定计数过程重新开始, 计数过程时序图所示。
要开始计数, GATE 门控信号必须 是高电平,随后每个时钟CLK的下降沿 都使计数执行单元的内容减 1 ,减到 0 时,输出端 OUT 变成高电平,并一直 维持高电平,直到写入新的计数值,开 始下一轮的计数。计数初值一次有效, 经过一次计数过程后,必须重新写入计 数初值。当输出端 OUT 变成高电平时, 可利用 OUT 的上升沿作为中断请求信 号。方式0主要用于对外部事件计数。