第10章 定时计数器8253Word下载.docx
- 文档编号:18236740
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:16
- 大小:347.13KB
第10章 定时计数器8253Word下载.docx
《第10章 定时计数器8253Word下载.docx》由会员分享,可在线阅读,更多相关《第10章 定时计数器8253Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
(3)可编程硬件定时器/计数器
这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。
在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。
Intel8253/8254就是常用的可编程定时/计数器。
8253最高工作频率2.6MHz,8254最高工作频率为10MHz。
计数器/定时器的用处:
①作为中断信号
②输出精确的定时信号
③作为波特率发生器
④实现延迟
二、可编程计数器/定时器的工作原理
计数器/定时器的基本原理图
计数器/定时器可以有下面几种工作模式:
①计数结束产生中断
②可重复触发的单稳态触发器
③分频器
④方波发生器
⑤选通信号发生器
第二节可编程计数器/定时器8253
一、8253的编程结构
3个计数器,每个计数器内部有:
8位的控制寄存器
16位的计数初值寄存器
计数执行部件
输出锁存器
8253的编程结构
二、8253的工作原理
8253的工作原理图
1、计数器0,计数器1,计数器2
计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个计数器都是由一个16位的可预置的减法计数器构成。
每一个计数器都有CLK、GATE、OUT三个引脚。
①每一个计数器都是由一个16位的可预置的减法计数器构成,计数器的初值n由程序预置。
②CLK:
计数脉冲输入端。
每进入一个脉冲,计数器计数值就减1。
③OUT:
脉冲输出端。
当计数器计数值减到“0”时,就从OUT端输出一个信号,输出信号的波形取决于工作方式。
则:
定时时间=时钟周期(T)×
预置的计数器初值(n)
④GATE:
门控信号端,当GATE为低电平时,禁止计数器工作;
当GATE为高电平时,才允许计数器工作。
2、数据总线缓冲器
功能:
①往计数器设置初值
②从计数器读取计数值
③往控制寄存器设置控制字
3、读写逻辑电路
A1、A0对计数器和控制寄存器寻址,A1、A0为:
00----计数器0,01----计数器1,10----计数器2,11----控制器
RD读信号,读取选中计数器的内容(计数值)
WR写信号,向选中的计数器写入计数初值,或向选中控制器写入控制字
CS片选信号,有效表明8253被选中。
4、控制寄存器
在8253初始化时,由CPU写入控制字来设置计数器的工作方式。
特点:
只能写入而不能读出。
三、8253的控制字和编程
1、编程——即对8253初始化
刚接通电源时,8253处于未定义的状态,需用程序将其设置为一个特定的模式,即初始化。
步骤:
①写入控制字;
②写入计数器初值。
注意:
①三个计数器应该分别初始化
②计数器一旦初始化之后,就在设置的模式下进行减1计数
2、控制字的格式
①SC1、SC0:
这两位决定这个控制字是哪一个计数器的控制字
②RL1、RL0:
设置数据读/写格式。
在读取计数值时,可令RL1、RL0=00,先将写控制字时的计数值锁存,然后再读取。
③M2、M1、M0:
设置每个计数器的工作方式。
④BCD:
用于选择每个计数器的计数制。
在二进制计数时,计数初值的范围是0000H~FFFFH,其中0000H是最大值,代表65536。
在BCD码计数时,计数初值的范围中0000~9999,其中,0000是最大值,代表10000。
最大计数为0000,不是FFFFH或9999。
除方式3外,最小值都为1。
四、8253的工作模式
8253的基本规则:
①控制字写入时,进入初始状态
②初值写入后,要经过上升沿和一个下降沿,才开始计数
③在CLK的上升沿被采样
④在CLK下降沿,计数器作减1计数
Intel8253有6种工作方式:
方式0—计数结束后输出由低变高
方式1—可编程序的单拍脉冲
方式2——频率发生器(分频器)
方式3—方波发生器
方式4——软件触发选通
方式5——硬件触发选通
6种工作方式的主要区别是:
1.输出的波形不同(时序图),
2.计数过程中GATE信号对计数操作的影响不同,
3.启动计数器的触发方式不同。
1、模式0——计数结束产生中断(计数结束后输出由低变高)
特点:
当计数到达0时,输出端OUT为高电平
模式0的时序图如下:
注:
CW=10H
①写入控制字后,OUT输出端变为低电平。
当写入计数初值后,计数器开始减1计数。
在计数过程中OUT一直保持为低电平,直到计数到0时,OUT输出变为高电平。
此信号可用于向CPU发出中断请求。
②计数器只计数一遍。
当计数到0时,不恢复计数初值,且输出一直保持为高电平。
只有在写入新的计数值时,OUT才变低,并开始新的计数。
③GATE是门控信号,GATE=1时允许计数,GATE=0时,禁止计数。
在计数过程中,如果GATE=0则计数暂停,当GATE=1后接着计数。
④在计数过程中可改变计数值。
若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。
如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。
如图所示。
2、模式1——可重复触发的单稳态触发器
门控上升沿作为触发信号
是单稳态方式
宽度主要决定于计数值
模式1的时序图如下:
CW=12H
①写入控制字后,输出OUT将保持为高电平,计数由GATE启动。
GATE启动之后,OUT变为低电平,当计数到0时,OUT输出高电平,从而在OUT端输出一个负脉冲,负脉冲的宽度为n个(计数初值)CLK的脉冲宽度。
②当计数到0后,不用送计数值,可再次由GATE脉冲启动,输出同样宽度的单拍脉冲。
③在计数过程中,可改变计数初值,此时计数过程不受影响。
如果再次触发启动,则计数器将按新输入的计数值计数。
④在计数未到0时,如果GATE再次启动,则计数初值将重新装入计数器,并重新开始计数。
3、模式2——分频器(频率发生器)
是N分频的计数器
正脉冲为N-1个时钟脉冲宽度
负脉冲为1个时钟脉冲宽度
模式2的时序图:
CW=14H
①写入控制字后,输出将变为高电平。
写入计数值后,计数立即开始。
在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。
经过一个CLK周期,输出恢复为高,且计数器开始重新计数。
因此,它能够连续工作,输出固定频率的脉冲。
②如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。
因此,相当于对输入脉冲的N分频。
通过对N赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。
③计数过程可由门控脉冲控制。
当GATE=0时,暂停计数;
当GATE变高自动恢复计数初值,重新开始计数。
④在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。
但在计数到1时输出变低,经过一个CLK周期后输出又变高,计数器将按新的计数值计数。
4、模式3——方波发生器
和模式2类似,但输出为方波或基本对称的矩形波
模式3的时序图:
CW=16H
①输出为周期性的方波。
若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。
②写入控制字后,输出将变为高电平.当写入计数初值后,就开始计数,输出仍为高电平;
当计数到初值一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。
③若计数值为偶数,则输出对称方波。
如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N—1)/2个CLK脉冲期间输出为低电平。
④GATE信号能使计数过程重新开始。
GATE=1允许计数,GATE=0禁止计数。
停止后OUT将立即变高开,当GATE再次变高以后,计数器将重新装入计数初值,重新开始计数。
5、模式4——软件触发的选通信号发生器
当计数到0时,输出变为低电平,并持续一个时钟周期变为高电平。
模式4的时序图:
CW=18H
①写入控制字后,输出为高电平。
写入计数值后立即开始计数(相当于软件触发启动),当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。
只有在输入新的计数值后,才能开始新的计数。
②当GATE=1时,允许计数,而GATE=0,禁止计数。
GATE信号不影响输出。
③在计数过程中,如果改变计数值,则按新计数值重新开始计数。
如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值中开始计数。
6、模式5——硬件触发的选通信号发生器
用门控上升沿触发即硬件触发
计数到0时,输出端一个宽度为1个时钟周期的负脉冲,然后又自动变为高电平。
模式5的时序图:
CW=1AH
在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。
当计数到0时,输出一个CLK周期的负脉冲,并停止计数。
当门控脉冲再次触发时才能再计数。
②在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。
③如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。
当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。
两个注意点:
①时钟周期和输出周期的区别
②输出波形在时钟下降沿产生电平变化
例:
假设一个8253在某系统中的端口地址40H~43H,如果要将计数器0设置为设置为工作方式3,计数初值为3060H,采用二进制计数法,则初始化方法如下:
控制字:
计数器0,写两个字节,方式3,二进制计数
则控制字为:
00110110
MOVAL,36H;
设置控制字00110110
OUT43H,AL;
写入控制寄存器
MOVAX,3060H;
设置计数值
OUT40H,AL;
写低8位至计数器0
MOVAL,AH
OUT40H,AL;
写高8位至计数器0
已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT3产生一个最大的负脉冲。
分析:
OUT0:
初值=10us*8MHz=80方式3
OUT1:
初值=8MHz/2KHz=4000方式2
OUT2:
初值=0,二进制计数方式1
;
CTC0
MOVDX,706H;
控制端口地址
MOVAL,00010110B;
CTC0控制字
OUTDX,AL
MOVDX,700H;
CTC0口地址
MOVAL,80;
CTC0初值
CTC1
MOVAL,01110100B;
CTC1控制字
MOVDX,702H;
CTC1口地址
MOVAX,4000;
CTC1初值
OUTDX,AL;
先写低字节
MOVAL,AH;
取高字节
后写高字节
CTC2
MOVAL,10110010B;
CTC2控制字
MOVDX,704H;
CTC2口地址
MOVAL,0;
CTC2初值
五、8253与PC总线的连接
六、在IBMPC/XT机中的应用
在IBMPC/XT机中,8253主要提供系统时钟中断、动态RAM的刷新定时及喇叭发声控制等功能。
8253的初始化是在计算机启动时由BIOS完成的。
下图是8253在IBMPC/XT机的应用的示意图
从时钟发生器来的频率2.386364MHZ经二分频后作为8253三个计数器的时钟输入,8253三个计数器的端口地址为40H—43H。
(1)计数器0用于定时中断(约55ms)
MOVAL,36H;
计数器0,方式3,写两个字节,二进制计数
OUT43H,AL;
控制字送控制字寄存器
MOVAL,0;
计数值为最大值
OUT40H,AL;
写低8位
写高8位
(2)计数器1用于定时(15μs)DMA请求
MOVAL,54H;
计数器1,方式2,只写低8位,二进制计数
OUT43,AL
MOVAL,12H;
初值为18
OUT41H,AL
(3)计数器3用于产生约900HZ的方波送至扬声器
MOVAL,B6H;
计数器3,方式3,写两字节,二进制
OUT43H,AL
MOVAX,533H;
计数初值为533H
OUT42H,AL;
七、Intel8254简介
Intel8254是Intel8253的改进型,它们在操作方式及引脚排列上完全相同。
相比8253,8254主要改进的内容是:
1.计数频率高
8254的计数频率可由直流至6MHz,8254-2可高达10MHz。
而8253最高只能达到2.6MHz。
2.有读回命令(写入至控制字寄存器)
如果控制字寄存器D7=1,D6=1,D0=0,即为8254的读回命令,其格式如图9.12所示。
这个命令可以使三个计数器的计数值一次锁存,而在8253则需要写入三个命令。
图9.128254的读回命令
另外,在8254中每个计数器都有一个状态字,当要读取时,也可由读回命令进行锁存。
其状态状态字的格式如图9.13所示。
图9138254的状态字格式
其中,D0~D5与方式控制字对应位的意义相同。
即为写入此计数器的控制字的相应部分。
D7表示OUT引脚的输出状态。
D6表示计数初值是否已装入减1计数器,D6=0表示已经装入,可以读取计数器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 定时计数器8253 10 定时 计数器 8253