实时时钟与计数器定时器接口课件_第1页
实时时钟与计数器定时器接口课件_第2页
实时时钟与计数器定时器接口课件_第3页
实时时钟与计数器定时器接口课件_第4页
实时时钟与计数器定时器接口课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实时时钟与计数器定时器接口1 第第1212章章 实时时钟与计数器实时时钟与计数器/ /定时器接口定时器接口 概述概述 可编程计数器可编程计数器/ /定时器芯片定时器芯片82548254 82548254在在PCPC机中的应用机中的应用 实时时钟与计数器定时器接口2 12.1 定时器和计数器概述 定时控制在微机系统中极为重要定时控制在微机系统中极为重要 定时器定时器由数字电路中的计数电路构成,由数字电路中的计数电路构成, 通过记录高精度晶振脉冲信号的个数,输出通过记录高精度晶振脉冲信号的个数,输出 准确的时间间隔。定时器强调的是精确的时准确的时间间隔。定时器强调的是精确的时 间。间。 实时时钟与

2、计数器定时器接口3 定时举例:定时举例: 一天一天24小时的计时,称为日时钟。小时的计时,称为日时钟。 在监测系统中,对被测点的定时取样。在监测系统中,对被测点的定时取样。 在读键盘时,为去抖,一般延迟一段时间,在读键盘时,为去抖,一般延迟一段时间, 再读。再读。 在微机控制系统中,控制某工序定时启动。在微机控制系统中,控制某工序定时启动。 实时时钟与计数器定时器接口4 计数电路计数电路如果记录外设提供的具有一定随机性如果记录外设提供的具有一定随机性 的脉冲信号时,它主要反映脉冲的个数(进而获知的脉冲信号时,它主要反映脉冲的个数(进而获知 外设的某种状态),常又称为外设的某种状态),常又称为计

3、数器。计数器。 计数举例:计数举例: 对零件和产品的计数;对零件和产品的计数; 对大桥和高速公路上车流量的统计。对大桥和高速公路上车流量的统计。 实时时钟与计数器定时器接口5 定时功能的实现方法 软件延时软件延时是利用是利用CPU每执行一条指令都需要每执行一条指令都需要 几个固定的指令周期的原理,运用软件编程的方式几个固定的指令周期的原理,运用软件编程的方式 进行定时。利用微处理器执行一个延时程序段实现。进行定时。利用微处理器执行一个延时程序段实现。 不可编程的硬件定时不可编程的硬件定时采用分频器、单稳电路采用分频器、单稳电路 或简易定时电路控制定时时间或简易定时电路控制定时时间 可编程的硬件

4、定时可编程的硬件定时软件硬件相结合、用可编软件硬件相结合、用可编 程定时器芯片构成一个方便灵活的定时电路程定时器芯片构成一个方便灵活的定时电路 实时时钟与计数器定时器接口6 12.2 8253/8254定时计数器 3个独立的个独立的16位计数器通道位计数器通道 每个计数器有每个计数器有6种工作方式,按二进制或十进制种工作方式,按二进制或十进制 (BCD码)计数码)计数 每个计数器在开始工作前必须预制时间常数每个计数器在开始工作前必须预制时间常数 每个计数器在工作过程中的当前计数值可被每个计数器在工作过程中的当前计数值可被 CPU读出。(注:时间常数也可在计数过程中更改)读出。(注:时间常数也可

5、在计数过程中更改) 82548254是是82538253的改进型的改进型 实时时钟与计数器定时器接口7 12.2.1 8253/8254的内部结构和引脚 D7D0 计数器0 控制字 寄存器 计数器1 计数器2 内 部 数 据 总 线 数据总线 缓冲器 读写控制 逻辑 RD WR A0 A1 CS CLK 0 GATE 0 OUT 0 CLK 1 GATE 1 OUT 1 CLK 2 GATE 2 OUT 2 实时时钟与计数器定时器接口8 计数器结构示意图 预置寄存器预置寄存器 GATE CLK OUT 减减1计数器计数器 输出锁存器输出锁存器 v计数初值存于计数初值存于预预 置寄存器置寄存器;

6、 v在计数过程中,在计数过程中, 减减1计数器计数器的值不的值不 断递减,而预置寄断递减,而预置寄 存器中的预置不变。存器中的预置不变。 v输出锁存器输出锁存器用于用于 写入锁存命令时,写入锁存命令时, 锁定当前计数值锁定当前计数值 实时时钟与计数器定时器接口9 1 计数器的3个引脚 CLK时钟输入信号时钟输入信号在计数过程中,此引脚上在计数过程中,此引脚上 每输入一个时钟信号(每输入一个时钟信号(下降沿下降沿),计数器的计数值),计数器的计数值 减减1 GATE门控输入信号门控输入信号控制计数器工作,可分控制计数器工作,可分 成成电平控制电平控制和和上升沿控制上升沿控制两种类型两种类型 OU

7、T计数器输出信号计数器输出信号当一次计数过程结束当一次计数过程结束 (计数值减为(计数值减为0),),OUT引脚上将产生一个输出信引脚上将产生一个输出信 号号 实时时钟与计数器定时器接口10 2 与处理器接口 D0 D7数据线数据线 A0 A1地址线地址线 RD*读信号读信号 WR*写信号写信号 CS*片选信号片选信号 缺点:缺点:1. 在在8254上电后初始化之前,其输出信号上电后初始化之前,其输出信号 OUT的电平不确定。的电平不确定。 2. 没有输出比较、输入捕获功能。没有输出比较、输入捕获功能。 实时时钟与计数器定时器接口11 由控制字格式中由控制字格式中SC1,SC0位位 决定属于哪

8、个计数器决定属于哪个计数器 选中控制寄存器选中控制寄存器10110 读输出锁存器读输出锁存器OL当前值当前值01 对计数器寄存器对计数器寄存器CR送初值送初值 选中计数器选中计数器2# 10 010 读输出锁存器读输出锁存器OL当前值当前值01 对计数器寄存器对计数器寄存器CR送初值送初值 选中计数器选中计数器1# 10 100 读输出锁存器读输出锁存器OL当前值当前值01 对计数器寄存器对计数器寄存器CR送初值送初值 选中计数器选中计数器0# 10 000 功功 能能A0A1CSWRRD 实时时钟与计数器定时器接口12 12.2.2 8253/8254的工作方式 82538253有有6 6种

9、工作方式,由种工作方式,由方式控制字方式控制字确定确定 熟悉每种工作方式的特点熟悉每种工作方式的特点才能根据实际应用才能根据实际应用 问题,选择正确的工作方式问题,选择正确的工作方式 不同工作方式的区分点:不同工作方式的区分点: v输出波形输出波形 v计数过程中门控信号的影响计数过程中门控信号的影响 v启动触发方式启动触发方式 实时时钟与计数器定时器接口13 每种工作方式的过程类似:每种工作方式的过程类似: 设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1 1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1 1的计数过程的计数过程

10、 计数过程结束计数过程结束 实时时钟与计数器定时器接口14 方式0 计数结束中断(一次有效) 写入控制字之后,相应的输出信号写入控制字之后,相应的输出信号OUTOUT就开就开 始变成低电平。始变成低电平。 计数器写完计数值时,开始计数。当计数器计数器写完计数值时,开始计数。当计数器 减到零时,减到零时,OUTOUT立即输出高电平。立即输出高电平。 实时时钟与计数器定时器接口15 GATE OUT CLK 03124 4 方式方式0 WR 设设 定定 工工 作作 方方 式式 设设 定定 计计 数数 初初 值值 计计 数数 值值 送送 入入 计计 数数 器器 计计 数数 过过 程程 计计 数数 结

11、结 束束 实时时钟与计数器定时器接口16 方式0 门控信号门控信号GATEGATE位高电平时,计数器工作;为低位高电平时,计数器工作;为低 电平时,计数器停止工作,计数值保持不变。电平时,计数器停止工作,计数值保持不变。 在计数器工作期间,如果重新写入新的计数值,在计数器工作期间,如果重新写入新的计数值, 计数器将按新写入的计数值重新工作。计数器将按新写入的计数值重新工作。 实时时钟与计数器定时器接口17 n=5n=5 CLKCLK OUTOUT WRWR 5 54 43 32 21 1 0 0 82538253的的0 0方式时序波形方式时序波形 WRWR OUTOUT n=9n=9 9 98

12、 8 n=4n=4 4 43 32 21 1 0 0 n=5n=5 WRWR GATEGATE OUTOUT 5 54 43 32 21 1 0 0 4 44 4 实时时钟与计数器定时器接口18 方式1 可编程单稳脉冲 写入计数初值后,计数器并不立即开始工作;写入计数初值后,计数器并不立即开始工作; 等待到等待到GATEGATE上升沿,才开始工作,使输出上升沿,才开始工作,使输出OUTOUT变变 成低电平;成低电平; 直到计数器值减到零后,输出才变高电平。直到计数器值减到零后,输出才变高电平。 计数到计数到0 0,初值自动重置。,初值自动重置。 单稳态触发器单稳态触发器 只有一个稳态,一个触发

13、脉冲使只有一个稳态,一个触发脉冲使 触发器进入暂稳态,经过一段可调的时间间隔后,触发器进入暂稳态,经过一段可调的时间间隔后, 又回到稳态。又回到稳态。 实时时钟与计数器定时器接口19 设设 定定 工工 作作 方方 式式 设设 定定 计计 数数 初初 值值 硬硬 件件 启启 动动 计计 数数 值值 送送 入入 计计 数数 器器 计计 数数 过过 程程 计计 数数 结结 束束 GATE OUT CLK 03124 4 方式方式1 WR 实时时钟与计数器定时器接口20 方式1 在计数器工作期间,当在计数器工作期间,当GATEGATE又出现一个上升沿又出现一个上升沿 时,计数器重新装入原计数初值并重新

14、开始计时,计数器重新装入原计数初值并重新开始计 数。数。 如果工作期间对计数器写入新的计数初值,则如果工作期间对计数器写入新的计数初值,则 要等到当前的计数值计满回零且门控信号再次要等到当前的计数值计满回零且门控信号再次 出现上升沿后,才按新写入的计数初值开始工出现上升沿后,才按新写入的计数初值开始工 作。作。 实时时钟与计数器定时器接口21 8253的的1方式时序波形方式时序波形 OUTOUT 4 43 32 21 1 GATEGATE 4 4 0 0 n=4n=4 CLKCLK GATEGATE WRWR OUTOUT 4 43 32 21 1 0 0 n=3n=3 WRWR n=2n=2

15、 OUTOUT 3 3 2 21 1 0 0 2 21 1 0 0 GATEGATE 实时时钟与计数器定时器接口22 方式2 频率发生器(分频器) 写入控制字之后,输出端写入控制字之后,输出端OUTOUT变为高电平。变为高电平。 计数器写完计数值时,开始计数。当计数器计数器写完计数值时,开始计数。当计数器减到减到1 1时时, OUTOUT变为低电平。变为低电平。 完成一次计数过程,输出端完成一次计数过程,输出端OUTOUT又变为高电平,开始又变为高电平,开始 一个新的计数过程,周而复始。一个新的计数过程,周而复始。 对于计数初值对于计数初值N N,输出端,输出端OUT OUT 输出的信号的周期

16、是输出的信号的周期是计计 数值数值N N时钟时钟CLKCLK的周期的周期T T,N-1N-1个时钟周期为高,个时钟周期为高,1 1个时个时 钟周期为低,为负脉冲钟周期为低,为负脉冲 。 输出负脉冲的周期为时钟周期的输出负脉冲的周期为时钟周期的N N倍,频率是倍,频率是1/N1/N,称,称 为分频器,可以用来给自动控制中的实时检测,实时为分频器,可以用来给自动控制中的实时检测,实时 控制提供时钟信号。控制提供时钟信号。 实时时钟与计数器定时器接口23 WR CLK GATE OUT CWn=3 重新记数重新记数 321321 重新记数重新记数 实时时钟与计数器定时器接口24 方式3 方波发生器

17、与与2 2方式基本相同,也具有自动装入时间常数(计数初方式基本相同,也具有自动装入时间常数(计数初 值)的功能,不同之处在于:值)的功能,不同之处在于: 工作在工作在3 3方式,引脚方式,引脚OUTOUT输出的不是一个时钟周期的负输出的不是一个时钟周期的负 脉冲,而是占空比为脉冲,而是占空比为1 1:1 1或近似或近似1 1:1 1的方波;当计数的方波;当计数 初值为偶初值为偶 数时,输出在前一半的计数过程中为高电平,数时,输出在前一半的计数过程中为高电平, 在后一半的计数过程中为低电平。在后一半的计数过程中为低电平。 由于由于3 3方式输出的波形是方波,并且具有自动重装计方式输出的波形是方波

18、,并且具有自动重装计 数初值的功能,因此,数初值的功能,因此,82538253一旦计数开始,就会在输一旦计数开始,就会在输 出端出端OUTOUT输出连续不断的方波。输出连续不断的方波。 实时时钟与计数器定时器接口25 3124 GATE OUT CLK 4 方式方式3 3124 3124 3124 WR 实时时钟与计数器定时器接口26 方式3 当计数值为奇数时,在前(当计数值为奇数时,在前(N+1N+1)2 2计数期间,计数期间, OUTOUT输出高电平,而后(输出高电平,而后(N-1N-1)2 2个计数期间,个计数期间, OUTOUT输出为低电平。输出为低电平。 54321543 CWn=5

19、 WR CLK GATE OUT 实时时钟与计数器定时器接口27 方式4 软件触发选通信号 控制字写入控制字写入82538253后,计数器输出后,计数器输出OUTOUT为高电平为高电平 在写入计数初值后,而且在写入计数初值后,而且GATEGATE为高电平时,开始计为高电平时,开始计 数,计数到数,计数到0 0后输出一个时钟周期的低电平脉冲。后输出一个时钟周期的低电平脉冲。 门控信号门控信号GATEGATE1 1时允许计数,时允许计数,GATEGATE0 0禁止计数。禁止计数。 软件触发软件触发选通选通体现在当体现在当GATEGATE为高电平时,写入计数为高电平时,写入计数 初值后开始计数。初值

20、后开始计数。 D0-D7 STB 锁存器 8253 OUT CPUCPU送数据同时输出一数送数据同时输出一数 据选通信号,锁存数据。据选通信号,锁存数据。 方式方式4 4可编程控制选通信号可编程控制选通信号 发出时间。发出时间。 实时时钟与计数器定时器接口28 GATE OUT CLK 3124 4 方式方式4 2233 3 1 WR 实时时钟与计数器定时器接口29 方式5 硬件触发选通信号 工作特点是由工作特点是由GATEGATE上升沿上升沿触发计数器开始工作。触发计数器开始工作。 当写入计数初值后,计数器并不立即开始计数,而当写入计数初值后,计数器并不立即开始计数,而 要由门控信号的上升沿

21、启动计数。要由门控信号的上升沿启动计数。 在计数过程中(或者计数结束后),如果门控再次在计数过程中(或者计数结束后),如果门控再次 出现上升沿,计数器将从原装入的计数初值重新计数。出现上升沿,计数器将从原装入的计数初值重新计数。 硬件触发选通硬件触发选通:GATEGATE信号一般由硬件产生。信号一般由硬件产生。 实时时钟与计数器定时器接口30 GATE OUT CLK 3124 4 方式方式5 2233 3 11 WR 实时时钟与计数器定时器接口31 计数开始的时刻 需要注意需要注意 当控制字写入当控制字写入82538253时,所有的控制逻辑电路自动复时,所有的控制逻辑电路自动复 位,这时输出

22、端位,这时输出端OUTOUT进入初始状态。进入初始状态。 处理器写入处理器写入82538253的计数初值只是写入了预置寄存器,的计数初值只是写入了预置寄存器, 要经过一个时钟上升沿和一个时钟下降沿,减法计数要经过一个时钟上升沿和一个时钟下降沿,减法计数 器才开始工作。器才开始工作。 实时时钟与计数器定时器接口32 实验1 计数开始计数开始 实验1 计数开始计数开始 计数开始计数开始 实时时钟与计数器定时器接口33 实验2 计数开始计数开始 实时时钟与计数器定时器接口34 12.2.3 8253/8254的编程 82538253加电后的工作方式不确定加电后的工作方式不确定 82538253必须初

23、始化编程,才能正常工作必须初始化编程,才能正常工作 v写入方式控制字写入方式控制字 v写入计数初值写入计数初值 v读取计数值读取计数值 v82548254新增读回命令新增读回命令 实时时钟与计数器定时器接口35 1 写入方式控制字(A A1 1A A0 01111) 计数器计数器读写格式读写格式工作方式工作方式BCDBCD D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0 00 计数器计数器0 01 计数器计数器1 10 计数器计数器2 11 非法非法 00 计数器锁存命计数器锁存命 令令 01 只读写低字节只读写低字节 10 只读写高字节只读写

24、高字节 11 先读写低字节先读写低字节 后读写高字节后读写高字节 000 方式方式0 001 方式方式1 010 方式方式2 011 方式方式3 100 方式方式4 101 方式方式5 0 二进制二进制 1 BCD码码 示例示例 实时时钟与计数器定时器接口36 2 写入计数值 计数值写入计数器各自的计数值写入计数器各自的I/OI/O地址地址 示例示例 选择二进制时选择二进制时 v计数值范围:计数值范围:0000H0000HFFFFHFFFFH v0000H0000H是最大值,代表是最大值,代表6553665536 选择十进制(选择十进制(BCDBCD码)码) v计数值范围:计数值范围:0000

25、000099999999 v00000000代表最大值代表最大值1000010000 实时时钟与计数器定时器接口37 3 读取计数值 8 8位数据线,读取位数据线,读取1616位计数值需分两次位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然计数在不断进行,应该将当前计数值先行锁存,然 后读取:后读取: v向控制字向控制字I/OI/O地址:给地址:给82538253写入锁存命令写入锁存命令 v从计数器从计数器I/OI/O地址:读取锁存的计数值地址:读取锁存的计数值 读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制 实时时钟与计数器定时器接口38 12.3 8

26、253在PC机上的应用 A0 A1 A0 A1 D0D7D0D7 OUT1 OUT2 OUT0 GATE0 GATE1 GATE2 CLK0 CLK1 CLK2 D Q CLK +5V 接至接至DMA控制器控制器 接至扬声器驱动器接至扬声器驱动器 PB0 PB1 IRQ0 DRQ0 8253 +5V 1.19318MHz DACK0 BRD IOR IOW RD WR CST/CCS 实时时钟与计数器定时器接口39 12.3.1 定时中断和定时刷新 n将将计数器计数器1 1作为定时刷新作为定时刷新 n看如何编写初始化程序段看如何编写初始化程序段 n从阅读初始化程序段从阅读初始化程序段 n看看计

27、数器计数器0 0作为定时中断的作用作为定时中断的作用 实时时钟与计数器定时器接口40 8253初始化(定时中断) mov al,mov al,00001111 0110110 0B B ; ;计数器计数器0 0为方式为方式3 3,采用二进制计数,采用二进制计数, ; ;先低后高写入计数值先低后高写入计数值 out 43h,alout 43h,al; ;写入方式控制字写入方式控制字 mov al,0mov al,0; ;计数值为计数值为0 0 out 40h,alout 40h,al; ;写入低字节计数值写入低字节计数值 out 40h,alout 40h,al; ;写入高字节计数值写入高字节计

28、数值 实时时钟与计数器定时器接口41 计数器0:定时中断 计数器计数器0 0:方式:方式3 3,计数值:,计数值:6553665536,输出频率为,输出频率为 1.19318MHz1.19318MHz655366553618.206Hz18.206Hz的方波的方波 门控为常启状态,这个方波信号不断产生门控为常启状态,这个方波信号不断产生 OUT0OUT0端接端接8259A8259A的的IRQ0IRQ0,用作中断请求信号,用作中断请求信号 每秒产生每秒产生18.20618.206次中断请求,或说每隔次中断请求,或说每隔55ms55ms (54.925493ms54.925493ms)申请一次中断

29、)申请一次中断 DOSDOS系统利用计数器系统利用计数器0 0的这个特点,通过的这个特点,通过0808号中断服号中断服 务程序实现了日时钟计时功能务程序实现了日时钟计时功能 实时时钟与计数器定时器接口42 计数器1:定时刷新 门控总为高,选择方式门控总为高,选择方式2 2或或3 3 n2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次 计数初值为计数初值为1818 n需要重复不断提出刷新请求需要重复不断提出刷新请求 实时时钟与计数器定时器接口43 8253初始化(定时刷新) mov al,mov al,01010101 0100100 0B B ; ;计数器计数器1 1为方式为方

30、式2,2, ; ;采用二进制计数采用二进制计数, ,只写低只写低8 8位计数值位计数值 out 43h,alout 43h,al; ;写入方式控制字写入方式控制字 mov al,18mov al,18 ; ;计数初值为计数初值为1818 out 41h,alout 41h,al; ;写入计数值写入计数值 实时时钟与计数器定时器接口44 12.3.2 扬声器控制 计数器计数器2 2的输出控制扬声器的发声音调的输出控制扬声器的发声音调 计数器计数器2 2只能工作在方式只能工作在方式3 3,才能输出一定频率的方,才能输出一定频率的方 波,经滤波后得到近似的正弦波,进而推动扬声器发波,经滤波后得到近似

31、的正弦波,进而推动扬声器发 声声 扬声器还受控于并行接口(扬声器还受控于并行接口(82558255芯片)芯片) 必须使必须使PB0PB0和和PB1PB1同时为高电平,扬声器才能发出预同时为高电平,扬声器才能发出预 先设定频率的声音先设定频率的声音 实时时钟与计数器定时器接口45 扬声器控制(频率设置) speakerspeakerprocproc push axpush ax mov al,mov al,10101111 0110110 0B;0b6hB;0b6h out 43h,alout 43h,al; ;写入控制字写入控制字 pop axpop ax out 42h,alout 42h,

32、al; ;写入低写入低8 8位计数值位计数值 mov al,ahmov al,ah out 42h,alout 42h,al; ;写入高写入高8 8位计数值位计数值 retret speakerspeakerendpendp 实时时钟与计数器定时器接口46 扬声器控制(扬声器开) speakonspeakonprocproc push axpush ax in al,61hin al,61h or al,03hor al,03h ;D1D0;D1D0PB1PB0PB1PB011B11B,其他位不变,其他位不变 out 61h,alout 61h,al pop axpop ax retret s

33、peakonspeakonendpendp 实时时钟与计数器定时器接口47 扬声器控制(扬声器关) speakoffspeakoffprocproc push axpush ax in al,61hin al,61h and al,0fchand al,0fch ;D1D0;D1D0PB1PB0PB1PB000B00B,其他位不变,其他位不变 out 61h,alout 61h,al pop axpop ax retret speakoffspeakoffendpendp 实时时钟与计数器定时器接口48 扬声器控制(主程序) ; ;数据段数据段 freqfreq dw 1193180/600d

34、w 1193180/600 ; ;代码段代码段 mov ax,freqmov ax,freq call speakercall speaker; ;设置扬声器音调设置扬声器音调 call speakoncall speakon; ;打开扬声器声音打开扬声器声音 mov ah,1mov ah,1; ;等待按键等待按键 int 21hint 21h call speakoffcall speakoff; ;关闭扬声器声音关闭扬声器声音 实时时钟与计数器定时器接口49 12.3.3 硬件延时 软件延时软件延时 MOV CX,NMOV CX,N AGAIN:LOOP AGAIN ;17AGAIN:LO

35、OP AGAIN ;17个时钟周期个时钟周期 ; ;延时时间约为延时时间约为N N* *T T* *1717 IBM PC/XT BIOSIBM PC/XT BIOS中中 SUB CX,CXSUB CX,CX G7:LOOP G7 ;CX=65536,250ms G7:LOOP G7 ;CX=65536,250ms DEC BL ; 250msDEC BL ; 250ms延时的个数延时的个数 JNZ G7JNZ G7 实时时钟与计数器定时器接口50 硬件延时硬件延时 IBM PCIBM PC让端口让端口61H61H的的PB4PB4每隔每隔15.085uS15.085uS切换一次状切换一次状 态

36、。态。 ;(CX)= 15.085uS;(CX)= 15.085uS的个数的个数 WAITF PROC NEARWAITF PROC NEAR PUSH AXPUSH AX WAITF1WAITF1: : IN AL,61HIN AL,61H AND AL,00010000BAND AL,00010000B CMP AL,AHCMP AL,AH JE JE WAITF1WAITF1 MOV AH,ALMOV AH,AL LOOP LOOP WAITF1WAITF1 POP AXPOP AX RETRET WAITF ENDPWAITF ENDP 实时时钟与计数器定时器接口51 0.5s0.5s

37、的延时的延时 3314433144* *15.085uS= 0.5s15.085uS= 0.5s MOV CX,33144MOV CX,33144 CALL WAITFCALL WAITF 1.5s1.5s的延时的延时 MOV BL,03MOV BL,03 BACK:MOV CX,33144 BACK:MOV CX,33144 CALL WAITFCALL WAITF DEC BLDEC BL JNZ BACKJNZ BACK 实时时钟与计数器定时器接口52 可编程硬件延时 利用日时钟每隔利用日时钟每隔55ms55ms中断一次不变的特点,可以编中断一次不变的特点,可以编 写一段写一段INT 1

38、CHINT 1CH不随系统时钟频率变化的固定延时程不随系统时钟频率变化的固定延时程 序序 由于日时钟中断的时间单位是由于日时钟中断的时间单位是55ms55ms,所以无法实现,所以无法实现 更短时间的延时更短时间的延时 这时只有利用实时时钟中断,不过它的最短延时约这时只有利用实时时钟中断,不过它的最短延时约 是是1ms1ms(976s976s) 实时时钟与计数器定时器接口53 12.3.4 扩充定时计数器的应用 例例12.3.4.112.3.4.1 利用扩充定时计数器对外部事件的计数利用扩充定时计数器对外部事件的计数 例例12.3.4.212.3.4.2 扩展定时时间扩展定时时间 例例12.3.

39、4.312.3.4.3 监视一个生产流水线监视一个生产流水线 实时时钟与计数器定时器接口54 例12.3.4.1 A0 A1 A0 A1外部事件产生源外部事件产生源 8253 OUT0 GATE0 CLK0 200207H IRQ D0D7D0D7 译码译码 电路电路 AEN A3A9 +5V CS IOR IOW RD WR 实时时钟与计数器定时器接口55 例12.3.4.1(初始化程序段) mov dx,203hmov dx,203h; ;设置方式控制字设置方式控制字 mov al,mov al,000001010000000 0B;10hB;10h out dx,al out dx,al

40、 mov dx,200hmov dx,200h; ;设置计数初值设置计数初值 mov al,64hmov al,64h; ;计数初值为计数初值为100100 out dx,alout dx,al 输出:输出:明确向哪个明确向哪个端口端口输出什么输出什么数据数据 输入:输入:清楚从哪个清楚从哪个端口端口输入什么输入什么数据数据 实时时钟与计数器定时器接口56 例12.3.4.2 在一个实际的数据采集系统中,要求在一个实际的数据采集系统中,要求5s采一个数,现采一个数,现 场的主时钟的振荡频率为场的主时钟的振荡频率为25MHz。 分析:选择工作方式分析:选择工作方式3(方波发生器),连续工作(方波

41、发生器),连续工作 对对25M的脉冲分频。的脉冲分频。 时钟周期时钟周期Tckl25106 计数初值计数初值n=T/Tck=5(l25106 )=1.25107 一个计数器最多的分频次数是一个计数器最多的分频次数是65536,是不够用的。,是不够用的。 实时时钟与计数器定时器接口57 采用两级计数器,用计数器采用两级计数器,用计数器0的输出的输出OUT0作为计数器作为计数器 1的输入的输入CLK1。 计数器计数器0的计数值为的计数值为50000 (C350H );计数器;计数器1的的250 (FAH) 。则有:。则有: 总的计数值总的计数值=50000250=1.25 107 计数器计数器0:

42、方式:方式3(方波发生器)控制宇(方波发生器)控制宇36H 计数器计数器1:方式:方式2(分频器)控制字(分频器)控制字54H 设:控制口地址:设:控制口地址:CRPT;0号计数器:号计数器:PRT0;1号号 计数器:计数器:PRT1 实时时钟与计数器定时器接口58 实现上述过程的程序如下:实现上述过程的程序如下: MOV ALMOV AL,36H36H MOV DX MOV DX,CRPTCRPT OUT DX OUT DX,AL AL ;0 0号计数器方式号计数器方式3 3 MOV AL MOV AL,50H50H MOV DX MOV DX,PRT0PRT0 OUT DX OUT DX,

43、AL AL ;计数值低;计数值低8 8位位 MOV ALMOV AL,C3HC3H OUT DX OUT DX,AL AL ;计数值高;计数值高8 8位位 MOV ALMOV AL,54H54H MOV DX MOV DX,CRPTCRPT OUT DX OUT DX,AL AL ; 1 1号计数器方式号计数器方式2 2 MOV AL MOV AL,FAHFAH MOV DX MOV DX,PRT1PRT1 OUT DX OUT DX,AL AL ;计数值低;计数值低8 8位位 8253 CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 2.5MHZ +5V +5V 5S脉冲脉冲 实时时钟与计数器定时器接口59 用用8253监视一个生产流水线,每通过监视一个生产流水线,每通过50个工件,个工件, 扬声器响扬声器响5秒钟,频率为秒钟,频率为1000周。周。 8253设置:设置: 通道通道0 方式方式2, BCD计数计数 n=50 方式字方式字00010101 通道通道1 方式方式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论