收藏 分享(赏)

汇编语言与接口技术课件-h7-2-8254.ppt

上传人:天天快乐 文档编号:778503 上传时间:2018-04-23 格式:PPT 页数:64 大小:981.50KB
下载 相关 举报
汇编语言与接口技术课件-h7-2-8254.ppt_第1页
第1页 / 共64页
汇编语言与接口技术课件-h7-2-8254.ppt_第2页
第2页 / 共64页
汇编语言与接口技术课件-h7-2-8254.ppt_第3页
第3页 / 共64页
汇编语言与接口技术课件-h7-2-8254.ppt_第4页
第4页 / 共64页
汇编语言与接口技术课件-h7-2-8254.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、72 可编程定时器/计数器8254,在计算机系统或其控制系统中,经常要用到定时信号,如: 实时时钟,以实现定时控制和处理(定时中断、定时检测、定时扫描等); 系统日历时钟的计时; 喇叭的声源; 使用计数器对外部事件计数。,实现定时的方法: 软件 根据需要设计一个延时子程序,借助指令的执行时间和循环次数,需对指令作严密的计算和精确的测试, 优点是节省硬件。缺点是占用微处理器,拼凑时间麻烦。 硬件 使用可编程计数器/定时器。与MPU并行工作,功能强,使用灵活,价格便宜,广泛应用。 (另有不可编程的硬件定时,如555,外接R、C作定时部件,可改变其值使定时在一定范围内改变,但硬件做好后不可改变。),

2、Inter公司的8254是在微机系统中实现定时和计数功能的外围电路。 8254可用于事件计数、延时时间指示器、可编程单脉冲产生器、频率发生器等。 8254的通用性强,几乎适用于任何一种微处理器组成的系统中。,721 8254的主要功能 单一5V电源。 1一片上有3个独立的16位计数器通道。 2每个计数器都可以按照二进制或二一十进制计数。 3每个计数器的最大输入频率10MHz。 4每个通道有6种工作方式,可由程序设置和改变。 5所有的输入输出都与TTL兼容。,1,7.2.2 8254的内部结构及引脚,数据总线缓冲器,读/写逻辑,控制字寄存器,计数器0号,计数器1号,计数器2号,CLK0,GATE

3、0,OUT0,CLK1,GATE1,OUT1,CLK2,GATE2,OUT2,CS,A1,A0,WR,RD,内部数据总线,8,D0 D7,CPU所有对8254的读写信息均通过此处传输,寄存CPU对其初始化以及读写命令的控制字,GATE信号用于启动和停止计数器的工作,计数器对这个脉冲减1计数,计数到0时输出,CS A1 A0 选择端口 0 0 0 计数器0 0 0 1 计数器1 0 1 0 计数器2 0 1 1控制字寄存器,Atuo play,A1 A0 选择端口地址 0 0 计数器0 0 1 计数器1 可读写 1 0 计数器2 1 1 控制字寄存器,只能写 (需写三次,靠D7D6区分),GAT

4、E:门控脉冲输入端,控制计数器工作的一个外部信号。低时通常禁止,高时(上升沿或高电平)允许计数器工作。可用GATE信号启动和停止计数器的工作。 OUT:输出端。计数到“0”时输出,波形取决于工作方式。 CLK:时钟脉冲或计数脉冲输入端。计数器对这个脉冲减1计数。,问题:定时器?计数器? 若是均匀、连续、周期精确的脉冲信号,则输出也精确、分频的定时。,问题:定时器?计数器? 若虽周期精确,但关心的只是脉冲的数量,非脉冲的间隔计数器。 周期不精确计数器。,结论:8254 工作的实质是用计数方式实现计数和定时。,计数器0 2: 三个完全相同且独立的计数器/定时器通道。 每个通道均包含: 一个16位的

5、减法计数器, 一个16位计数初值寄存器, 一个16位计数值输出锁存器, 控制和状态寄存器。 通道可作为16位或8位计数器使用。,每个计数器通道都有3个外部引脚。 每个通道都在输入脉冲CLK控制下按二进制或二一十进制(BCD)方式,从计数初值开始减1计数。当计数初值减到0时,从OUT输出端输出一信号。 在计数过程中,计数器受到门控信号GATE的控制。 计数器的输入与输出以及门控信号之间的关系,取决于工作方式。,723 8254编程命令 开机后,计数通道的状态是不定的,当使用时必需对其初始化编程。 编程命令有两类: 一类是写入命令,包括写入控制字,写入计数初值和锁存命令; 另一类是读出命令,包括读

6、出当前计数值和状态信息。,8254的编程流程如下: 写入控制字 写入计数初值 计数通道开始计数 如果需要读取某个计数通道的当前计数值,则发送锁存命令 读取某个计数通道的计数值和状态信息 如为软件触发计数器方式,可根据需要,再次写入计数初值,起动计数器方式工作。,18254控制字(A1A011) 控制字用来选择计数器、设定该计数器的工作方式和计数方式。,0 0 选择计数器00 1 选择计数器11 0 选择计数器21 1 读回命令,0 0 计数器锁存命令0 1 只读/写低字节1 0 只读/写高字节1 1 先读/写低字节 后读/写高字节,0 0 0 方式 0 0 0 1 方式 1 1 0 方式 2

7、1 1 方式 3 1 0 0 方式 4 1 0 1 方式 5,1= BCD计数,4位十进制0= 二进制计数器,16位,最大计数值是0000H(代表65536D或10000D),初值的范围为0000HFFFFH或0000H9999H。,2写计数初值 所有计数器的控制字写入同一地址单元( A1A011 ,由D7D6来区分)。 各自的计数值写到各自的地址单元中。 1)同一计数器先写控制字后写初始值(但不一定紧跟,有些方式一写计数值就启动)。 2)初值按控制字要求写。 3)所有方式都可在计数过程中随时改写计数值(必须按照控制字所确定的格式)。,3锁存命令(控制字中RW1 RW0=00) 锁存命令是配合

8、读出命令使用的。 在读计数值时,必须先锁存后读数,避免读到不确定的值。 读取后,锁存器自动解除锁定,继续跟随减法计数器变化。 计数器0的锁存命令为00H; 计数器1的锁存命令为40H; 计数器2的锁存命令为80H。,4读计数值/状态字 1)读回命令(控制字中SC1SC0=11) 该命令可锁存全部3个通道的当前计数值和状态信息。,0 = 锁存选中计数器的计数值,0 =锁存选中计数器的状态,1= 选择计数器 0,1= 选择计数器 1,1= 选择计数器 2,当D5D4同时为0时,读某个计数器,第一次输入的是状态字节,第二次是锁存的计数值。,2)状态字 (读某个计数器),1 = OUT引脚逻辑 10

9、= OUT引脚逻辑 0,1 = 空计数值 0 = 计数值有效,与8254控制字一致,7. 2.4 8254工作方式 可编程选择6种工作方式。其中2种定时器工作方式,4种计数器工作方式。输出波形与工作方式有关。 所有工作方式都遵守下面几条基本规则: 1当控制字写入某计数通道时,计数初值寄存器清零,复位内部逻辑电路,输出端OUT进入初始状态 (高电平或者低电平)。其状态改变与门控信号GATE无关。,2写计数初值时,在WR信号的上升沿,将初始值写入计数初值寄存器,在WR信号上升沿后的下一个CLK脉冲下降沿,才将计数初值由计数初值寄存器写入减法计数器,以后在每一个时钟脉冲CLK的下降沿作减1计数。 3

10、在时钟脉冲CLK的上升沿时,采样门控信号GATE。不同工作方式中,门控信号的触发方式不同:电平触发和上升沿触发(8254内部有边沿触发器来检测门控脉冲的上升沿)。,以下工作方式举例中, 使用计数通道0, 二进制计数, 只写低8位LSB(Least Significant Byte)。 一个时钟脉冲包括上升沿和下降沿,且8254的输出端波形变化、将计数初值送到减法计数器、减法计数器作减1操作都是在时钟脉冲下降沿进行的。,1方式0计数结束产生中断 可用于事件计数。 例7.9 要使计数器0工作在方式0,计数初值是4,8254端口地址为40H43H,则初始化程序为:MOV AL, 10H ;00010

11、000BOUT 43H, ALMOV AL, 04HOUT 40H, AL,在方式0,当控制字CW(Control Word)写入控制字寄存器,OUT输出端变低。 GATE信号为电平触发方式。 在写入计数初值后,通道开始计数,当减1计数到“0”时,OUT输出变高。,方式0的时序图 正常工作时序: GATE信号的影响:(电平控制) 计数过程中 改变计数值: (立即有效),主要特点: 1)为软件触发方式(靠写入计数初值启动计数器工作),计数期间一直保持低电平,当计数到0时,输出保持为高电平,计数结束不恢复计数初值重新计数。 2)如果计数初值为N,在门控GATE一直保持高电平的条件下,输出端OUT要

12、在初始值写入后再过N+1个时钟,才变为高电平。,3)GATE电平控制。门控GATE=1时,减1计数,GATE变为0,则停止计数。 4)在计数过程中改变计数值是立即有效的。 实际应用中,常将计数结束后的上升跳变作为中断信号。可将OUT信号引脚作为中断请求信号,接至中断优先权排队电路或中断向量产生电路。,2方式1 可重复触发的单稳态触发器 这种方式可作为单稳态触发器,由外部触发信号送入GATE引脚,触发计数器工作,其OUT引脚输出单稳态脉冲。 主要特点: 1)为硬件触发计数器工作方式。 2)如果计数初值为N,则输出的单拍脉冲的宽度为N个输入脉冲间隔。,3)方式1为可重触发计数方式,在计数过程中,外

13、部又来一个上升沿触发信号,则在下一个时钟脉冲下降沿,对计数初值重新作减1计数,减为0时,输出端又变为高电平。 4)计数过程中写入新的计数初值,计数过程不受影响。当外部再次触发,则计数器将按新输入的计数值计数,即计数值是下次触发有效。,方式1的时序图 正常工作时序: GATE信号的影响:(上升沿触发),方式1的时序图 计数过程中 改变计数值: (下次触发有效),3方式2 频率发生器 (N(N1)分频计数器 ) 主要特点: 1)方式2为定时器工作方式,不用重新设置计数值,计数通道能够自动连续工作,输出固定频率的脉冲。 2)GATE保持高电平,则写入计数初值即可触发计数器计数称为软件同步。,方式2的

14、时序图 正常工作时序: GATE信号的影响:(电平和边沿) 计数过程中 改变计数值: (下次有效),WRCLKGATEOUT,3)在方式2, GATE为高,正常计数; GATE变低,暂停计数。 GATE上升沿的下一个CLK时钟脉冲,计数初值重新装入减1计数器,开始计数。 即,GATE可用来同步计数器称为硬件同步。 4)在计数过程中改变计数值是下次有效的。,4方式3 方波发生器 除了输出波形不同外,其它控制方式与方式2类似。 方式3输出为方波或者为基本对称的矩形波。若计数值为N(N1),则方式3的输出周期是N个CLK时钟脉冲的方波。,方式3的时序图 正常工作时序(N=偶数):正常工作时序(N=奇

15、数):GATE信号的影响: (电平和边沿),主要特点: 1)当输入控制字以后,输出端OUT立即变为高电平。 在写入初始值后的下一个时钟脉冲,减法计数器获得计数初值N作减2计数。 当N为偶数时,输出为对称的方波;当计数值N为奇数时,输出为矩形波。,2)计数减到0时,重新装入计数值,再减2计数。 3)在计数过程中改变计数值,新计数值将在当前半周结束时装入计数器。,回顾: 1. 8254的工作方式(方式0、1、2、3)。 (GATE、OUT、触发形式) 2. 8254是计数器?定时器? (CLK、GATE、OUT) 2. 对可编程器件,上电后必须先初始化。 8254的初始化(对每一个计数器): 方式

16、控制字 计数初值,7.2.6 8254编程应用 计数初值N的计算: 计数时,计数的个数即为计数初值; 定时时,一般给出要求的定时时间,求计数初值: CLK频率 N CLK频率定时时间 OUT频率,固定频率输入时,一个计数器最长定时时间: Nmax ? Tmax CLK频率 CLK频率 例如:CLK输入频率为5MHZ时,一个计数器最大定时时间为: Tmax 65536 / 5 MHZ 13.1ms,65536,例7.16 某微处理器系统中有一片8254芯片, 通道1完成对外部事件计数,计满250次向MPU发出中断申请, 通道2 输出频率为1kHz的方波, 试编写8254的初始化程序。,由图分析:

17、 8254端口地址为18H、1AH、1CH和1EH。 CLK2= 2MHz (D触发器对4MHz分频), OUT2=1kHz (方波,工作在方式3)。因此,通道2的计数值应为 2MHz / 1kHz = 2000。 两个通道均用BCD计数制。 通道1控制字为01110001B,计数值为250; 通道2控制字为10100111B,计数值为2000。,通道1控制字为01110001B,计数值为250 通道2控制字为10100111B,计数值为2000 MOV AL,71H ;通道1控制字 OUT 1EH,AL MOV AL,50H ;通道1计数值低8位 OUT 1AH,AL MOV AL,02H

18、;通道1计数值高8位 OUT 1AH,AL MOV AL,0A7H ;通道2控制字 OUT 1EH,AL MOV AL,20H ;通道2计数值高8位 OUT 1CH,AL ;8259A初始化(略),例7.17 8254 通道 2 接有一发光二极管,要使发光二极管以点亮2s、熄灭2s的间隔工作,8254各通道端口地址分别为FFE9HFFEFH。试编程完成上述任务。图7.30 级连定时应用,分析:根据要求,8254通道2应输出一个占空比为1:1,周期为4s的方波。 通道1的CLK1输入时钟周期为1s,其输出最大定时时间为 1s65536 65.5ms 结论:使用一个通道达不到定时时间4s的要求。

19、方法:软件?硬件?,硬件级联扩充定时时间的方法: 将通道1的输出OUT1作为通道2的输入脉冲。 CLK1= 1MHz的脉冲,若让8254的通道1工作于脉冲发生器方式,且选定OUT1输出脉冲周期为4ms,则通道1的计数值为 ?,4000(1MHz /4ms)。,CLK1=OUT1,周期为4ms的脉冲,要求OUT2的波形为方波且周期为4s,故通道2的计数值为 ? 通道1的控制字0110101B 通道2的控制字1010111B,1000(4s /4ms)。,由以上分析编程如下: MODEL TINY CODE STARTUP MOV DX,0FFEFH ;控制字端口地址 MOV AL,65H ;通道

20、1控制字 OUT DX,AL MOV AL,0A7H ;通道2控制字 OUT DX,AL ,MOV DX,0FFEBH ;通道1端口地址 MOV AL,40H ;通道1计数值高8位 OUT DX,AL MOV DX,0FFEDH ;通道 2端口地址 MOV AL,10H ;通道2计数值高 8位 OUT DX,AL EXIT END,作业:利用8254的计数器2控制扬声器,演奏一首乐曲。 提示:(1)输出方波;(2)方波的频率,即声音音调的频率;唱名的频率(Hz):(3)节拍(延时一段时间);(4)乐曲组织成数据表。,5方式4 软件触发选通 主要特点: 1)写入控制字后,输出立即为高电平。 计数

21、到0后,输出一个CLK脉冲宽度的负脉冲。 方式4时,靠写入初始值这个软件操作来触发计数器工作称为软件触发选通( GATE为高时)。,2)GATE=1时,进行计数,GATE=0时,停止计数 。 3)在计数过程中又写入新的计数值,则在下一个时钟脉冲,将此计数值写入减法计数器,按新的计数值开始作减1计数。 这种通过写入新的计数值使计数器重新计数的方式,称作软件可重触发(立即有效)。,方式4的时序图 正常工作时序: GATE信号的影响:(电平控制) 计数过程中 改变计数值:(立即有效),例7.13 要使计数器1工作在方式4,BCD计数,计数值为10000,8254端口地址为40H43H,则初始化程序为

22、: MOV AL,69H ;设置控制字 OUT 43H,AL ;写入控制字寄存器 MOV AL,00H ;设置计数值 OUT 41H,AL ;写入计数器1的高8位,6方式5 硬件触发选通 主要特点: 1)写入控制字后,输出端OUT变为高电平。 写入计数值后,必须有GATE的上升沿来到,在下一个CLK时钟脉冲将计数初值送到减法计数器。 减法计数器减1计数到0时,输出一个CLK宽度的负脉冲。 这种通过硬件电路产生的门控信号(上升沿)触发计数硬件触发选通。,方式5的时序图 正常工作时序: GATE信号的影响:(边沿触发计数),方式5的时序图 计数过程中 改变计数值: (下次触发有效),2)在计数过程

23、中,GATE端又来一个上升沿触发计数器,则在下一个时钟脉冲后,减法计数器将重新获得计数初值,并且减1计数到0为止。即方式5也是硬件可重触发的。 3)在计数过程中写入新的计数值,不影响当前输出周期。只有当GATE门控脉冲再次产生,才会触发计数器按新的计数初值开始计数(下一次有效)。,7 8254工作方式总结 8254的6种工作方式,但大类可分为计数器工作和定时器工作两种。 1)工作方式分类 方式0、1、4、5为计数器工作方式,方式2、3为定时器方式。 2)触发方式 方式0、4为软件触发,即写入计数初值后触发计数器计数;方式1、5为硬件触发,即写入计数初值,还需要GATE门控输入信号触发计数器计数

24、。,3)输出波形 8254的6种工作方式中方式2、4、5的输出波形是相同的,都是宽度为一个CLK时钟脉冲的负脉冲;方式0、1输出宽度为N个CLK时钟脉冲的低电平;方式3输出连续方波/矩形波。在6种方式中,只有方式0,在写入控制字后输出为低。其它5种方式,都是在写入控制字后输出为高。计数初值与输出波形关系见表7.10。 4)门控信号的作用 5)在计数过程中改变计数值 6)计数到0后计数器的状态,例7.15 若要使计数器2工作在方式2,按二进制计数,计数值为1110H,要在计数过程中读取该计数器的计数值。试对其进行初始化编程。 MOV AL,0B4H ;写控制字 OUT 73H,AL MOV AL,10H ;写计数初值 OUT 72H,AL MOV AL,11H OUT 72H,AL ,MOV BH,20H ;延迟 W: DEC BH CMP BH,0 JNZ W MOV AL,80H ;计数器2 锁存命令 OUT 73H,AL IN AL,72H ;读取计数器的计数值 (先低后高) MOV CL,AL IN AL,72H MOV AH,AL MOV AL,CL,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报