1 / 42

第 四章

第 四章. 定时 / 计数技术 课程名称:微机原理与接口技术 授课方式 : 讲课、实验、提问及作业 主讲人:金永贤. 第 4 章 定时计数接口. 教学重点 8253 的 6 种工作方式 8253 的编程 8253 的应用. 4.1 基 本 概 念. 一、定时 / 计数 在计算机系统、工业控制领域、乃至日常生活中,都存在定时、计时和计数问题。 1. 定时 2. 计数 3. 定时与计数的关系

mai
Download Presentation

第 四章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 四章 定时/计数技术 课程名称:微机原理与接口技术 授课方式:讲课、实验、提问及作业 主讲人:金永贤

  2. 第4章 定时计数接口 教学重点 8253的6种工作方式 8253的编程 8253的应用

  3. 4.1 基 本 概 念 • 一、定时/计数 在计算机系统、工业控制领域、乃至日常生活中,都存在定时、计时和计数问题。 1.定时 2.计数 3.定时与计数的关系 定时的本质就是计数,只不过这里的“数”的单位是时间单位。如果把一小片一小片的计时单位累加起来,就可获得一时间。如计满60秒为1 分,计满60分为1 小时。

  4. 4.1 基 本 概 念 二、微机系统中的定时 微机系统中经常需要为处理器和外设提供时间标记,或对外部事件进行计数。如分时系统的程序切换、向外设定时周期性地以出控制信号等。在微机系统中定时分为两种:(1)内部定时(2)外部定时 内部定时是计算机本身运行的时间基准和时序关系;外部定时是外部设备实现某种功能时,本身所需的一种时序关系。 外部定时,由于外设或被控对象不同,需要由用户安排。当外设与CPU连接时,应以计算机的时序为依据,来设计外设的定时机构,已满足计算机的时序要求,这叫时序配合。

  5. 4.1 基 本 概 念 • 定时的方法 1.软件定时 利用微处理器执行一个延时程序段实现。主要用于短时的延时。 2.硬件定时 采用可编程通用的定时/计数器或单稳延时电路产生定时或延时。常见的定时/计数芯片有:Intel 8253/8254和Zilog 的 CTC等。

  6. 4.2 可编程定时/计数器8253-5/8254-2 可编程定时/计数器芯片型号有几种,8353和8254,它们的外形引脚及功能都是兼容的,只是最高工作频率有所差异。 • 一、外部特性与内部逻辑 1.外部特性 定时/计数器8253/8254是24脚的双列直插式芯片,每个芯片内有3个独立的计数器(通道),每个计数器都有自己的时钟输入CLK、计数器输出 OUT和门控信号GATE。通过编程选择计数器的和设置工作方式,可作为计数器用,也可作为定时器用,故称为定时/计数器,记作T/C。

  7. 4.2 可编程定时/计数器8253-5/8254-2 引脚的功能 面向CPU的信号线: (1)数据总D0~D7线,为三态输入/输出线,用于将8253与系统数据总线相连。 (2)片选线/CS,对8253芯片进行片选。 (3)读信号/RD,有效时表示对8253进行读操作。 (4)写信号/WR,有效时表示对外253进行写操作。 (5)地址线 A1A0,用于选择8253片内的寄存器。 面向I/O设备的信号线: (6)计数器时钟信号线CLK,为计数器提供时钟信号。 (7)计数器门选控制信号GATE,用来控制计数器的计数过程。 (8)计数器输出信号OUT,表示计数或定时到的输出信号。

  8. 2.内部逻辑结构 图4.1定时/计数器8253/8254内部框图

  9. (1)数据总缓冲器,它是三态,双向的8位寄存器。(1)数据总缓冲器,它是三态,双向的8位寄存器。 (2)读/写逻辑,它接受由CPU送来的读/写信号和地址信号来选择读出或写入寄存器。 (3)控制命令寄存器,它接受CPU送来的控制字。 (4)计数器,8253有3 个计数器,其内部结构完全相同。 2.内部逻辑结构

  10. LSB MSB 锁存器读出当前值 16位当前计数值锁存器 16位减1计数器 OUT (减1至0时) CLK & GATE 16位计数初值寄存器 装入/读出初值 LSB MSB 图4.2 计数通道内部逻辑图

  11. 计数初值寄存器(16位),用于存放计数初值,其长度为16位,故最大计数值为65536,此寄存器的初值同减1计数器的初值在初始化时同时装入的。计数初值寄存器(16位),用于存放计数初值,其长度为16位,故最大计数值为65536,此寄存器的初值同减1计数器的初值在初始化时同时装入的。 减1计数器(16位),用于进行减1操作,每来一个时钟脉冲,它就作减1运算,直至将计数初值减为0为止。 当前数值锁存器(16位),用于锁存减1 计数器的内容,以供读出和查询。 2.内部逻辑结构

  12. 计数器初值的大小由输入时钟频率和输出波形的频率有关,可表示为:计数器初值的大小由输入时钟频率和输出波形的频率有关,可表示为: C=fCLK/fOUT。 二、计数初值

  13. 1.方式命令字的作用 主要是对8253进行初始化,同时也可对当前计数值进行锁存。 三、编程命令

  14. 2 方式命令字的格式 00 计数器0 01 计数器1 10 计数器2 11 非法 0 二进制 1 十进制 00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节 000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5 控制字写入的I/O地址(A1A0=11)

  15. 例1:选择2号计数器,工作在3方式,计数初值为533H,采用二进制计数,其初始化程序为:例1:选择2号计数器,工作在3方式,计数初值为533H,采用二进制计数,其初始化程序为: 三、编程命令 mov dx,307h ;设置方式控制字 mov al,10110110B out dx,al mov dx,306h ;设置计数初值 mov ax,533h ;计数初值为533H out dx,al ;先送低字节 mov al,ah out dx,al ;后送高字节

  16. 3.读当前计数值 在事件计数器的应用中,需要读出计数过程中的当前计数值,以便根据这个值做计数判断。具体做法是,先发一条锁存命令,将减1 计数器锁存至输出锁存器中,再执行读操作,读出锁存器中的内容。 mov dx,307h ;设置方式控制字 L: mov al,01000000B;1号计数器锁存命令 out dx,al mov dx,305h in al,dx cmp al,0ffh jne l hlt 三、编程命令

  17. 8253/8254芯片的每个通道都有6种工作方式(0方式~5方式)可供选用,各种方式的不同之处在于:一、是输出波形不同,二、是启动计数器的触发方式不同,三是计数过程中门控信号GATE对计数操作的控制不同。8253/8254芯片的每个通道都有6种工作方式(0方式~5方式)可供选用,各种方式的不同之处在于:一、是输出波形不同,二、是启动计数器的触发方式不同,三是计数过程中门控信号GATE对计数操作的控制不同。 1. 0方式---低电平输出方式,具有以下特点: (1)当向计数器写完计数值后,开始计数,计数一旦开始,输出端OUT就变为低电平,并在计数过程中一直保持低电平,当计数器减到0时,OUT立即变成高电平。 (2)门控信号GATE为高电平时,计数器工作;当GATE变为低电平时,计数器停止工作,其计数值保持不变。如GATE再次变高,计数器继续计数。 (3)在计数工作期间,如果重新写入新的计数值,计数器按新写入的的计数初值重新工作。 四、工作方式及特点

  18. ② ③ ④ ⑤ 方式0 4 WR CLK GATE 4 3 2 1 0 OUT 方式0 低电平输出 ② 设 定 计 数 初 值 ④ 计 数 过 程 ③ 计 数 值 送 入 计 数 器 ⑤ 计 数 结 束 ① 设 定 工 作 方 式

  19. 例1 : 使1号计数器T1,工作在0方式,采用十六位二进制,计数初值的高低字节分别为BYTEH和BYTEL,其初始化程序为: mov dx,307h ;设置方式控制字 mov al,01110000B;1号计数器锁存命令 out dx,al mov dx,305h mov al,BYTEL out dx,al Mov al,BYTEH Out dx,al 方式0 低电平输出

  20. 1方式是可编程的单稳态工作方式,当此方式设定后,输出端OUT就输出为高电平,写入计数器初值后,计数器并不立即开始工作,直到门控信号GATE有效(变为高电平)后的一个时钟周期的下降沿,才开始工作,使输出为OUT为高电平,并在计数过程中一直保持低电平,直到计数器减为0,才输出高电平。1方式是可编程的单稳态工作方式,当此方式设定后,输出端OUT就输出为高电平,写入计数器初值后,计数器并不立即开始工作,直到门控信号GATE有效(变为高电平)后的一个时钟周期的下降沿,才开始工作,使输出为OUT为高电平,并在计数过程中一直保持低电平,直到计数器减为0,才输出高电平。 方式1 低电平输出

  21. ② ④ ⑤ ⑥ ③ ⑥ 计 数 结 束 ⑤ 计 数 过 程 方式1 低电平输出 ④ 计 数 值 送 入 计 数 器 ③ 硬 件 启 动 ② 设 定 计 数 初 值 ① 设 定 工 作 方 式 方式1 4 WR CLK GATE 4 3 2 1 0 OUT

  22. 2方式是一种具有自动装入时间常数的N分频器,具有以下特点:2方式是一种具有自动装入时间常数的N分频器,具有以下特点: (1)在计数期间输出端OUT为高电平,计数器至1时,输出一个时钟脉冲周期的负脉冲,并自动重新装入原计数初值,一个负脉冲过去后,输出又恢复高电平并重新作减法计数。 (2)门控信号GATE为高电平时,计数器工作;如在计数期间GATE变为低电平时,计数器停止工作,GATE再次变高,计数器按原装入的计数数值重新开始计数。 (3)在计数工作期间,如果重新写入新的计数值,则计数器仍按原计数值计数,直到计数器至1,并在输出一个时钟周期的负脉冲后,才按新写入的的计数初值计数。 方式2 周期性负脉冲输出

  23. 方式2 4 WR CLK GATE 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 OUT 方式2 周期性负脉冲输出(分频器)

  24. 3方式和方式2基本相同,也具有自动装入时间常数的功能,不同之处在于:3方式和方式2基本相同,也具有自动装入时间常数的功能,不同之处在于: (1)工作在方式3,引脚OUT输出的不是一个周期性的负脉冲,而是占空比为1:1或近似是1:1的方波;当计数初值为偶数时,输出前一半计数过程中为高电平,在后一半的计数过程中为低电平。 (2)当计数初值为奇数时,在前一半加1的计数过程中,输出为高电平,后一半减1 的计数过程为低电平。例如,计数初值为5,则在前3个时钟周期OUT为高电平,后2个时钟周期OUT为低电平。 (3)由于方式3输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。 方式3 周期性方波输出

  25. 方式3 4 WR CLK GATE 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 OUT 方式3 方波发生器

  26. 方式4是一种由软件启动的计数方式,即由写入计数初值来触发计数器开始工作,其工作特点是:方式4是一种由软件启动的计数方式,即由写入计数初值来触发计数器开始工作,其工作特点是: (1)此方式设定后,输出端OUT为高电平;当写完计数初值后,计数器开始计数,计数完毕,计数回0结束,输出一个宽度为一个时钟脉冲周期的负脉冲,然后输出又恢复高电平并一直保持高电平不变。 (2)门控信号GATE为高电平时,允许计数器工作;门控信号GATE变为低电平时,计数器停止工作,当GATE恢复高电平后,计数器又从原装入的计数数值重新开始作减1计数。 (3)在计数工作期间,如向计数器写入新的计数值,则不影响当前的计数状态,仅当当前计数器回0后,计数器才按新写入的计数初值作减1计数。 方式4 单次负脉冲输出(软件触发)

  27. 方式4 3 4 WR CLK GATE 3 2 3 2 1 0 4 3 2 1 0 OUT 方式4 单次负脉冲输出)

  28. 5方式工作特点是由GATE上升沿触发计数器开始工作的,具有如下特点:5方式工作特点是由GATE上升沿触发计数器开始工作的,具有如下特点: (1)在5方式工作方式下当写入计数器初值后。计数器并不立即开始计数,而要由门控信号的上升沿启动计数。计数器回0后,将在输出端输出一个时钟脉冲周期的负脉冲后恢复高电平。 (2)在计数过程中,如果门控信号再次出现上升沿,计数器将从原装入的计数初值重新计数。 方式5单次负脉冲输出(硬件触发)

  29. 方式5 3 4 WR CLK GATE 3 2 1 3 2 1 0 4 3 2 1 0 OUT 方式5 硬件触发选通信号

  30. (1) 0方式(门控单稳)和1方式(门控单稳) a.输出波形类似; b.无自动重装能力; c.启动计数器工作的触发信号不一样; d.方式0,GATE上升沿对它无影响,方式1, GATE上升沿触发重新开始。 (2)2方式(分频器)和3方式(方波发生器) a.时间常数自动重装; b.频率为clk/n; c.方式2,计数时高电平,减1至0时,输出宽度为一个时钟 周期的负脉冲;方式3,前一半为高,后一半为低。 。 五、 6种工作方式的比较

  31. (3) 4方式(软件触发单脉冲)和5方式(硬件触发单脉冲) a.输出波形相同; b.无自动重装能力; c.启动计数触发信号不一样。 注意:从以上分析可知,一般0方式,1方式和4方式,5方式选作计数器用(输出一个电平或一个脉冲),而2方式,3方式选作定时器用(输出周期脉冲或周期方波) 6种工作方式的比较

  32. 一、计数器------日时钟 1.要求 设计一个计一天时间的日计时器------日时钟 2.分析 (1)新计时单位的建立 人们的计时习惯是以秒、分、小时为单位来计一天的时间。但8253不能直接提供秒、分、小时的计时单位,因此,要利用8253来计一天的时间,就必须找到一个合适的新计时单位才行。其实,计时也不一定要按秒、分、小时这些单位去计量。只要找到一个定时准确的新单位(不是秒、分、时),再用这个单位去度量一天24小时里包含多少个这种计时单位就行了,所以问题的关键在于如何找到一个定时准确的度量时间的单位。 刚好,可以有8253工作在方式3下,其输出为一系列方波,这种方波周期是准确的,可以作为定时的单位。比如,选用8253的计数器0,让其工作在3方式下,计数初值设置为65536,当输入时钟CLK0=1.1931816MHz时,则输出的方波频率 为: fout0=1.1931816MHz/65536=18.2Hz 输出方波的周期为: Tout0=1/18.2*1000ms=54.945ms 4.3 8253-5/8254-2的应用举例

  33. 这个方波的周期是准确的,可以利用这个54.945ms作为计时单位,接下来是如何利用54.945ms这个新计时单位去计一天的时间。这个方波的周期是准确的,可以利用这个54.945ms作为计时单位,接下来是如何利用54.945ms这个新计时单位去计一天的时间。 1天=24*60*60*1000ms/54.945ms=1573040(计时单位),表示为十六进制为:001800B0H个计时单位,同理在一个小时包含65543个计时单位,1分钟包含1092个计时单位,1秒钟包含18.2个计时单位。 (2)新计时单位的计数机构 利用中断技术将这些计时单位累加起来。用8253输出方波OUT0连到8259- IR0,产生定时中断,每中断一次进行加一操作,直至完成一天24小时计时任务。 具体实施办法:开辟两个存储单元,即两个字变量TIME-LO、TIME-HI,每隔54.945ms申请一次中断,先在低字变量加一,计满65536次复位,并向高字变量中加一,一直到TIME-LO=00B0H、TIME-HI=0018H。 3.设计 (1)硬件设计 4.3 8253-5/8254-2的应用举例

  34. 4.3 8253-5/8254-2的应用举例 8259A 8254 CPU INT INTR GATE0 IRQ0 IR0 OUT0 D0~D7 CLK0 总线控制器 S2 S2 D 8288 Q S1 S1 Q CP PCLK S0 S0 2.3863632MHz

  35. 二、发声器 1.要求 利用定时/计数器8253发600Hz的长/短音。按任意键,开关发声;按ESC键,停止发声。8253的输入时钟CLK的频率为1.9318MHz. 2. 分析 根据题意,有两个工作要做,一是声音的频率应满足600Hz,二是发声持续的长短的控制。 (1)计数初值的确定: C=1.19318X106Hz/600= 1983 (2)长/短音的控制:设置延时常数寄存器BL,改变它,可以改变延时时间; (3)扬声器的开/关控制:设置一个与门,利用8255A PB0,PB1引脚分别控制8253-GATE和与门的开关。 3.设计 (1)硬件设计 4.3 8253-5/8254-2的应用举例

  36. 4.3 8253-5/8254-2的应用举例 8253 ÷2 3.38MHz 1.19MHz CLK2 OUT2 & 滤波 功放 gate2 8255A PB1 pB0 发声器电路图

  37. (2)软件设计 发声程序由主程序和子程序组成,主程序流程图如图所示 4.3 8253-5/8254-2的应用举例 开始 8253初始化 图发长短 音主程序 流程图 关闭扬声器 计算并装入初值 返回DOS 关闭扬声器 N 按下任意键? 结束 Y 发长音(BL=6) (CALLSSP) 发短音(BL=1) (CALLSSP) N 按下ESC键? Y

  38. 8253-5/8254-2的应用举例 程序 CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H START:JMP BEGIN LONG1:EQU 6 SHORT1:EQU 1 BEGIN:MOV AX,CODE MOV CS, AX MOV DS,AX ;初始化8253 MOV AL,10110110H OUT 43H,AL MOV AX,1983 OUT 42H,AL

  39. 4.3 8253-5/8254-2的应用举例 MOV AL,AH OUT 42H,AL ;关闭扬声器 IN AL,61H;读入8255 PB口原输出值 AND AL,0FCH;置PB0和PB1为0,关闭GATE2和与门 OUT 61H,AL ;查任意键,启动发声器 WAIT1:MOV AH,0BH;判断是否有任意键按下? INT 21H CMP AL,00H JE WAIT1;无键,则等待;否则发长音。 ;发长音 LOP: MOV BL,LONG1 CALL SSP ;查ESC键,停止发声

  40. 4.3 8253-5/8254-2的应用举例 MOV AH,0BH INT 21H CMP AL,00H JE CONTINUE1;无键按下,发短音 MOV AH,08H;等待从键盘输入一个字符 INT 21H CMP AL,1BH;是ESC,停止发声 JE QUIT ;发短音 CONTINUE1:MOV BL,SHORT1 CALL SSP JMP LOP ;关闭扬声器,并退出 QUIT:IN AL,61H AND AL,0FCH OUT 61H,AL MOV AL,AH OUT 61H,AL

  41. 4.3 8253-5/8254-2的应用举例 MOV AX,4C00H INT21 ;发声子程序 SSP PROC NEAR IN AL,61H OR AL,03H OUT 61H,AL SUB CX,CX L: LOOP L DEC BL JNZ L RET SSP END CODE ENDS END START

  42. 第4章教学要求 1. 掌握8253引脚,尤其是CLK、OUT、GATE引脚的功能 2. 掌握8253的六种工作方式、编程和应用

More Related