第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
可编程的定时器计数器8253

8253占用4个接口 地址: 计数器0 计数器1 计数器2 控制寄存器
8253
DB
IOW IOR
D0~D7 WR RD CLK
共三组
GATE OUT
接外设
A1
A0 高位地址 A15-A2 译码器
A1
A0 CS
(决定8253的I/O地址)
18
第九章:可编程的定时器/计数器8253——8253 8253计数器的启动方式
8253 PIT
19 18 17
9
10 11 12
16
15 14 13
GATE 2
CLK 1 GATE 1 OUT 1
14
第九章:可编程的定时器/计数器8253——8253 8253的引脚功能
(1)与系统总线连接的引脚 D7~D0:数据线,双 向三态,接数据总线; CS#:片选输入,有效 时选中芯片,接译码器; RD#:读出计数值,接 CB的读信号; WR#:写入命令或初值, 接CB的写信号; A1,A0:地址输入,接 AB的任两位,用于选择 A1 内部四个端口之一。
门控信号GATE端的上跳变触发计数,可重复触发。 OUT输出可看作单稳态负脉冲,若下一次GATE上升沿提前到 达,则OUT端负脉冲拉宽为两次计数过程之和。 计数过程中写入新初值不影响本次计数。 可通过改变计数初值来产生不同输出宽度的负脉冲。
24
第九章:可编程的定时器/计数器8253——8253 8253的工作方式——方式2
16
第九章:可编程的定时器/计数器8253——8253 8253的引脚功能
(2)与计数通道连接的引脚的主要引线
CLKn:时钟脉冲,输入,
计数器的定时基准,用于 输入定时基准脉冲或计数 脉冲。
8253
DB
IOW IOR
D0~D7 WR RD CLK
共三组
GATE OUT
接外设
A1
A0 高位地址 A15-A2 译码器
A1
A0 CS
(决定8253的I/O地址)
18
第九章:可编程的定时器/计数器8253——8253 8253计数器的启动方式
8253 PIT
19 18 17
9
10 11 12
16
15 14 13
GATE 2
CLK 1 GATE 1 OUT 1
14
第九章:可编程的定时器/计数器8253——8253 8253的引脚功能
(1)与系统总线连接的引脚 D7~D0:数据线,双 向三态,接数据总线; CS#:片选输入,有效 时选中芯片,接译码器; RD#:读出计数值,接 CB的读信号; WR#:写入命令或初值, 接CB的写信号; A1,A0:地址输入,接 AB的任两位,用于选择 A1 内部四个端口之一。
门控信号GATE端的上跳变触发计数,可重复触发。 OUT输出可看作单稳态负脉冲,若下一次GATE上升沿提前到 达,则OUT端负脉冲拉宽为两次计数过程之和。 计数过程中写入新初值不影响本次计数。 可通过改变计数初值来产生不同输出宽度的负脉冲。
24
第九章:可编程的定时器/计数器8253——8253 8253的工作方式——方式2
16
第九章:可编程的定时器/计数器8253——8253 8253的引脚功能
(2)与计数通道连接的引脚的主要引线
CLKn:时钟脉冲,输入,
计数器的定时基准,用于 输入定时基准脉冲或计数 脉冲。
微机第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信号推动喇 叭发音。
第9章 计数器/定时器8253

WR
CW
N=3
CLK
8253方式1 三种情况时序波形:
GATE OUT 3 WR CW N=3 2 1 0
CLK GATE OUT 3 WR CW N=2 2 3 2 1 0
N=3
CLK GATE OUT 2 1 0 0 3 2
3.方式2(周期脉冲发生器)
• 可产生周期性的负脉冲信号,负脉冲宽度为一个时钟周期。 • 写入控制字后,OUT端变为高电平,若GATE为高电平,当写 入计数初值后,在下一个CLK的下降沿将计数初值寄存器内 容装入减1计数寄存器,并开始减1计数。当减1计数寄存器 的值为1时,OUT端输出低电平;减1计数寄存器回0时OUT端 输出高电平,并开始一个新的计数过程。 • 在减1计数寄存器未减到1时,GATE信号由高变低,则停止计 数。但当GATE由低变高时,则重新将计数初值寄存器内容装 入减1计数寄存器,并重新开始计数。 • GATE信号保持高电平,但在计数过程中重新写入计数初值, 则当正在计数的一轮结束并输出一个CLK周期的负脉冲后, 将以新的初值进行计数。
9 可编程计数器/定时器8253
一.定时与计数问题的提出 在微机系统或智能化仪器仪表的工作过程中,经常需 要使系统处于定时工作状态,或者对外部过程进行计数。 定时或计数的工作实质均体现为对脉冲信号的计数,如果 计数的对象是标准的内部时钟信号,由于其周期恒定,故 计数值就恒定地对应于一定的时间,这一过程即为定时, 如果计数的对象是与外部过程相对应的脉冲信号(周期可 以不相等),则此时即为计数。 在控制系统与测量系统中,定时与计数老师不可缺少 的,如定时中断、定时检测、定时扫描、电子测量中的计 数、分频等。常用的定时或延时控制,有三种主要方法: 软件定时、不可编程的硬件定时,可编程的硬件定时计数 器。
第九章_计数(定时)器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及其应用概要PPT课件
3f0h通道0方式3bcd初值1234h138253825314825382531582538253写入初值后clk经历上升下降后才将初值送入计数器执行部件16825382531782538253gate的上升沿才触使初值装入并启动计数并使out变低若计数未满再出现gate的上升沿重载初值延长计数时间单稳在规定的时长内初值多个gate信号只被识别一次多个gate信号一个out输出周期18825382531982538253out在最后一个clk周期出现与clk等宽的负脉冲208253825321825382532282538253238253825324825382532582538253载gate上升沿后才启动计数
arsf 发菜
银鱼(WhiteBait)是指鲱鱼苗或小鲱鱼,这种小型的银鱼通常 是在地中海及大西洋捕获。 全年都有供应,但春夏两季时肉质最肥美。
arsf 发菜
生鲜或冷冻鱼都有卖。 白色稍透明,长不过 3 厘米左右,通体无鳞,一向作为整体性食 物应用即(内脏、头、翅等均不去掉,整体食用),而整体性食 物目前作为一种天然的“长寿食品”为国际营养学会所确认。
arsf 发菜
欢它,不惜以重金购买馈赠亲朋或制作佳肴。
arsf 发菜
arsf 发菜
入肝、肾、膀胱经。 具有清热消滞、软坚化痰、理肠除垢、解毒滋补、通便利尿、化 湿去腻、散结和降血压的功效。
arsf 发菜
据中医书籍中介绍,发菜对甲状腺肿大,淋巴结核、脚气病、鼻 出血、缺铁性贫血、高血压和妇科病等都有一定的疗效。 贴士因发菜跟“发财”谐音,港、澳、台同胞和海外侨胞特别喜
方式3——方波发生器
8253计数/定时器——工作方式
方式3——方波发生器
写入工作方式字
arsf 发菜
银鱼(WhiteBait)是指鲱鱼苗或小鲱鱼,这种小型的银鱼通常 是在地中海及大西洋捕获。 全年都有供应,但春夏两季时肉质最肥美。
arsf 发菜
生鲜或冷冻鱼都有卖。 白色稍透明,长不过 3 厘米左右,通体无鳞,一向作为整体性食 物应用即(内脏、头、翅等均不去掉,整体食用),而整体性食 物目前作为一种天然的“长寿食品”为国际营养学会所确认。
arsf 发菜
欢它,不惜以重金购买馈赠亲朋或制作佳肴。
arsf 发菜
arsf 发菜
入肝、肾、膀胱经。 具有清热消滞、软坚化痰、理肠除垢、解毒滋补、通便利尿、化 湿去腻、散结和降血压的功效。
arsf 发菜
据中医书籍中介绍,发菜对甲状腺肿大,淋巴结核、脚气病、鼻 出血、缺铁性贫血、高血压和妇科病等都有一定的疗效。 贴士因发菜跟“发财”谐音,港、澳、台同胞和海外侨胞特别喜
方式3——方波发生器
8253计数/定时器——工作方式
方式3——方波发生器
写入工作方式字
第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 信号再由低变高,可再产生一个单脉冲,相当一 个单稳态。
第9章_计数器定时器8253
模式2的时序图 模式 的时序图 :
模式3——方波发生器 模式 方波发生器
模式3的主要特点: 模式 的主要特点: 的主要特点 和模式2类似 类似, 和模式 类似,但输出为方波或基本对称 的矩形波。 的矩形波。 为偶数, 当N为偶数,输出端的高低电平持续时间 为偶数 相等各为N/2时钟,当N为奇数,输出端 时钟, 为奇数, 相等各为 时钟 为奇数 的高低电平持续时间分别为(N+ 的高低电平持续时间分别为 +1)/2时 时 时钟。 钟、(N-1)/2时钟。 - 时钟
7.3 计数器/定时器 计数器 定时器8253 定时器
7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 可编程计数器/定时器概述 可编程计数器 定时器概述 8253的编程结构和引脚信号 的编程结构和引脚信号 8253的工作模式 的工作模式 8253的应用编程 的应用编程 实验分析
7.3.1 可编程计数器 定时器概述 可编程计数器/定时器概述
M2 0 0 X X 1 1
M1 0 0 1 1 0 0
M0 0 模式 模式0 1 模式 模式1 0 模式 模式2 1 模式 模式3 0 模式 模式4 1 模式 模式5
BCD位 设置计数值格式 位 1:计数值为 :计数值为BCD码格式 码格式 0:计数值为二进制格式 : 计数值即是计数初始寄存器里的值。 计数值即是计数初始寄存器里的值。
模式3的时序图 模式 的时序图 :
7.3.4 8253的应用编程 的应用编程
8253的应用编程就是对 的应用编程就是对8253的初始化, 的初始化, 的应用编程就是对 的初始化 主要包括: 主要包括: (1)设置控制寄存器(即设置工作模式) )设置控制寄存器(即设置工作模式) (2)设置初始寄存器的值。 )设置初始寄存器的值。 初始化规则:先设置控制字、 初始化规则:先设置控制字、后设置计数 器初值。 器初值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
式
0 二进制 1 十进制
后读写高字节100 方式4
101 方式5
控制字写入控制寄存器(A1A0=11)
读出控制字(锁存命令)
D7 D6
D5
D4 D3 D2 D1 D0
1 1 COUNT STATUS CNT2 CNT1 CNT0 0
为 0 , 对 计为数0器,的对计数分器别对应计数器D0必须为0 11 读当出前控值制进字行锁的存状态锁存 2、1、0
9.1 可编程计数器/定时器的工作原理
计数器:计数减为0时,输出一个信号便结束。 定时器:不断产生信号。
计数器/定时器的用处: ① 作为中断信号实现程序的切换; ② 输出精确的定时信号; ③ 作为可编程的波特率发生器; ④ 实现时间延迟。
计数器/定时器的基本原理图
9.2 8253/8254的编程结构和外部信号
态(只对8254)。
模式设置控制字
D7 D6
SC1 SC0
D5 D4
RW1 RW0
D3 D2 D1 D0
M2 M1 M0 BCD
计数器选择:读写格式选择:工作方式选择 计数初值格
00 计数器0 01 计数器1 10 计数器2 11 非法
00 计数器锁存命00令0 方式0 01 只读写低字节001 方式1 10 只读写高字节010 方式2 11 先读写低字节011 方式3
优点:节省硬件 缺点:占用CPU的时间,降低CPU的效率;
需要拼凑延时时间,较麻烦。
(2)硬件方法 使用计数器/定时器
优点:计数时不占用CPU的时间,提高CPU的利用 率;时间延迟准确。
第9章 计数器/定时器和多功能接口芯片
Intel8253/8254为可编程计数器/定时器。 8254为8253的改进型,外部特性和使用方法
(0是计数器的最大初值)
9.5 8253/8254的工作模式
6种工作方式主要有五点不同:
1)启动计数器的触发方式不同; 2)OUT输出波形不同; 3)计数过程中门控信号GATE对计数操作的影响不同; 4)在计数过程中重新写入计数初值对计数过程的影响不同; 5)计数过程结束,减法计数器是否恢复计数初值并自动重复
思考题
• 3 设8253的端口地址为208H~20BH,请编写程序 读取计数器2的当前计数值。
MOV AL,0D8H ;计数器2的锁存命令 MOV DX,20BH ;控制字寄存器端口地址 OUT DX,AL MOV DX,20AH ;计数器2端口地址 IN AL,DX ;读取计数初值低8位 MOV BL,AL ;计数初值低8位存入BL IN AL,DX ;读取计数初值高8位 MOV BH, AL ;计数初值高8位存入BH
写入计数初值
当采用十进制(BCD码)计数时,把计算得到的十进 制计数初值N加上后缀H。
例如:
MOV AL,100H ;计数初值N为十进制数(BCD码)100 OUT Port, AL MOV AX,2567H ;计数初值N为十进制数(BCD码)2567 OUT Port, AL ;先写低8位 MOV AL, AH ;高8位送低8位 OUT Port, AL ;后写高8位
计数过程不同。
(1)模式0——计数结束产生中断
性质:
• 写入控制字,OUT端为低电平,计数初值装入该 计数器后,等待到GATE输入高电平时,计数器开 始递减计数。在整个计数过程中,OUT保持低电 平,当计数器减为0时,OUT输出高电平,并且一 直保持高电平,除非写入新的计数值。
WR CLK GATE
;计数器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位
② 写入命令; 模式设置控制字命令 读出控制字(琐存命令) 设置计数初始值
写入计数初值
选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536
选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000
计数值写入计数器各自的I/O地址
编程结构
状态寄存器
定时器/计数器的工作过程
1. 设置8253\8254的工作方式; 2. 设置计数初值到计数初值寄存器CR; 3. 第一个CLK信号使计数初值寄存器的内容置入
计数执行部件CE; 4. 以后每来一个CLK信号,CE减1; 5. OUT端输出一特殊波形的信号;
注:以上计数过程中还受到GATE信号的控制。
MOV DX, 20BH
;控制字寄存器端口地址
OUT DX, AL ;控制字写入控制字寄存器
MOV DX, 208H ;计数器0端口地址
MOV AL, 00H ;计数初值低8位
OUT DX, AL ;计数初值低8位写入计数器0
MOV AL, 02H ;计数初值高8位
OUT DX, AL ;计数初值高8位写入计数器0
(2)8253/8254的外部信号
DB
D7-D0
A2
A1
A1
A0
IOW
WR
IOR
RD
片选信号
CS
A1A0 00 计数器0
01 计数器1
10 计数器2
11 控制端口、状态端口
CLK0 GATE0
OUT0
CLK1 GATE1
OUT1
CLK2 GATE2
OUT2
通道0 通道1 通道2
9.3 8253/8254的控制字和状态字
3个独立的16位计数器通道; 共用1个控制寄存器和1个状态寄存器(只有8254
有状态寄存器)。 每个计数器有6种工作方式; 按二进制或十进制(BCD码)计数。
(1) 编程结构
3个计数器,每个计数器内部有: 16位的计数初值寄存器CR; 计数执行部件CE:16位的减法计数器; 输出锁存器OL:锁存CE的内容,便于CPU读出 计数值;
OUT
模式0 计数结束中断
①
②③ ④ ⑤
方式0 4
4321 0
③
⑤④计②① 计数结束计数过程数值送入计数器设定计数初值设定工作方式
模式0 计数结束中断
特点:
• 电平触发方式,不自动重复计数。 • 计数过程受GATE控制,GATE=0 暂停计数,
GATE=1 接着计数。 • 计数过程中,如有一个新的计数初值被写入,计数
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
思考题
2 设8253的端口地址为208H~20BH,使用计数器0, 工作于方式4,二进制计数;使用计数器2,工作于 方式5,十进制计数。计数器0和计数器2的计数初 值都等于十进制数值512(0200H),请编写初始化程 序。
MOV AL, 38H ;控制字00111000B,二进制计
数、方式4、计数器0、先写低8位、后写高8位
读取计数值
对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,
然后读取: 向控制I/O地址:给8253/8254写入锁存命令 从计数器I/O地址:读取锁存的计数值
读取计数值,要注意读写格式和计数数制
假设计数器的4个端口地址为70H、72H、74H、76H
第9章 计数器/定时器和多功能
接口芯片
本章重点
8253/8254的编程结构和工作原理 8253/8254控制寄存器的格式和编程命令 8253/8254的6种工作模式及其使用
第9章 计数器/定时器和多功能接口芯片
定时控制在微机系统中极为重要。 定时信号的获得:
(1)软件方法 使用延迟子程序
三个计数器共用一个控制寄存器,可对控制 寄存器写入控制字使三个计数器工作在不同 的模式,控制端口只写。
8254有一个状态寄存器,状态端口只读。 控制端口、状态端口地址——A1A0=11。
(1)8253/8254控制寄存器和控制字
控制字有两大类:
模式设置控制字:设置三个计数器的工作模式; 读出控制字:读取计数器的当前计数值和当前状
写入计数初值
当采用二进制计数时,计数初值N可以写成二进制 形式,也可以写成十进制格式。
例如: MOV AX,0040H ;0040H是16位二进制计数0000000001000000 OUT Port, AL ;先写低8位(Port为端口号) MOV AL, AH OUT Port, AL ;后写高8位
;方法2: 16位计数,只写高8位,低8位自动为0。
MOV DX,203H ;8253控制寄存器
MOV AL,66H ;控制字01100110B
OUT DX,AL
;控制字写入控制字寄存器
MOV DX,201H ;计数器1
MOV AL,30H ;计数初值高8位