东北大学中荷学院微机原理课件第八章

上传人:子 文档编号:54264349 上传时间:2018-09-10 格式:PPT 页数:30 大小:263KB
返回 下载 相关 举报
东北大学中荷学院微机原理课件第八章_第1页
第1页 / 共30页
东北大学中荷学院微机原理课件第八章_第2页
第2页 / 共30页
东北大学中荷学院微机原理课件第八章_第3页
第3页 / 共30页
东北大学中荷学院微机原理课件第八章_第4页
第4页 / 共30页
东北大学中荷学院微机原理课件第八章_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《东北大学中荷学院微机原理课件第八章》由会员分享,可在线阅读,更多相关《东北大学中荷学院微机原理课件第八章(30页珍藏版)》请在金锄头文库上搜索。

1、1,外部引线及内部结构,DB,D7-D0,8253,A1,A0,WR,RD,CS,通道2,通道1,通道0,CLK0 GATE0 OUT0,CLK1 GATE1 OUT1,CLK1 GATE1 OUT1,A1 A0,IOW IOR 片选信号,2,外部引线及内部结构,连接系统端的主要引线: D7D0 CS RD WR A1,A0 用于选择四个编址部件之一,A1 A0 选 择 0 0 计数通道0 0 1 计数通道1 1 0 计数通道2 1 1 控制寄存器,模式设置控制字,3,BCD位:计数初值的格式=1:BCD码格式,0999=0:二进制格式,0FFFFH M2、M1、M0:模式选择0 0 0 模式

2、00 0 1 模式1 1 0 模式2 1 1 模式31 0 0 模式41 0 1 模式5,模式设置控制字,RW1和RW0:读/写指示位00:对计数器进行锁存操作,是当前计数值在输出锁存器中锁定,以便读出01:只读/写低8位10:只读/写高8位11:先读/写低8位,再读/写高8位 SC1和SC2:选择计数器00:计数器001:计数器110:计数器211:读出控制字的标识码,4,读出控制字,D7、D6和D0:D7D6=11为读出控制字,D0必须为0 COUNT位:如D5为0,则将所选计数器的当前值进行锁存 STATUS位:如D4为0,则将所选计数器的状态进行锁存 D3、D2、D1:对应于计数器2,

3、、1、0.可用一个锁存命令同时锁存多个计数器的计数值,也可用一个锁存命令锁存某个计数器的计数值和状态,但不能一次锁存多个计数器的状态。,5,8254的状态寄存器和状态字,D7位:表示OUT端的状态=1:表示OUT端为高电平=0:表示OUT端为低电平 D6位:表示初值是否已经装入计数器=0:表示初值已经装入计数器=1:表示没有装入 D5D0:与模式控制字的对应位含义相同,6,8253/8254的编程命令,要遵守的原则: 对计数器设置初始值前必须先写控制字 初始值设置时,要符合控制字中的格式规定,即只写低位字节还是只写高位字节,或高低位字节都写,控制字中一旦规定,具体初始值设定时就要一致 要读取计

4、数器的当前值和状态字,必须用控制字先锁定,才能读取,7,8253/8254的编程命令,写入命令:针对控制寄存器 读出命令:针对计数器和状态寄存器(8254有状态寄存器) 控制寄存器和状态寄存器共用同一个端口地址,8,写入命令,设置控制字命令:计数器工作之前,设置工作模式和计数格式 设置初值命令:8位或16位 锁存命令:读取计数值时,先进行锁存当CPU读取锁定值后,自动解锁,9,读出命令,读取计数器当前值 读取状态寄存器(8254) 用于了解OUT端的电平,以及初值设置是否有效,10,例:读取计数器2的当前计数值。计数器的四个端口地址为70H、72H、74H、76H,MOV AL,1101100

5、0B ;对计数器2发锁存命令,锁存当前计数值 OUT 76H,AL ;76H为控制口地址 IN AL,74H ;读取计数器2的读取值,74H为计数器2的地址 下面程序对8254读取状态字和计数值: MOV AL,11000010B ;计数器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位 MOV BH,AL ;BX中为计数器0的当前计

6、数值,11,12,定时/计数的工作过程,1. 设置8253的工作方式2. 设置计数初值到初值寄存器3. 第一个CLK信号使初值寄存器的内容置入计数寄存器4. 以后每来一个CLK信号,计数寄存器减1 5. 减到0时,OUT端输出一特殊波形的信号 注:以上计数过程中还受到GATE信号的控制,13,二、计数启动方式,软件启动过程硬件启动过程,GATE端保持为高电平 写入计数初值后的第2个 CLK脉冲的下降沿开始计数,GATE端有一个上升沿 对应CLK脉冲的下降沿开始计数,程序指令启动软件启动 外部电路信号启动硬件启动,各种工作模式遵守的原则,写入控制字时,所有的控制逻辑电路立即复位,OUT进入初始电

7、平(高或低) 初值写入后,要经过一个时钟的上升沿和一个下降沿,计数部件才开始计数。 在时钟脉冲CLK的上升沿时,门控信号GATE被采样 在时钟脉冲打的下降沿,计数器做减1计数。,14,15,三、工作模式,模式0计数结束中断 模式1可编程的单稳态触发器 模式2分频器 模式3方波发生器 模式4软件触发的选通信号发生器 模式5硬件触发的选通信号发生器,模式0计数结束产生中断,电平触发,输出一个上升沿跳变。 写入控制字后以低电平作为初始电平,写入计数初值并受到触发后,开始计数,计数到0时,输出端变为高电平 当GATE=1时,计数进行;否则,计数停止。计数过程中GATE变为0,那么OUT的低电平将会延长

8、相应的长度 计数到0时,不会自动装入初值重复计数,除非重新写入初值,16,模式1可编程的单稳态触发器,用上升沿触发,触发一次,输出一个宽度为N个时钟周期的负脉冲 写入控制字后,以高电平触发,写入初值并受到触发后,输出端OUT变为低电平,并在计数到达0以前一直维持低电平。计数到0时,输出端OUT变为高电平,形成N个时钟宽度的负脉冲 触发以后,GATE为低电平也不会影响计数 触发可重复进行。计数结束后,如有触发信号,可重复进行。不必重新写入初值。 在计数期间,有写入新的计数初值,当前计数不受影响,如果又来一个触发信号,则按新的计数初值进行。,17,模式2分频器,既可以电平触发,又可以用上升沿触发,

9、重复输出宽度为1个时钟脉冲的负脉冲 写入控制字后,以高电平作为初始电平,写入初始值并受到触发后,计数。减到1时,OUT变为0,输出一个负脉冲,宽度为一个时钟 计数初值N,输出端用N个时钟周期作为一个周期,当GATE=1时,周而复始地重复,成为一个分频器 在计数期间,如写入新的计数初值,那么输出端OUT端不受影响。计数到0后,按新的初值进行计数 可用软件同步,也可用硬件同步,18,模式3方波发生器,即可用电平触发,又可用上升沿触发,输出重复的方波或矩形波 写入控制字后,以高电平位初始电平,写入初值并受到触发后,做减一计数,当计数到一半时,输出变为低电平,到终值时,又变为高电平。当N为偶数时,输出

10、为完全对称的方波当N为奇数时,输出矩形波 GATE=1时,计数进行;GATE=0时,计数停止 计数过程中,如写入新的初值,那么,不影响当前输出周期,此后,再按新值开始计数,19,模式4软件触发的选通信号发生器,用电平触发,输出单一的负脉冲 写入控制字后,以高电平为初始信号,写入初值并受到触发后,开始计数。减为0时,输出为一个时钟周期的负脉冲。 GATE=1时,进行计数;GATE=0时,计数停止 如计数时写入新的计数值,那么,计数器将立刻按新的初值作减1计数。,20,模式5硬件触发的选通信号发生器,上升沿触发,输出单一的负脉冲 写入控制字后,以高电平为初始电平,在写入初值并受到触发后,开始做减1

11、计算,计数到0时,输出宽度位1个时钟周期的负脉冲。 如在计数过程中,GATE端又来上升沿触发,则将重新获得计数初值,并做减1计数,直到减为0,输出负脉冲 如在计数过程中,写入新的初值,在再受触发过情况下,将按新的计数初值开始计数,21,22,与系统的连接示意图,CLK,GATE,OUT,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,高位地址 A15-A2,8253,共三组,8253占用4个接口地址:计数器0计数器1计数器2控制寄存器,(决定8253的基地址),23,初始化程序流程,写控制字,写计数值低8位,写计数值高8位,*,非必须,写入顺序: 可按计数器分

12、别写入控制字和初值。 也可先写所有计数器控制字,再写入它们的初值,24,8253应用举例,采用8253作定时/计数器,其接口地址为0120H0123H。 输入8253的时钟频率为2MHz。 计数器0: 每10ms输出1个CLK脉冲宽的负脉冲计数器1: 产生10KHz的连续方波信号 计数器2: 启动计数5ms后OUT输出高电平。 画线路连接图,并编写初始化程序。,25,8253应用举例(续),确定计数初值:CNT0: 10ms/0.5us = 20000CNT1: 2MHz/10KHz = 200CNT2: 5ms/0.5us = 10000 确定控制字:CNT0:方式2,16位计数值 00 1

13、1 010 0CNT1:方式3,低8位计数值 01 01 011 0CNT2:方式0, 16位计数值 10 11 000 0,26,8253应用举例(续),CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,2MHz,OUT0,OUT2,?,线路连接图:,27,8253应用举例 初始化程序,CNT0: MOV DX, 0123H MOV AL, 34H OUT DX, AL MOV DX, 0120H MOV AX, 20000 OUT DX, AL,MOV AL, AH

14、 OUT DX, AL CNT1: CNT2:,28,*如何读出当前计数值,第1种方法在计数过程中读计数值 先锁存当前计数值,再用两条输入指令将16位计数值读出。 第2种方法停止计数器再读 用GATE信号使计数器停止,再规定RL1和RL0的读写格式,然后读出。,29,*扩展定时/计数范围,当定时长度不够时,可把2个或3个计数通道串联起来使用,甚至可把多个8253串联起来使用。例如:CLK频率为1MHz,要求在OUT1端产生频率1Hz的脉冲。这时可将计数器0、1串联,工作方式都均为方式3,计数初值均为1000。连接方法见下页。,30,扩展定时/计数范围,8253,OUT1,GATE1,CLK1,OUT0,GATE0,CLK0,+5V,+5V,1MHz,1KHz,1Hz,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号