- 1、本文档共186页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与测控接口技术;第八章 接口技术;本章教学目标;第一节 定时器/计数器;定时与计数;定时器的工作原理;定时方法;可编程定时/计数器 8253/8254;8253/8254外部特性及内部结构;8253/8254外部特性;2. 8253/8254与外设的信号(每个通道独立)
CLK0~2(In):计数时钟输入, 计数脉冲;
GATE0~2(In):门控信号, 禁止与启动T/C工作;
OUT0~2(Out):计数器输出, 表示定时或计数已到。
;8253/8254内部结构;计数通道内部逻辑框图;8253/8254外部特性及内部结构;工作方式控制字;写操作规则;例:读计数器1的当前计数值
timer equ 40h
mov al,
; 01计数器1, 00计数器1锁存, 000方式0, 二进计数
out timer + 3, al ; 写入控制字
mov al,
out timer + 3, al ; 写入控制字
in al, timer + 1 ; 读计数器1低字节
mov bl, al
in al, timer + 1 ; 读计数器1高字节
mov bh, al;工作方式控制字;8253/8254工作方式;20;方式0;方式0;方式0 – GATE门控信号;方式0 –改变计数初值;方式0 – 如何重复运行;方式0;称为可重复触发的单稳态触发器。负脉冲宽度可控制。 (硬件触发方式,即GATE门控信号)
;写入控制字后, OUT输出为“1”,即高电平;
写入计数初值后,计数器不会立即开始计数;
GATE的 后,在下一个CLK的 ,置计数初值到CE,OUT输出为“0”,开始减1计数;
计数为“0”后,OUT输出为“1”,高电平;
输出负脉冲的宽度为计数初值N个CLK脉冲周期;
当计数到 “0”后,可再次由GATE上升沿触发,输出同样宽度的负脉冲,无需再次写入计数初值;
GATE信号:该单稳电路的外部硬件触发信号
计数初值:暂态时间常数;方式1 – GATE门控信号;方式1 –改变计数初值; 在方式1,当CPU输出控制字后(WR的上升沿),OUT输出变为高电平(若原为高电平,则保持为高电平);
在CPU写入计数初值后,计数器并不开始计数,直至门控信号GATE上升沿(即门控触发信号)出现,并在其下一个CLK脉冲的下降沿,CR的内容送入CE,同时使OUT输出变为低电平,然后开始对随后的CLK脉冲进行减1计数。
在计数过程中,OUT一直维持为低电平,直至计数到“0” 时,OUT输出变为高电平。因此,由于GATE上升沿的触发,使OUT输出端产生一个宽度为N个CLK周期的负脉冲。
此后,若再次由GATE上升沿触发,则输出再次产生一个同样宽度的负脉冲。;称为可重复触发的单稳态触发器。负脉冲宽度可控制。 (硬件触发方式,即GATE门控信号)
;方式2 – 波特率发生器;方式2 – 波特率发生器;计数过程可由GATE信号控制。当GATE信号变低时,立即暂停当前计数;当GATE信号上升沿,CE重新赋值,开始计数;GATE高电平使能计数。;方式2 – 改变计数初值;方式3 – 方波发生器;方式3 – 方波发生器;计数初值为奇数,若N为奇数,则OUT输出将有(N+1)/2个CLK周期为高电平,(N-1)/2个CLK周期为低电平,输出为基本对称的矩形波,其周期也为N个CLK周期。;方式3 – GATE门控信号;方式4 – 软件触发;方式4 – GATE门控信号;方式4 – 改变计数初值;方式5 – 硬件触发;方式5 – GATE门控信号;方式5 – 改变计数初值;各种工作方式输出波形比较;各工作方式比较;8253/8254应用电路;解:
由电路图知,8254工作于方式2(时钟发生器);
2. 计数初值CR=1ms/500ns=2000;
初始化程序段如下:
mov dx, 243h ;注意用dx存放I/O口地址
mov al, 01 11 010 0b ; (或74h)
out dx, al ; 注意用out,不要用mov指令
sub dx, 2 ; 或用 mov dx, 241h
mov ax, 2000
out dx, al
mov al,
文档评论(0)