第七章 可编程定时计数器8253
合集下载
(计数初值)可编程定时器计数器8253
28
8253-5的工作方式
②GATE=1计数进行,GATE=0计数停止,且下一个CLK计数 器重新赋初值,GATE变为高电平,计数重新开始。
29
8253-5的工作方式
③ 计数期间送入新值,本周期继续进行,下一个周期按 新值计数操作。
不用重复置数。计数器能够连续工作,输出OUT是输 入CLK的n(初值)分频。
31
8253-5的工作方式
方式3的时序波形: ① 写入CW后OUT变为高电平,输入时间常数后,下一个时 钟开始计数,计到一半时输出变为低电平,计到终值时重 新变为高电平,并开始下一次计数过程。
32
8253-5的工作方式
② 若N为偶数,高低电平持续时间相等;若为奇数,则 高电平持续时间为(N+1)/2,低电平持续时间为(N-1) /2。
35
8253-5的工作方式
①写入CW后OUT为高电平,输入时间常数后,下一个CLK 开始计数,计数器为0时,输出一个周期负脉冲,并停止 操作。
36
8253-5的工作方式
②GATE=1允许计数,GATE=0禁止计数。
37
8253-5的工作方式
③计数期间送入新的时间常数,则下一个时钟按新值重新 计数。
25
8253-5的工作方式
④计数过程中,GATE触发沿提前到来,在下一个CLK的下 降沿,计数器开始重新计数,这将使输出单稳脉冲比原 先设定的计数值加宽。
26
8253-5的工作方式
(3)方式2—速率发生器(Rate Genenator) 方式2能产生周期性的定时信号,称为速率发生器,
又称为N分频方式和周期性定时器方式。
数频率,N为计数初值。
42
8253-5的工作方式
8253-5的工作方式
②GATE=1计数进行,GATE=0计数停止,且下一个CLK计数 器重新赋初值,GATE变为高电平,计数重新开始。
29
8253-5的工作方式
③ 计数期间送入新值,本周期继续进行,下一个周期按 新值计数操作。
不用重复置数。计数器能够连续工作,输出OUT是输 入CLK的n(初值)分频。
31
8253-5的工作方式
方式3的时序波形: ① 写入CW后OUT变为高电平,输入时间常数后,下一个时 钟开始计数,计到一半时输出变为低电平,计到终值时重 新变为高电平,并开始下一次计数过程。
32
8253-5的工作方式
② 若N为偶数,高低电平持续时间相等;若为奇数,则 高电平持续时间为(N+1)/2,低电平持续时间为(N-1) /2。
35
8253-5的工作方式
①写入CW后OUT为高电平,输入时间常数后,下一个CLK 开始计数,计数器为0时,输出一个周期负脉冲,并停止 操作。
36
8253-5的工作方式
②GATE=1允许计数,GATE=0禁止计数。
37
8253-5的工作方式
③计数期间送入新的时间常数,则下一个时钟按新值重新 计数。
25
8253-5的工作方式
④计数过程中,GATE触发沿提前到来,在下一个CLK的下 降沿,计数器开始重新计数,这将使输出单稳脉冲比原 先设定的计数值加宽。
26
8253-5的工作方式
(3)方式2—速率发生器(Rate Genenator) 方式2能产生周期性的定时信号,称为速率发生器,
又称为N分频方式和周期性定时器方式。
数频率,N为计数初值。
42
8253-5的工作方式
第7章可编程计数器定时器8253与其应用
2. 8253的内部结构和引脚功能
① 数据总线缓冲器
8位、双向、三态缓冲器,8253和系统数据总线之间的接口电路。
CPUDB D0 ~ D7
数据 总线 缓冲器
内 部 总 线
8253的内部结构
CPU用输入、输出指令对 8253进行读/写操作的信息,都 经数据总线从D7~D0传送,这 些信息包括:
◇ CPU在对8253进行初始化 编程时,向它写入的控制字。
8253可用作可编程方波频率产生器、分频器、程控 单脉冲发生器等许多场合。
§7.1 8253的工作原理
一.8253的结构和功能
1. 8253的引脚
采用24个引脚的双列直插式封装。 D 7
■ 通道管脚(9个)
D6 D5
8253有3个计数/定时通道。
D4 D3
◇ 通道0有3个引脚:CLK0、GATE0、OUT0
② 计数器0~2
3个独立的计数器,构成3个通道ch0~ch2。
计数执行
GATE
OUT 2MHz。否 则需经分频
CPUDB 数据 总线
计数器0
CLK 0
GATE0
计数值锁 存单元LR
后才能送到 CLK端。
D0 ~ D7 缓冲器
OUT 0
CLK——计数/定时脉冲输入端
内 部 总 线
每个通道都包含:一个8位控制 字寄存器和一个16位计数器。
每个计数器内含:一个16位计 数初值寄存器、一个计数器执行部 件(16位减法计数器)和一个16位 输出锁存器。
§7.1 8253的工作原理
一.8253的结构和功能
2. 8253的内部结构和引脚功能
计数初值 寄存器CR
【注】外部 输入CLK引 脚上的时钟
① 数据总线缓冲器
8位、双向、三态缓冲器,8253和系统数据总线之间的接口电路。
CPUDB D0 ~ D7
数据 总线 缓冲器
内 部 总 线
8253的内部结构
CPU用输入、输出指令对 8253进行读/写操作的信息,都 经数据总线从D7~D0传送,这 些信息包括:
◇ CPU在对8253进行初始化 编程时,向它写入的控制字。
8253可用作可编程方波频率产生器、分频器、程控 单脉冲发生器等许多场合。
§7.1 8253的工作原理
一.8253的结构和功能
1. 8253的引脚
采用24个引脚的双列直插式封装。 D 7
■ 通道管脚(9个)
D6 D5
8253有3个计数/定时通道。
D4 D3
◇ 通道0有3个引脚:CLK0、GATE0、OUT0
② 计数器0~2
3个独立的计数器,构成3个通道ch0~ch2。
计数执行
GATE
OUT 2MHz。否 则需经分频
CPUDB 数据 总线
计数器0
CLK 0
GATE0
计数值锁 存单元LR
后才能送到 CLK端。
D0 ~ D7 缓冲器
OUT 0
CLK——计数/定时脉冲输入端
内 部 总 线
每个通道都包含:一个8位控制 字寄存器和一个16位计数器。
每个计数器内含:一个16位计 数初值寄存器、一个计数器执行部 件(16位减法计数器)和一个16位 输出锁存器。
§7.1 8253的工作原理
一.8253的结构和功能
2. 8253的内部结构和引脚功能
计数初值 寄存器CR
【注】外部 输入CLK引 脚上的时钟
第7章可编程计数器8253
方式0 计数结束中断
① ② ④ 4 ⑤ ⑥
WR CLK GATE
方式0
4 3 2 1
0
OUT
④ ② ① ⑥ ⑤ 计 数 设 设 计 计 值 定 定 数 数 送 计 工 结 过 入 数 作 束 程 计 初 方 数 值 式 器
8253方式0的GATE作用时序
8253方式0 计数期间写入新的计数值的时序
8253工作方式2—比率发生器
(1) 结果特点:产生连续的负脉冲信号,负脉冲宽度等于一 个时钟周期,脉冲周期可由软件设定,脉冲周期=计数值× 时钟周期 (2)过程特点: ①控制字写入:OUT=1 ②计数值写入:OUT=1 ③启动方式:两种。一是硬件启动:GATE上调沿启动。二 是软件启动:写入计数值启动。(此时GATE=1) ④计数期间:OUT为高电平(OUT=1),但在CE由1减到 0的计数中,OUT输出一个负脉冲,宽度为一个时钟周期。 ⑤计数为0时:OUT变为高电平(OUT=1),开始下一个 周期的计数。
8253方式1—可编程单稳态输出方式
⑦GATE作用:GATE=0或=1时,不影响计数,但出
现上跳沿则重新启动计数器,按最新计数初值开始 计数,若在计数尚未结束时,就出现了上调沿,则 重新计数。因此,使输出负脉冲的宽度延长,这种 方式常用于工业控制系统中的干扰自动复位电路 ⑧计数值有效期限: 计数值多次有效,计数初值写入 CR 后,在没有新的计数值写入 CR 之前,原计数初 值在 CR 中保持不变,以后每触发一次, CR 中保存 的这个计数初值就装入CE一次。
8253工作方式4 —软件触发选通信号
⑥计数期间写入新的计数值:立即有效。写入新计 数值后,在下一个时钟周期时,新计数值被装入CE, 开始以新的计数值计数。如果写入的计数值是 2 个 字节,那么写入第一个字节时,计数不受影响,写 入第二个字节时的下个CLK时钟脉冲使CR的新值装 入CE,并以新的计数值开始重新计数。 ⑦GATE 作用: GATE=0 时,计数停止; GATE=1 时,允许计数,此时计数器从暂停的地方开始连续 计数。GATE信号不影响OUT的状态。 ⑧计数值有效期限:计数值一次有效。只有在输入 新的计数值后,才能开始。
可编程定时计数器8253
节 OUT DX,AL;写入计数值高字节 MOV AL,10110100B;二进制,方式2,写入16位数,计数器2 MOV DX,04C6H;控制口地址
OUT DX,AL MOV AL,04H;计数值低字节 MOV DX,04C4H;设置计数器2地址 OUT DX,AL;写入计数值低字节 MOV AL,03H;计数值高字节 OUT DX,AL;写入计数值高字节
8位的控制寄存器 16位的初值寄存器 16位计数执行单元CE 16位输出锁存器OL
CLK:计数时钟,输入。用于输入定时脉冲或计数脉 冲信号。计数器用其下降沿作减1计数。
GATE:门控信号,输入,由外部信号通过GATE端控 制计数器的启动计数和停止计数的操作。
OUT:输出信号。在不同的模式下,可输出不同波形。
8253的工作方式-方式4(软件触发选通)
软件启动,不自动重复
8253的工作方式-方式4(软件触发选通)
GATE为低
8253的工作方式-方式4(软件触发选通)
计数过程中重新写入计数初值
8253的工作方式-方式5(硬件触发选通)
硬件触发选通方式,完全由GATE端引入 的触发信号控制定时和计数
MOV AL,00011010B;二进制,方式5,写低字节,计数器0 MOV DX,04C6H;设置8253控制口地址 OUT DX,AL;写入工作方式控制字 MOVAL,46H;计数值的低字节 MOVDX,04C0H;设置8253计数器0地址 OUT DX,AL;写入计数值的低字节 MOV AL,01110011B;BCD数,方式1,写16位数,计数器1 MOV DX,04C6H;设置8253控制器地址 OUT DX,AL;写入工作方式控制字 MOV AL,00H;计数值低字节 MOV DX,04C2H;设置8253计数器1地址 OUT DX,AL;写入计数值低字节
OUT DX,AL MOV AL,04H;计数值低字节 MOV DX,04C4H;设置计数器2地址 OUT DX,AL;写入计数值低字节 MOV AL,03H;计数值高字节 OUT DX,AL;写入计数值高字节
8位的控制寄存器 16位的初值寄存器 16位计数执行单元CE 16位输出锁存器OL
CLK:计数时钟,输入。用于输入定时脉冲或计数脉 冲信号。计数器用其下降沿作减1计数。
GATE:门控信号,输入,由外部信号通过GATE端控 制计数器的启动计数和停止计数的操作。
OUT:输出信号。在不同的模式下,可输出不同波形。
8253的工作方式-方式4(软件触发选通)
软件启动,不自动重复
8253的工作方式-方式4(软件触发选通)
GATE为低
8253的工作方式-方式4(软件触发选通)
计数过程中重新写入计数初值
8253的工作方式-方式5(硬件触发选通)
硬件触发选通方式,完全由GATE端引入 的触发信号控制定时和计数
MOV AL,00011010B;二进制,方式5,写低字节,计数器0 MOV DX,04C6H;设置8253控制口地址 OUT DX,AL;写入工作方式控制字 MOVAL,46H;计数值的低字节 MOVDX,04C0H;设置8253计数器0地址 OUT DX,AL;写入计数值的低字节 MOV AL,01110011B;BCD数,方式1,写16位数,计数器1 MOV DX,04C6H;设置8253控制器地址 OUT DX,AL;写入工作方式控制字 MOV AL,00H;计数值低字节 MOV DX,04C2H;设置8253计数器1地址 OUT DX,AL;写入计数值低字节
可编程定时-计数器8253
接口技术
•8086/8088中断响应周期时,CPU的INTA引脚的 正确功能是—————— A.输出一个负脉冲,CPU从D7~D0读入中断类型码 B.输出两个负脉冲,在第二个负脉冲期间,CPU 从A7~A0读入中断类型码 C.输出两个负脉冲,在第二个负脉冲期间,CPU 从D7~D0读入中断类型码
D.输出一个负脉冲,CPU从A7~A0读入中断类型 码
接口技术
7.1.4 中断嵌套 当CPU执行优先级较低的中断服务程序时,允许响 应比它优先级高的中断源请求中断,而挂起正在处 理的中断。 (1)屏蔽同级和较低级中断请求。 (2)在保护现场、屏蔽同级和较低级中断完成后, 用STI指令来开中断。 (3)中断服务程序结束后,恢复现场前,用CLI指 令来关中断,然后才能恢复现场。 (4)恢复现场后,CPU应该重新开放中断,以便允 许任何其它等待着的中断请求有可能被CPU响应。
CNT2:标准定时,定时时间为1S。
8253
D7~D0
系
A1
统 总
A0 IOR
IOW
线
A2~A15
地址 译码器
D7~D0
CLK OUT
2 2
A1 A0
CLK 1 OUT 1
RD WR
CLK 0
OUT 0 CS GATE 1
GATE 2 GATE 3
送8259的IR 2端 2.5MHz 1kHz方波 外部事件
接口技术
计数结束时,输出一个时钟周期的负脉冲;
计数中写入新初值,待GATE信号重新启动之后 才置入计数器使用。
WR
CLK
GATE OUT
CW N=4
4 32 1 0 图7.19 方式5 的波形
接口技术
例7.5 IBM PC/XT主机板上有一片8253用作计 数/定时电路,各计数器及控制寄存器所占地 址及工作情况如下:
第7章1 定时计数器8253
1.19MHz / 65536 = 18.2Hz 55ms/次
西南交通大学
31
微机与接口技术
计数器1#用于DRAM刷新时钟(方式2,初值0012H)
MOV AL, 01010100B OUT 43H, AL MOV AL, 12H OUT 41H, AL 8253.OUT1连接8237.DREQ0,定时刷新DRAM。 GATE1 接高电平,总是允许工作
通过对一个减一计数器初始值的设定来实现分频或计数。减一 计数器的值会在每个输入脉冲作用下自动减一。减一计数器的 值减到零后会产生一个输出。输出信号形式可编程选择。
2. 不同之处
(1)定时器方式下,减一计数器的值减到零后会自动恢复其初始值进行 新一轮的减一计数过程,并循环往复。而计数器方式下,当减一 计数器的值减到零后,不再进行新的自动往复计数过程,除非有 外界因素的重触发。 (2)定时器方式下,输入时钟必须是等周期的,而计数器方式下则不 一定。
~
D7 RD WR A0 A1 CS
总线缓 冲 器 片 读/写 逻辑 内 总 线
计数器 1
CLK 1 GATE 1 OUT 1
控
制
计数器 2
CLK 2 GATE 2 OUT 2
寄存器
西南交通大学
10
微机与接口技术
8253的内部结构
16位初值寄存器
•计数器(3个)——包括
16位计数寄存器 (减法计数器) 16位当前计数值锁存器
1.19MHz / 12H = 66288Hz 15.08μs/次
西南交通大学
32
微机与接口技术
计数器2#为扬声器提供震荡频率(方式3,初值533H)
BEEP:MOV AL, 10110110B OUT 43H, AL MOV AX, 533H OUT 42H, AL MOV AL, AH OUT 42H, AL 打开PB1PB0 延时 关闭PB1PB0 RET GATE2 由8255A.PB0控制
第7章 可编程定时器计数器8253
①软件定时器/计数器
软件定时器/计数器是实现系统定时控制或延 时控制的最简单的方法。在计算机中CPU每执行 一条指令所占用的周期(T状态)数是确定的, 用汇编语言编写一段具有固定延时时间的循环程 序,将该程序的每条指令的T状态数加起来,乘 以系统的时钟周期,就是该程序执行一遍所需的 延时时间。设计者可选择不同的指令条数和不同 的循环次数来实现不同的时间延迟。
④ 计数通道 8253有3个相互独立的同样的计数电路,分 别称作计数器0、计数器1和计数器2。每个计数 器包含一个8位的控制寄存器(控制单元),它存 放计数器的工作方式控制字;一个16位的初值 寄存器CR(时间常数寄存器),8253工作之前要对 它设置初值;一个16位计数执行单元CE,它接 收计数初值寄存器CR送来的内容,并对该内容 执行减1操作;一个16位输出锁存器OL,它锁存 CE的内容,使CPU能从输出锁存器内读出一个稳 定的计数值。计数器的内部结构如图6-5所示。
3.项目电路原理框图 利用8253对外部事件进行计数,电路原理框 图如图7-1所示。电路由8086CPU芯片、8253芯 片、按钮开关UP和发光二极管LED等组成。
图7-1 电路原理框图
4.项目程序设计 (1)程序流程图 利用8253对外部事件进行计数程序流程图 如图7-2所示。
图7-2 用8253对外部事件进行计数程序流程图
(2)程序清单 利用8253对外部事件进行计数程序清单如下所示。 CODE SEGMENT ASSUME CS:CODE START: MOV AL, 30H ; 二进制计数,方式0,先低后高,通 道0 MOV DX, 203H ;8253控制地址 MOV AL, 0 OUT DX, AL OUT DX, AL ; 高八位 MOV AL, 5 ; 计数器初始值。JMP AGAIN AGAIN: MOV DX, 200H ;通道0地址 CODE ENDS OUT DX, AL ; 低八位 END START
第7章8253微机原理及应用
计算计数初值: TC= 2.5MHz/ 2KHz=1250 方式字为:0011 0111B=37H (计数器0,写16位,方式3,BCD计数) 设端口地址为:80H、81H、82H、83H。 则初始化程序为:
MOV AL,37H;写入方式控制字 OUT 83H,AL MOV AL,50H;写入计数初始值低8位 OUT 80,AL MOV AL,12H ;写入计数初始值高8位 OUT 80H,AL
(3)读计数值 ①以普通对计数器端口读的方法取得当前计数值 ②锁存计数器的当前值(RL1RL0=00)
7.2.4 8253-5的应用举例 一、用8253-5监视一个生产流水线 1.硬件设计
INT 1 +5V
2.5MHz 8255PA0
OUT0 CLK0
GATE0
8253
CLK1 GATE1
OUT1
• 方式2:可变频率脉冲发生器
(MODE 2) CLOCK
WRn#
OUTPUT
n=4
n=3
4 3 2 1 0(4) 3 2 1 0(3) 2 1 0
0(3) OUTPUT
3 2 1 0(3) 2 1 0(3) 2 1 0
GATE (RESET)
方式3—方波速率发生器 方式3的输出都是周期性的,方式3在计数过程中输出
(2)计数器1用来产生动态存储器刷新操作的定 时控制,它工作于方式2,计数初值为18, OUT1端输出一个负脉冲序列,其脉冲周期约 为18 ÷1.1931816MHz=15.08(μs)。该输出将 作为动态刷新控制器8237A中通道0的DMA请 求信号DREQ0,控制DMA控制器完成每隔 15.08(μs)对系统中的动态存储芯片进行一次 刷新操作
– 选通输入(门控输入)GATE——用于启动或禁止计数器的 操作,以使计数器 和计测对象同步。
MOV AL,37H;写入方式控制字 OUT 83H,AL MOV AL,50H;写入计数初始值低8位 OUT 80,AL MOV AL,12H ;写入计数初始值高8位 OUT 80H,AL
(3)读计数值 ①以普通对计数器端口读的方法取得当前计数值 ②锁存计数器的当前值(RL1RL0=00)
7.2.4 8253-5的应用举例 一、用8253-5监视一个生产流水线 1.硬件设计
INT 1 +5V
2.5MHz 8255PA0
OUT0 CLK0
GATE0
8253
CLK1 GATE1
OUT1
• 方式2:可变频率脉冲发生器
(MODE 2) CLOCK
WRn#
OUTPUT
n=4
n=3
4 3 2 1 0(4) 3 2 1 0(3) 2 1 0
0(3) OUTPUT
3 2 1 0(3) 2 1 0(3) 2 1 0
GATE (RESET)
方式3—方波速率发生器 方式3的输出都是周期性的,方式3在计数过程中输出
(2)计数器1用来产生动态存储器刷新操作的定 时控制,它工作于方式2,计数初值为18, OUT1端输出一个负脉冲序列,其脉冲周期约 为18 ÷1.1931816MHz=15.08(μs)。该输出将 作为动态刷新控制器8237A中通道0的DMA请 求信号DREQ0,控制DMA控制器完成每隔 15.08(μs)对系统中的动态存储芯片进行一次 刷新操作
– 选通输入(门控输入)GATE——用于启动或禁止计数器的 操作,以使计数器 和计测对象同步。
CH7 可编程计数器定时器8253及应用(ok)
8
第七章
(3) WR :写信号 低电平有效,当 WR有效时,表示CPU正在将 计数初值写入所选中的计数通道或将控制字写入控 制字寄存器中。 (4)A1、A0 :端口选择信号 在8353内部有3个计数器通道(0~2)和一个控制 字寄存器端口。 A1A0=00时,选中通道0; A1A0=01时,选中通道1; A1A0=10时,选中通道2; A1A0=11时,选中控制字寄存器端口。
第七章
4
引脚图:
8 7 6 5 4 3 2 8253 1 22 23 19 20 21 9 11 10
15 14 13 18 16 17 24 12
RD WR
VCC
GND
CS
5
第七章
二、8253的内部结构和功能
6
第七章
1、数据总线缓冲器 一个8位双向的三态缓冲器,作为8253和系统数 据总线之间的接口; 实现CPU与8253之间数据的传送; 传送信息包括: (1)进行初始化编程时的控制字; (2)向某一计数器通道写入的计数初值; (3)从某一计数器通道读出的当前计数值。
3
7-2 8253的工作原理
一、8253的性能指标 Intel 8253是一种可编程的计数器/定时器芯片 ,称为可编程间隔定时器(Programmable Interval Timer,PIT)。 性能指标如下: (1)NMOS,24脚双列直插式封装,+5V电源; (2)包含3个独立的16位计数器,最高计数频率高 达2MHz; (3)所有的计数方式,操作方式都通过编程控制。
第七章 可编程计数器/定时器8253及其应用 7-1 引言 7-2 8253的工作原理
一、8253的性能指标 二、8253的内部结构和功能 三、8253的控制字 四、8253的初始化编程的步骤 五、8253的工作方式 六、8253的读写操作及与系统的连接
第七章
(3) WR :写信号 低电平有效,当 WR有效时,表示CPU正在将 计数初值写入所选中的计数通道或将控制字写入控 制字寄存器中。 (4)A1、A0 :端口选择信号 在8353内部有3个计数器通道(0~2)和一个控制 字寄存器端口。 A1A0=00时,选中通道0; A1A0=01时,选中通道1; A1A0=10时,选中通道2; A1A0=11时,选中控制字寄存器端口。
第七章
4
引脚图:
8 7 6 5 4 3 2 8253 1 22 23 19 20 21 9 11 10
15 14 13 18 16 17 24 12
RD WR
VCC
GND
CS
5
第七章
二、8253的内部结构和功能
6
第七章
1、数据总线缓冲器 一个8位双向的三态缓冲器,作为8253和系统数 据总线之间的接口; 实现CPU与8253之间数据的传送; 传送信息包括: (1)进行初始化编程时的控制字; (2)向某一计数器通道写入的计数初值; (3)从某一计数器通道读出的当前计数值。
3
7-2 8253的工作原理
一、8253的性能指标 Intel 8253是一种可编程的计数器/定时器芯片 ,称为可编程间隔定时器(Programmable Interval Timer,PIT)。 性能指标如下: (1)NMOS,24脚双列直插式封装,+5V电源; (2)包含3个独立的16位计数器,最高计数频率高 达2MHz; (3)所有的计数方式,操作方式都通过编程控制。
第七章 可编程计数器/定时器8253及其应用 7-1 引言 7-2 8253的工作原理
一、8253的性能指标 二、8253的内部结构和功能 三、8253的控制字 四、8253的初始化编程的步骤 五、8253的工作方式 六、8253的读写操作及与系统的连接
第七章、定时计数器8253(2)
9. 3
8253的工作方式
对外部事件计数
例
计数器0,工作于方式3,输出方波的频率为2KHz 计数脉冲的频率为2.5MHz,采用BCD计数,试编写 初始化程序段 端口地址为04H,05H,06H,07H
初值的计算 2.5MHz/2KHz= 控制字: 0 0 1 1
1250
0 11 1
37H 初始化程序: Mov al , 37h out 07h , al mov al , 50h out 04h , al mov al , 12h out 04h , al
0 11 0 56H
14H
控制字: 0 1 01
端口地址: 7C 7D 7E 7F 初始化程序: Mov al , 56h out 7Fh , al mov al , 14h out 7Dh , al
• • • • • • • • • • • • • •
1、如图所示,8086系统通过8255A实现开关K控制LED灯,根据图示连接写 出8255A的端口地址;并编写相关程序实现开关闭合则灯熄灭,开关断开则 灯点亮。(10分) :端口地址为0F0H~0F3H 相关程序: MOV AL,90H OUT 0F3H,AL L1: IN AL,0F0H TEST AL,80H JZ NEXT MOV AL,00H OUT 0F1H,AL JMP L1 NEXT:MOV AL,0FFH OUT 0F1H,AL JMP L1
第七章 计数器和定时器电路
Intel 8253/8254-PIT
徐承彬
Intel 8253/8254-PIT
7. 1
概述
(1)软件方法:
定时信号的获得
(2)硬件方法:
不可编程的硬件定时
可编程的硬件定时
第七章定时_计数器8253
4
3
2
1
3
2
1
GATE=1 4 0 3 2
本章首页
7.2 定时/计数器8253-5/8254-2(续) 定时/计数器8253-5/82544)3方式——周期性方波输出 方式——周期性方波输出 ——
与方式2一样具有自动重新装载计 自动重新装载计 数初值的功能,与方式2的区别仅 数初值 触发方式: 触发 触发方式:写入初值后,WR= 在于输出波形不同 输出波形: 输出波形:输出占空比为1:1或近似1:1的方波。初值为偶数时,前半周为高电 平,后半周为低电平;初值为奇数时,前一半加1的计数过程中为高电平 GATE作用 作用: ,停止,= ,重新开始 GATE作用:=1,允许;=0,禁止;= 计数过程中写入新初值: 计数过程中写入新初值:计数器回零,输出完整的方波后,再开始新过程
A1A0 选中通道 0 0 0 1 1 0 1 1 T0 T1 T2 T3
A0~A1:端口选择线,接收CPU的低位地址,用于8253被选中时,选择内部端口 GATE0~GATE2:T0~T2的门控信号,对计数过程进行控制,具体作用视方式而定 CLK0~CLK2:T0~T2的脉冲输入,允许计数时,8253的Ti对CLKi输入的脉冲进行减 1计数 OUT0~OUT2:T0~T2的输出信号,Ti减为0,OUTi输出有效,输出波形视方式而定
16位计数初值寄存器 装入/读出初值 LSB MSB 通道的内部结构
本章首页
7.2 定时/计数器8253-5/8254-2(续) 定时/计数器8253-5/8254读写控制逻辑: 读写控制逻辑:接收CPU的地址、读/写信号,选中一个端口并确定传送方向
2. 计数初值 操作 WR RD A1 A0 PC机 实验台 逆 减 0 1 0 0 加载T0(向T0写入初值) 40H 304H 8253/8254是逆计数器(减1 0 1 0 1 加载T1(向T1写入初值) 41H 305H 计数器),减1计数器减为0 时输出有效 0 1 1 0 加载T2(向T2写入初值) 42H 306H
微机原理第七章 计数器定时器8253
三、Intel 8253
1. 芯片引腿 2. 编程结构 3. 结构组成 4. 控制寄存器格式 5. 编程命令 6. 工作模式
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0
GATE0 GND
1
24
2
23
3
22
4
21
8253 5
20
6
19
7
18
8
17
9
16
10
15
11
14
12
13
D0---BCD位,用来设置装入CR计数值的格式。 0——计数值为二进制格式 1——计数值为BCD码格式
一作为计数器,在设置好计数初值后,便开 始减1计数,减到“0”时,输出一个信号;
二作为定时器,在设置好定时常数后,便进 行减1计数,并按定时常数不断地输出 为时 钟周期整数倍的定时间隔。
计数器与定时器的差别在于:计数器计 数到零时便输出一个信号并结束;而定时器 会不断地产生信号。
计数器与定时器的共同点在于: 它们的工作过程没有根本区别,都是基于
3. 结构组成
D7~D0
数据总线 缓冲器
计数器 0
CKL0 GATE0 OUT0
RD
CKL1
WR A0
读/写控制逻 辑电路
A1
内 部 总
计数器 1
GATE1 OUT1
CS
线
控制 寄存器
计数器 2
CKL2 GATE2 OUT2
8253的芯片引脚及结构组成
① 计数器0,计数器1,计数器2 ② 数据总线缓冲器
功能: 往控制寄存器设置控制字 往计数器设置初值 从计数器读取计数值 ③控制寄存器 ④读/写逻辑电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
读/写控制电路
片选信号 CS A1A0的组合 :选择三个通道、一个控制寄 的组合 选择三个通道、 存器, 存器,共4个端口 个端口 提供, 读信号 RD 和写信号 WR 由CPU提供,低电平 提供 有效。 有效。
20010.12 可编程定时/计数器8253 7
8253的管脚分配 的管脚分配
通道管脚
20010.12
可编程定时/计数器8253
12
方式0——计数结束中断方式 计数结束中断方式 方式
方式0的作用 方式 的作用
用户可以在设定时间上产生中断信号
工作方式0特点: 工作方式 特点: 特点
门控信号GATE必须为 ,计数器才能计数; 必须为1,计数器才能计数; 门控信号 必须为 计数时通道输出端OUT一直为 ; 一直为0; 计数时通道输出端 一直为 通道计数器计数到0后 通道计数器计数到 后,OUT由0到1,同时计数器停止工作。 由 到 ,同时计数器停止工作。
OUT输出的从低到高的正跳变或高电平可作为中断请求信号 输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向 输出的从低到高的正跳变或高电平可作为中断请求信号 , CPU发出中断请求。 发出中断请求。 发出中断请求 在计数过程中, 信号为低电平时, 变高, 在计数过程中,GATE信号为低电平时,停止计数,一旦 信号为低电平时 停止计数,一旦GATE变高, 变高 则继续计数. 则继续计数.
8253的内部结构 的内部结构
8253内部有 个独立的 位定时/ 内部有3个独立的 位定时/ 内部有 个独立的16位定时 计数器通道。 计数器通道。 计数器可按照二进制或十进制计数, 计数器可按照二进制或十进制计数, 计数和定时范围可在1—65535之间 计数和定时范围可在 之间 改变, 改变, 每个通道有6种工作方式 种工作方式, 每个通道有 种工作方式,计数频率 可高达2MHz以上。 以上。 可高达 以上
CLKn:通道n的脉冲输入管脚.外部事件 :通道 的脉冲输入管脚 的脉冲输入管脚. 或定时脉冲由这三个管脚输入; 或定时脉冲由这三个管脚输入; OUTn:通道 的输出管脚,当计数值减 到0 的输出管脚, :通道n的输出管脚 管脚上输出, 在OUT管脚上输出,输出波形取决于 管脚上输出 8253通道的工作方式; 通道的工作方式; 通道的工作方式 GATEn:门控信号输入管脚 :
锁存控制字: 锁存控制字: 0000XXXXB
20010.12 可编程定时/计数器8253 10
工作方式选择(M2、M1、M0)
控制字的D5D4为00,表示的是锁 存命令。这时控制字中的低4位无 效
BCD计数制:写入初值范围为0000到 9999,而0000是最大值,代表10000 二进制计数制:写入初值范围为0000 到FFFFH,其中0000为最大值,代表 65536。
20010.12
可编程定时/计数器8253
5
通道控制寄Leabharlann 器一个通道控制寄存器 CPU通过对控制寄存器的读写,可以分别对 通过对控制寄存器的读写, 通过对控制寄存器的读写 三个计数通道的工作方式进行设置 只能写不能读
20010.12
可编程定时/计数器8253
6
数据总线缓冲器
双向三态的8位数据缓冲器,实现 双向三态的 位数据缓冲器,实现8253和 位数据缓冲器 和 CPU之间的数据接口 之间的数据接口
方式1工作过程 方式 工作过程
门控信号GATE是触发信号,上升沿有效。即开始计数是由 是触发信号, 即开始计数是由GATE的 门控信号 是触发信号 的 上升沿触发的; 上升沿触发的; 触发后,通道计数器开始计数,输出端OUT由高变低; 由高变低; 触发后,通道计数器开始计数,输出端 由高变低 计数器计数到0, 再由低变高。 计数器计数到 ,OUT再由低变高。 再由低变高 PW:输出的负脉冲宽度 ;N:初始计数值,Tclk:CLK端的脉冲周期 : :初始计数值, 端的脉冲周期
计数器选择( 计数器选择(SC1、SC0) 、 )
计数器读/写方式( 计数器读 写方式(RLl、RL0) 写方式 、 )
20010.12
可编程定时/计数器8253
9
计数器的锁存操作
8253一旦初始化后,就不需要CPU参与而自动计数。为 一旦初始化后,就不需要 参与而自动计数。 一旦初始化后 参与而自动计数 了读出计数值时不干扰实际计数过程, 了读出计数值时不干扰实际计数过程,同时读出的值又 是稳定的,就要求对通道计数器中的计数值进行锁存。 是稳定的,就要求对通道计数器中的计数值进行锁存。 先读取低8位,后读取高8位(不锁存): 10 00H 0F 00H
8253计数器工作在减 状态,每输入一个计数脉冲,计数 计数器工作在减1状态 每输入一个计数脉冲, 计数器工作在减 状态, 器值减1, 器值减 ,当计数器 OUT CLK 16位计数器 计数到零时, 计数到零时,OUT信 信 号有效,通知外设计 号有效, 数器产生溢出 GATE
20010.12 可编程定时/计数器8253 4
硬件锁存暂停计数 软件控制命令锁存
GATE
暂停计数
每一个通道都有一个输出锁存器(16位),平时它的值随通道计数 器的值变化,当向通道写入锁存的控制命令时,它把计数器的现 行值锁存而计数器的计数过程照样进行。这样,CPU读取的是锁 存器中的值。当重新写入一个命令字或CPU读取计数值后,计数 通道会自动解除锁存状态。
20010.12
可编程定时/计数器8253
11
8253的工作方式 的工作方式
方式0——计数结束中断方式 计数结束中断方式 方式 方式1——可编程序的单独负脉冲 方式 可编程序的单独负脉冲 方式2——速率发生器 方式 速率发生器 方式3——方波发生器 方式 方波发生器 方式4——软件触发方式 方式 软件触发方式 方式5——硬件触发方式 方式 硬件触发方式
PW=N×Tclk = ×
20010.12
可编程定时/计数器8253
15
车辆统计
不同车辆间隔T3不 能太小;(>PW) 同一车辆的不同车 厢间距离不能太大; (<PW)
20010.12
可编程定时/计数器8253
16
方式2——速率发生器 速率发生器 方式
方式2是一个可编程的分频电路,它把输入信号 方式 是一个可编程的分频电路,它把输入信号CLK分频 是一个可编程的分频电路 分频 后以脉冲的形式由OUT输出,而分频系数就是用户事先对 输出, 后以脉冲的形式由 输出 通道计数器写入的初始计数值 初始为高电平) 工作方式 (OUT初始为高电平) 初始为高电平
可编程定时/ 可编程定时/计 数器8253 数器8253
苗付友
mfy@
8253作用 作用
定时
软件定时:让机器执行一段程序,安排循环来实现定时, 软件定时:让机器执行一段程序,安排循环来实现定时, 容易实现,定时时间调整方便,定时精确,占用了CPU 容易实现,定时时间调整方便,定时精确,占用了 资源,降低了CPU的利用率。 的利用率。 资源,降低了 的利用率 硬件定时:可编程定时/计数硬件芯片 定时值、 计数硬件芯片, 硬件定时:可编程定时 计数硬件芯片,定时值、定时范 围可以很容易的由软件改变,具有使用灵活、 围可以很容易的由软件改变,具有使用灵活、功能较强 等特点。 等特点。
3个计数通道 个计数通道 通道控制寄存器 数据总线缓冲器 读/写控制电路
20010.12 可编程定时/计数器8253 3
计数通道
通道0、通道 和通道 和通道2 通道 、通道1和通道 CLK:计数器的脉冲输入端,GATE: 计数器的门控 :计数器的脉冲输入端, 信号, 计数器的输出信号, 信号,OUT: 计数器的输出信号,一般与计数溢出 有关。 有关。 工作原理: 工作原理:
方式2定时波形图 方式 定时波形图
20010.12
可编程定时/计数器8253
18
方式3——方波发生器 方波发生器 方式
工作方式: 工作方式:
当控制字写入控制寄存器后,输出端 变高。 当控制字写入控制寄存器后,输出端OUT变高。 变高 当计数初值写入通道, 为高电平时计数器开始计数, 当计数初值写入通道,且GATE为高电平时计数器开始计数,OUT 为高电平时计数器开始计数 保持高电平。 保持高电平。 若计数初值n为偶数 则当计数值减到n/ 时 输出端OUT变为低 为偶数, 若计数初值 为偶数,则当计数值减到 /2时,输出端 变为低 电平。 低电平一直保持到计数值减为0, 电平。然后此 低电平一直保持到计数值减为 ,OUT再次变为高电 再次变为高电 平。
GATE门为 ,计数器才能工作,对CLK 门为1,计数器才能工作, 门为 端上的脉冲进行计数; 端上的脉冲进行计数; 当计数器“减”计数到1时,输出端由 当计数器“ 计数到 时 高变低,再经过一个CLK周期,即计 周期, 高变低,再经过一个 周期 数器计数到0时 输出端OUT又跳变 数器计数到 时,输出端 又跳变 为高。所以方式2输出周期性负脉冲信 为高。所以方式 输出周期性负脉冲信 其宽度固定为一个CLK周期; 周期; 号,其宽度固定为一个 周期 当计数器的值减为0时 当计数器的值减为 时,自动重新装入 计数初值, 计数初值,实现循环计数
20010.12
14
方式1——可编程序的单独负脉冲 可编程序的单独负脉冲 方式
单稳电路
在输入的激励下产生固定宽度脉冲的电路, 在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低 于规定的最小宽度的脉冲后, 于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽 度的脉冲。 度的脉冲。 8253的方式 就是一个可编程单稳电路 的方式1就是一个可编程单稳电路 的方式
20010.12
可编程定时/计数器8253
13
INT 8086 家庭厨房系统 …… MOV AL,10011010B ;置8255A方式控制字 ;置8255A方式控制字 OUT 8255控制口,AL 8255控制口,AL MOV AL,00H ;8255A置位/复位控制字,使PC0=0 8255A置位/复位控制字, PC0= OUT 8255控制口,AL 8255控制口,AL MOV AL, 00110000B ;置8253通道0方式控制字30H ;置8253通道0方式控制字30H OUT 8253控制口,AL 8253控制口,AL MOV AL,40H AL, ;置8253通道0时间常数, ;置8253通道0时间常数, OUT 通道0端口,AL 通道0端口,AL ; 第一次写初始计数值的低8位, 第一次写初始计数值的低 位 MOV AL,38H AL, ; 第二次写高8位。3840H=14400秒=4小时 第二次写高 位 秒 小时 OUT 通道0端口,AL 通道0端口,AL …… 中断程序中有关程序段如下: …… MOV AL,00000001B ;8255置位/复位控制字,使PC0=1 8255置位/复位控制字,使PC0= OUT 8255控制口,AL 8255控制口,AL …… 可编程定时/计数器8253