微机原理课件 第7章 定时计数技术-8253

上传人:清晨86****784 文档编号:260545087 上传时间:2022-02-28 格式:PPT 页数:50 大小:862KB
返回 下载 相关 举报
微机原理课件 第7章 定时计数技术-8253_第1页
第1页 / 共50页
微机原理课件 第7章 定时计数技术-8253_第2页
第2页 / 共50页
微机原理课件 第7章 定时计数技术-8253_第3页
第3页 / 共50页
微机原理课件 第7章 定时计数技术-8253_第4页
第4页 / 共50页
微机原理课件 第7章 定时计数技术-8253_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《微机原理课件 第7章 定时计数技术-8253》由会员分享,可在线阅读,更多相关《微机原理课件 第7章 定时计数技术-8253(50页珍藏版)》请在金锄头文库上搜索。

1、第7章 定时计数技术第7章 定时计数技术v7.1 定时基本概念v7.2 可编程计数器/定时器8253 7.2.1 外部特性与内部编程结构 7.2.2 8253控制字格式 7.2.3 8253的工作模式v7.3 8253应用举例 8.3.1 计数器/定时器 8253的初始化 8.3.2 时钟程序v本章小结v本章习题*v学习目的 了解定时基本概念 熟悉可编程计数器/定时器8253的外部特性 熟悉可编程计数器/定时器8253工作模式 熟悉可编程计数器/定时器8253初始化*第7章定时计数技术v重点与难点 8253的外部特性 8253工作模式 8253初始化*第7章定时计数技术v定时/计数 日时钟-实

2、时钟;定时采样 生产线上零件统计、车流量统计v 微机中的定时方法 软件定时延迟子程序短时延时,不需要外围设备;CPU等待延时增加开销,降低CPU效率,受主机频率的影响,通用性差等。 硬件定时采用定时/计数器或单稳延时电路产生定时或延时。不占CPU时间,定时准确且时间长,不受主机频率的影响,使用灵活,通用性好。7.1 定时基本概念例7.1:软件定时的例子,编写一个软件定时程序,要求定时20ms.假设:8086的时钟=8MHz, 一个时钟周期T=1/8MHz=0.125us延时20ms,执行PUSHF,POPF指令:需要循环次数:N=20000/(12+14+17)*0.125 =37209参考程

3、序:MOVCX,37209PUSHF;时钟数:14TPOPF;时钟数:12TLOOP;时钟数:175T7.1 定时基本概念误差修正:(15+12+19)*0.125=5.75ms写成子程序:DELAY: PUSHCX MOVCX, 37209 L: PUSHF POPF LOOPL POP CX RETPUSH CX ;15TPOP CX ;12TRET ;19T7.1 定时基本概念主要程序片段LP:CALL DELAYMOVDL,30HMOVAH,02H;DOS调用,显示一个字符INT21H LOOPLPMOVAH,4CHINT21H DELAYPROC NEAR;软件延时子程序PUSHAX

4、MOVCX,0FFFFHL: PUSHFPOPFLOOPL DO: POPAXRETDELAY ENDP7.1 定时基本概念v定时计数器82537.2 可编程计数器/定时器8253v定时计数器82537.2 可编程计数器/定时器82531.1.外部特性外部特性v定时计数器82537.2.1 基本功能和内部结构内部结构框图CLKi:不大于2MHZv定时计数器82531).数据总线缓冲器(8位) 往计数器设置计数初值; 从计数器读取计数值; 往控制寄存器设置控制字。2).读/写逻辑电路 A1 A0:端口选择 0 0:通道0(0号计数器) 0 1:通道1(1号计数器) 1 0:通道2(2号计数器)

5、1 1:控制字寄存器7.2.1 基本功能和内部结构v定时计数器82533).控制寄存器(8位) 接收CPU送来的控制字,用来选择计数器和工作 方式,只能写不能读。4).计数器: 三个独立通道: 计数器0, 计数器1, 计数器2 每个计数器包含: 计数初值寄存器(16位,65536个数,64KB) 减一寄存器(16位) 当前计数初值锁存器(16位)7.2.1 基本功能和内部结构v定时计数器82538253GATE0 OUT0 CLK05V8088CPU1KHzD07译码地址M/IOCSWRRDA0A1A0A1WRRD7.2.1 基本功能和内部结构7.2.2 8253的引脚信号8086控制寄存器存

6、放控制字计数初值寄存器存放计数初值或定时常数减一计数器输出锁存器2 2、82538253定时器原理定时器原理读写控制地址控制片选控制控制寄存器三个独立通道脉冲输入门控信号输出7.2.2 8253的引脚信号v思考 8253有几个定时通道? 8253每个计数通道与外设接口有哪些信号线,每个信号的用途是什么? 定时 /计数器芯片Intel 8253占用几个端口地址?各个端口分别对应什么?7.2 可编程计数器/定时器8253v8253工作特点 1)门脉冲控制时钟输入; 2)用门脉冲来重新启动计数; 3)用门脉冲停止计数; 4)单一计数; 5)循环计数.7.2 可编程计数器/定时器82533.3.计数初

7、值计数初值 计数初值n =时钟频率fc/输出频率fout =定时时间Tout/时钟脉冲周期Tc4.4.编程命令编程命令 方式命令字 对8253初始化7.2 可编程计数器/定时器82537.2.3 8253控制字格式 SC1 SC0 RW1 RW0 M2 M1 M0 BCD1-计数值为BCD码格式0-计数值为二进制格式M2 M1 M0 模式选择 0 0 0 模式0 0 0 1 模式1 0 1 0 模式2 0 1 1 模式3 1 0 0 模式4 1 0 1 模式50 0-对计数器进行锁存0 1-只读/写低8位字节 1 0-只读/写高8位字节1 1-先读/写低8位字节, 再读/写高8位字节.0 0-

8、选计数器00 1-选计数器11 0-选计数器21 1-无意义8253初始化方法:设置控制字;确定计数初值。例7.2:使2号定时器,工作在方式3,计数初值=533H,二进制计数.试写出8253初始化程序段。已知8253的端口地址:40H,41H,42H,43HMOV AL,10110110B ;2号定时器,方式3OUT 43H,ALMOV AX,0533H OUT 42H,AL ;2号数据口 MOV AL,AHOUT 42H,AL读当前计数值:先写锁存控制字,再读计数值例7.3: 计数器1已经初始化为8位二进制计数方式,要求读出并检查1号计数器的当前值是否全为”1”。已知8253的端口地址:40

9、H,41H,42H,43HL: MOV AL,01000000B ;1号计数器锁存命令OUT 43H,ALIN AL,41H ;读1号计数器计数值 CMP AL,0FFHJNE LHLT 7.2.4 8253的工作模式v方式0计数结束产生中断 一次定时或计数,重写初值,启动新一轮的计数 v方式1可编程的单脉冲(单稳)触发器 GATE边沿触发,启动新一轮计数v方式2分频器(速度波发生器) 具有计数初值重装能力v方式3方波发生器 具有计数初值重装能力 v方式4软件触发的选通信号发生器 一次定时,重写初值,启动新一轮的计数 v方式5硬件触发的选通信号发生器 GATE边沿触发新一轮计数方式0计数结束产

10、生中断(一次定时或计数,若重新计数,则需重写初值,启动新一轮的计数)例7.4:使1号定时器工作在方式0,计数初值 0FF5H,二进制计数.试写出8253初始化程序段。已知8253端口地址:40H,41H,42H,43HMOV AL,01110000B ;1号定时器,方式0OUT 43H,ALMOV AX,0FF5H OUT 41H,AL ; 1号数据口 MOV AL,AHOUT 41H,AL 7.2.4 8253的工作模式高方式1单脉冲触发器(GATE边沿触发,硬件触发,启动新一轮计数)方式2-分频器(具有计数初值自动重装能力)3方式3-方波发生器(具有计数初值自动重装能力) 由OUT指令对C

11、R置初值触发!例7.5: 使2号定时器,工作在方式3,计数初值N=1000H, 二进制计数.试写出8253初始化程序段. 8253端口地址: 40H,41H,42H,43HMOV AL,10100110B ;2号定时器,方式3OUT 43H,ALMOV AX,1000HOUT 42H,ALMOV AL,AHOUT 42H,AL ;送2号数据口高8位,低8位自动为0 7.2.4 8253的工作模式方式4-软件触发的选通信号发生器方式5-硬件触发的选通信号发生器提问:vv82538253有几种工作方式?主要区别在哪?有几种工作方式?主要区别在哪?vv什么是软件触发?什么是硬件触发?什么是软件触发?

12、什么是硬件触发?vv可重装初值的工作方式是哪些?可重装初值的工作方式是哪些?方式2,4,5波形相同,均输出一个CLK负脉冲。方式1,5工作方式同(硬件触发),波形不同。方式0,2,3,4在写入计数值后开始计数;1,5还需外部触发。只有方式2,3是连续计数,其它需重启。 7.2.4 8253的工作模式v置控制字和计数初值。已知:CLK的频率fclk与定时的时间Tout计数初值: N =定时时间Tout/时钟脉冲周期Tclk =时钟频率fclk/输出频率fout = fclk Tout 7.38253应用举例例7.6:设8253的fclk=1MHZ,最大计数初值为N=65536,则:一个定时器最大

13、定时时间: Tmax= N/fclk=65536/106 =0.065536s 例7.7 设某应用系统中,系统提供一个频率为10kHz 的时钟信号,要求每隔100ms采集一次数据。在系统中, 采用8253定时器0来实现这一要求。将8253芯片的CLK0 接到系统的10kHz时钟上,OUT0输出接到CPU的中断请 求线上,8253的端口地址为210H213H,如图7.13所示。7.38253的一般应用(1)定时器工作在方式2 (2)确定计数初值已知=10kHz,则=0.1ms,计数初值:n=/=100ms/0.1ms=1000=03E8H7.38253的一般应用MOV DX,213HMOV AL

14、,34H;计数器0,16位计数,方式2,二进制计数OUT DX,AL;写入方式控制字到控制字寄存器MOV DX ,210HMOV AL,0E8H ;计数初值低8位OUT DX,AL;写入计数初值低8位到计数器0MOV AL,03H;计数初值高8位OUT DX,AL;写入计数初值高8位到计数器07.38253的一般应用例7.8:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5 ms产生一个脉冲,定时器0每5s产生一个脉冲。2). 将定时器1的CLK1接2MHZ时钟,计数初值:3).将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:1). 一

15、个定时器的最大定时时间: 65536/(2*106)=0.032768 s=32.768ms地址译码CPUD7D0AB8253两个定时器串连使用7.38253的一般应用v8253初始化程序:MOV AL,00110100B ;0号定时器,方式2OUT 43H,ALMOV AX,1000OUT 40H,ALMOV AL,AHOUT 40H,AL MOV AL,01110100B ;1号定时器,方式2OUT 43H,ALMOV AX,10000OUT 41H,ALMOV AL,AHOUT 41H,AL究竟如何执行得到计数?通过时序,电路控制例8.11利用PC机的硬件定时8253编制稳定延时5秒的定

16、时程序。(1)分析8253定时器0工作于方式3,外部提供一个时钟作为CLK信号,频率f=1.1931816MHz。定时器0输出方波的频率:fout=1.1931816/65536=18.2Hz输出方波的周期Tout=1/18.2=54.945ms可用55945ms作基本计时单位.1天=24*60*60*1000ms/54.945=1573040(计时单位)=001800B0H同理:1小时=65543(计时单位)1分钟=1092(计时单位)1秒=18.2(计时单位)系统提供1CH中断,作为用户引用定时器中断的中断类型码。7.3.28253在微机系统中的应用(2)设计 要取得计时单位,利用BIOS功能调用INT 1AH/00H ,可以获 得计时单位(中断次数)。 现在我们要取得5秒定时,需要 5000/54.945=91个计时单位。用INT 21H/02H模拟显示5秒的 变化,为简单起见,在屏幕上以5秒间隔从0到9循环显示。 参考程序如下: DATA SEGMENTSED DB 0 DATA ENDS STACK SEGMENT STACK DW 64 DUP(0) STACK ENDS

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

当前位置:首页 > 高等教育 > 大学课件

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