ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:28.40KB ,
资源ID:11078107      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11078107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8253的工作方式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8253的工作方式.docx

1、8253的工作方式8253的工作方式1.方式O计数结束产生中断8253用作计数器时一般工作在方式 O。所谓计数结束产生中断,是指在计数值减到 O时,输出端(OUT产生的输出 信 号可作为中断申请信号,要求 CPU进行相应的处理。方式 0 有如下特点:1当控制字写进控制字寄存器确定了方式 0时,计数器的输出(OUT端口)保持低电平,一直保持到计数值减 到Oo2计数初值装入计数器之后,在门控 GATEf言号为高电平时计数器开始减1计数。当计数器减到 0时输出端OUT才由低 变高,此高电平输出一直保持到该计数器装入新的计数值或 再次写入方式0控制字为止。若要使用中断,可以计数到 0的输出信号向CPU

2、发出中断请求,申请中断。3GATE计数控制门,方式 0的计数过程可由GATE控制暂 停,即GATE=I时,允许计数;GATE=C时,停止计 数。GATE 信号的变化不影响输出 OUT端 口的状态。4计数过程中,可重新装入计数初值。如果在计数过程中, 重新写入某一计数初值,则在写完新计数值后,计数器将从 该值重新开始作减1计数。2.方式 1 可编程的单拍负脉冲 可编程的单拍负脉冲又称为单稳态输出方式,简称单稳定 时。方式 1的特点是:1CPU写入控制字后,计数器输出 OUT端为高电平作为起始电平,在写入计数值后计数器并不开始计数 (不管此时 GATE 是高电平还是低电平),而要由外部门控 GAT

3、E脉冲上升沿启动,并在上升沿之后的下一个 CLK输 入脉冲的下降沿开 始计数。2GATE上升沿启动计数的同时,使输出 OUT变低,每来一个计数脉冲,计数器作减一计数,直到计数减为 0时,OUT输出端再变为高电平。 OUT端输出的单拍负脉冲的宽度为计 数初值乘以CLK端脉冲周期。设计数初值为 N则单拍脉冲 宽度为N个CLK时钟脉冲周期。3如果在计数器未减到 0时,GATE又来一触发脉冲,则由 下一个时钟脉冲开始,计数器将从初始值重新作 减 1计数。当减至 0时,输出端又变为高电平。这样,使输出脉冲宽度 延长。3.方式 2 分频脉冲发生器方式2是一种具有自动予置计数初值 N的脉冲发生器。从OUT

4、端可以输出连续脉冲信号,脉冲宽度等于时钟脉冲周期,而计数初值N决定了输出端两个负脉冲之间的宽度即输出脉冲 周期。方式2也叫N分频器,因为输出脉冲为输 入脉冲的N 分频,即出现N个输入脉冲才输出一个脉冲。方式 2有如下特点:1N分频计数器,这种方式是输出对输入脉冲按计数器计数 初值N分频后的连续脉冲。2当CPU写入控制字后OUT端输出为高电平作为起始电平,在写入计数值N后将立即自动开始对输入脉冲 CLK计数,输 出端仍一直为高;当计数器减到 1时,输出变低,计数器减 到0时又变为高,计数器重新按已写入的计数 值N继续计数,周而复始,在 OUT端输出一个N分频脉冲,其正脉搏冲 宽度为(N-1 )个

5、输入脉冲时钟周期(是 N个CLK时钟脉冲 周期之和),而负脉冲输出宽度(持续时间)是一个 CLK脉冲周期。3GATE用于控制计数,GATE=I允许计数;GATE=O停止 计数。因此,可以用 GATE来使计数器同步。4在方式 2 下,不但高电平的门控信号有效,上升跳变的 门信号也是有效的。4.方式 3 分频方波发生器 方式 3 的特点是:1方式 3 常用于波特率发生器。方式 3 和方式 2 类似。但 输出为方波或近似方波的矩形波。2写入方式 3 控制字后输出为高电平。写入计数值后计数器自动开始对输入 CLK脉冲计数,输出OUT仍保持为高;在计数完成一半时,输出 OUT变为低电平,直到计数器全部完

6、成,输出OUT又变为高电平,并重复上述计数过程 。3若计数值N为偶数时,OUT方波的占空比为1:1 ;若N 为奇数,其占空比为:( N+1)/2:(N-1)/2 即输出分频 波高电平宽度为( N+1)/2 CLK 周期,低电平周期为( N-1) /2 CLK 周期 。5.方式 4 软件触发选通脉冲发生器方式 4是类似于方式 0 的工作方式,计数器是靠置入新的计 数初值这个软件操作来触发计数器工作的,故称为软件触 发。方式 4 有如下特点:1方式 4 是靠写入计数值来进行软件触发的“一次性有效”的选通脉冲发生器。写入控制字后输出端 OUT变为高,并一直保持。在写入计数初值之后开始计数,当计数到

7、0 时 输出端OUT变为低,维持一个 CLK周期后又恢复为 高,并 一直保持为高,直到再次写入计数来进行“软件触发”才能 再次开始。2若GATE=I允许计数;GATE=O停止计数。3方式4的负脉冲输出常作为选通脉冲。6.方式5硬件触发选通脉冲发生器方式5有如下特点:1方式5类似于方式4,所不同的是GATE端输入信号的作 用不同。方式5是硬件触发,是在外部硬件发出门控 信号 后才发生的。2方式5是靠门控脉冲GATE的上升沿来进行触发的选通脉冲发生器。写入控制字后输出端 OUT为高,这是初始电平;写入计数值后计数器并不开始计数,而要由门控脉冲 GATE上升沿触发后才开始计数, 计数到0输出由高变低

8、,一个CLK 时钟周期后又恢复为高,并一直保持,直到下次门控脉冲触发再次开始计数。3在此方式中,计数器可重新触发,在任何时候,当 GATE信号的上升沿到来,将把计数初值重新送入计数器,然后开 始计数过程。8253的控制字1: BCD计数0: 2进制计敢 OoOL方式0 001:方式1X10:方式2 I XII:方式J 100:方式4 计数器锁存,ftCPU读 101:方式3 只读/写计数器低字节 只读/写计数器高寧节先读/写计数辭低字节,后读f写高字节SCi, SCo计数通道选择位。由于8253内部3个计数通 道各有一个8位的控制字寄存器,而这三个控制字寄存器 共 用同一个控制端口地址,所以控

9、制字中设置 SCi,SCo这两位来确定CPU当前发出的控制字是写入哪个计数通道的控 制字寄存器中。具体选择如图.RLi,RLo读/写操作方式位。这两位用来确定对选中的计数通道进行读/写操作方式。当CPU对8253进行16位读 /写操作时,可以只读/写高8位或只读/写低8位,也可以读/ 写16位。读/写16位时,先读/写低8位,后读/写高8位, 具体是哪种操作方式由 RLi,RLo这两位的编码确定。由于8253的数据线只有(D7Do), 一次只能传送8位数据,故 传送16位数据时,要分两次进行。M2, M1, Mo工作方式择位。8253的每个计数通道有 6种不同的工作方式,即方式 O到方式5 ,

10、 M2M1M0这三类就是用来选择具体的工作方式,具体选择如图。BCD 计数方式选择位。8253的每个计数通道有两种计 数方式按二进制计数或按十进制( BCD码)计数。BCD位用来具体确定采用哪种计数方式。例:若选择计数器1,工作在方式3,计数初值为588H ( 2 个字节)采用二进制计数,则其控制字为: 01110110=76H,设控制口地址为 043H,则将该控制字写入控制字寄存器的 指令如下:MoV AL,076HOUT 043H,AL 8253的初始化编程内容:一是首先向控制寄存器写入控 制字,以选定计数通道(三个中之一),规定该计数的工作 方式和计数方式以及计数初值的长度和装入顺序 (

11、初值写入方式);二是向已选定的计数器按控制字的要求 写入计数初值。8253初始化的要求:(1) 对每个计数器,控制字必须写在计数值之前。这是因 为计数器的读/写格式由它的控制字决定。(2) 计数值必须按控制字所规定的格式写入。若控制字规 定只写8位,只需写入一次(8位)计数值即可(规定写低8位则高8位自动置0,规定写高8位则低8位自动置0); 规定写16位时必须写两次,先写低8位,后写高8位。当初 值为0时,也要分两写入,因在二进制计数时,“ 0”表示65336,在 BCD码计数时“ 0” 表示 10000=104。(3) 对所有方式计数器都可以在计数过程中或计数结束后 改变计数值,重写计数值

12、也必须遵守控制字所规定的格式, 并且不会改变当前计数器的工作方式。(4) 计数值不能直接写到减 1计数器中,而只能写入计数值寄存器中,并由写操作 之后的下一个CLK脉冲将计数值寄存器的内容装入减 1计数器开始计数。(5) 初始化编程必须明确各个计数器的控制字和计数值不是写到同一个地址单元。各个计数器的控制字各自独立确 定,但它们都写入同一个端口地址(控制字寄存器)中,各 个计数器的计数值则根据需要独立确定并写入各自 计数器的相应寄存器中。例1:设8086系统中8253的三个计数器的端口地址为 060H, 062H和064H,控制口地址为066H,要求计数器0为方式1, 按BCD计数;计数初值为

13、1800D计数器1为方式0,按二 进制计数;计数初值为 1234H,计数器2为方式3,按二进 制计数;当计数初值为 065H时,试分别写出计数器 0,1, 2的初始化程序。计数器0的初始化:计数O的控制字:00100011B=23HMoV AL 23H ;计数器O的控制字OUT O 66H, AL ;控制字写入 8253的控制器MOV AL 18H ;取计数初值的高 8位,低8位OO可不送OUT O6OH AL ;计数初值送计数器 O端口 计数器1和初始化:计数器1的控制字:O111OOOOB=7OHMOV AL 7OH ;计数器的控制字:方式 O,送高8位和低8 位,二进制计数OUT O66

14、H AL ;控制字写入 8253的控制器MOV AL O34H ;取计数初值的低 8位OUT O62H AL ;计数初值的低 8位,写入计数器1端口MOV AL 12H ;取计数初值的高 8位OUT O62H AL ;计数初值的高8位写入计数器1端口 计数器2的初始化:计数器2的控制字:1OO1O11OB=96HMOV AL 96H ;计数器2的控制字96H:方式3,只送低8 位,二进制计数OUT O66H AL ;控制字写入 8253的控制口MOV AL O56H ;计数初值的低 8位OUT O64H AL ;计数初值的低 8位写入计数器2的端口 例2:要求读出计数器 2的当前计数值,并检查

15、是否为全8253在读取计数器的当前计数值时,必须分两步进行。首先发一锁存命令(即控制字中RLIRLo=00 ,将当前计数 值 锁存到输出锁存器中。第二步执行读操作,即用 IN指令将锁存器中内容读入CPU假设计数初值只有低 8位,设其程序段如下(控制口地址为066H,计数器2的口地址为 064H):KEEP MoV AL 80H ;计数器2的锁存命令OUT 066H AL ;锁存命令写入控制寄存器IN AL,064H ;读输出锁存器中的当前计数值(从计数器 2端口读)CMP AL 0FFH ;比较当前计数值是否为全“ 1”JME KEEP;非全“ 1”继续读HLT ;为全“ 1”暂停 8253的

16、应用举例例1:将8253的计数器1作为5ms定时器,设输入时钟频 率为200kHz,试编写8253的初始化程序。(1)计数初值N计算已知输入时钟CLK频率为200kHz,则时钟周期为T=1f=1200kHz=5 S,于是计数初值 N为:N=5msT=5ms5 S=Iooo。(2) 确定控制字按题意选计数器1,按BCD码计数,工作于方式 0,由于计 数初值N=1000,控制字D5D4应为11,于是8253的控制字 为: 01110001B=71H(3) 选择8253各端口地址设计数器1的端口地址为3F82H,控制口地址为 3F86Ho(4)初始化程序如下MOV AL,71H ;控制字MOV DX

17、,3F68H ;控制口地址OUT DXAL ;控制字送8253控制寄存器MOV DX,3F82H ;计数器1端口地址MOV AL,00 ;将计数初值 N=1000的低8位写入计数器1OUT DX,ALMOV AL,10 ;将N的高8位写入计数器1OUT DX ,AL例2:以8086为CPU的某微机系统中使用了一块 8253芯片, 其通道端口地址为 308H, 30AH,30CH控制口地址为 30EH,3个通道使用同一输入时钟, 频率为2MHz要求完成如下功能:利用计数器O采用硬件触发,输出宽度等于时钟周期的单脉 冲,定时常数为36H;利用计数器1输出频率为2kHz的对称方波; 利用计数器2产生

18、宽度为O. 6ms的单脉冲, 试设计该定时系统硬件电路和初始化程序。(1)硬件电路设计硬件电路设计主要是地址译码电路设计及时 8253与CPU间的连接。根据给定的端口地址可知,地址总线低位部分的AA分别为:AAF11, AA=0000, AAA=IOO111, AO=O, 由它们经译码器译码产生 8253的片选信号 ,8253的数据线DD)必须与系统数据总线的低 8位相连,8253的端口 的选择信号A1AO应连系统地址的 A2A1。根据上 述要求, 译码器应选3-8译码器74LS138。该译码器有3个代码输入 端(G B, A),输入3位代码决定译码信号从 丫。丫7中哪 一个输出,本例中显然应

19、以 丫2输出。(2)初始化编程根据题意要求,对3个通道的工作方式,计数初值确定如下:由 CLKCLK=2MHz可得,时钟周期 T=1f=12MHz=O . 5 S。选计数器O:选择方式5,门控信号GATE应接一正跳变信号, OUT端当计数为O时产生一个宽度等于时钟周期的单脉 冲。计数系数为36,用BCD计数。所以,计数器 O的控制字应为 00011011B=1BH选计数器1:选择方式3, GATE按+5V, CLK1=2MHZ俞出方波 频率为2kHz,所以,计数常数 N=2MHz2kHz=1000,采用BCD 计数,于是计数器1的控制字为:01110111B=77H选计数器2:选择方式1,以构

20、成一个单稳态电路,输出脉冲宽度由计数常数 N2决定,计数常数N2=600 s/0 . 5 s=1200,采用BCD计数,于是计数器 2 的控制字为:10110011B=B3H根据以上分析可得3个计数通道的初始化程序如下。计数通道0的初始化程序:MoV DX , 30EH ; 8253 的控制 口地址MoV AL , 1BH ;计数通道0的控制字,低8位, 方式5, BCD计数OUT DX , AL ;控制字写入控制口MOV DX , 308H ;计数器0的端口地址MOV AL , 036H ;计数初值的低 8位OUT DX , AL ;低字节写入计数器 0端口计数通道1的初始化程序:MOV D

21、X , 30EH ; 8253 的控制 口地址MOV AL, 77H ;计数通道1的控制字,先写低字节,后写高字节,方式 3, BCD计数OUT DX,AL ;控制字写入控制口MOV DX,30AH ;计数通道1的端口地址MOV AL,00H ;计数初值的低字节OUT DX,AL ;低字节写入计数通道 1MOV AL,10D ;计数初值的高字节OUT DX,AL ;高字节写入计数通道 1计数通道2的初始化程序MOV DX,30EH ; 8253的控制口地址MOVAL,B3H ;计数通道2的控制字,先写低字节,后写高字节,方式 1,BCD计数OUT DX,AL ;控制字写入控制口MOV DX,30CH ;计数通道的端口地址MOV AL,00H ;计数初值的低字节OUT DX,AL ;低字节写入计数通道MOV AL,12D ;计数初值的高字节OUT DX,AL ;高字节写入计数通道 2计数通道2初始化程序:MOV AL,B0H ;计数通道2的控制字OUT 05FH,AL ;控制字写入控制器MOV AL,068H ;计数初值的低8位,AL ;计数初值的低8位写入计数通OUT05DH道2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1