1 / 54

第三章 定时/计数技术

第三章 定时/计数技术.  本章重点 : (1)定时与计数的概念理解 (2)8254的外部特性及内部工作方式的理解 (3)8254方式命令字及计数初值的设置 (5)8254的应用 (4) 实时钟电路 MCl46818 及其应用. 3.1 8254/8253定时计数器. 1.定时与计数 2.微机系统中的定时 微机系统中常为 CPU 或外设提供时间标记、对外部事件计数。需要系统的定时问题。 微机系统中的定时可分为两种: 内部定时和外部定时。 内部定时 是计算机本身运行的时间基准或时序关系。 外部定时 是外设实现某种功能时,本身所需要的一种时序关系。

Télécharger la présentation

第三章 定时/计数技术

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. 第三章 定时/计数技术 •  • 本章重点: • (1)定时与计数的概念理解 • (2)8254的外部特性及内部工作方式的理解 • (3)8254方式命令字及计数初值的设置 • (5)8254的应用 • (4)实时钟电路MCl46818及其应用

  2. 3.1 8254/8253定时计数器 • 1.定时与计数 • 2.微机系统中的定时 • 微机系统中常为CPU或外设提供时间标记、对外部事件计数。需要系统的定时问题。 • 微机系统中的定时可分为两种:内部定时和外部定时。 • 内部定时是计算机本身运行的时间基准或时序关系。 • 外部定时是外设实现某种功能时,本身所需要的一种时序关系。 • 本章重点讨论外部定时技术 • 3.定时方法 • (1)软件定时(软件编程,占用CPU,效率低等) • (2)硬件定时(定时/计数器或单稳延时电路,不占用CPU时间,准确、不受主频影响、定时时间长等)

  3. 3.1 8253/8254定时计数器 • 3个独立的16位计数器通道 • 每个计数器有6种工作方式 • 按二进制或十进制(BCD码)计数 8254是8253的改进型

  4. 计数器的3个引脚 • CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 • GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型 • OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号

  5. 2. 与处理器接口 • D0 ~ D7数据线 A0 ~ A1地址线 • RD*读信号 WR*写信号 • CS*片选信号

  6. 3.2 可编程定时计数器8253/8254 • 外部特性与内部逻辑 • 1.外部特性 • 8253是24引脚的DIP封装芯片,+5V供电,内有三个独立的计数器,每个计数器有单独的时钟、计数输出、门控制。引脚定义如下图: • ①数据总线,D0~D7:为三态输出/输入线。用于将8254与系统数据总线相连 。 • ②片选线/CS:为输入信号,低电子有效。 • ③读信号/RD:为输入信号,低电平有效。它由CPU发出,用于对8253寄存器进行读操作。 • ④写信号/WR:为输入信号,低电子有效。它由

  7. 外部特性与内部逻辑 • CPU发出,用于对8253寄存器进行写操作。 • ⑤地址线A1A0与CPU系统地址总线A1A0相连,与/CS一起用于选通8253内部寄存器。 • ⑥计数器时钟信号CLK;为输入信号。是8253的计数时钟。 • ⑦计数器门控选通信号GATE:为输入信号。GATE信号的作用是用来禁止、允许或开始计数过程的。 • ⑧计数器输出信号OUT:为输出信号。 OUT信号的作用是,计数器工作时,每来1个时钟脉冲,计数器减1,当计数值减为0,就在输出线上输出一OUT信号,以示定时或计数已到。

  8. 外部特性与内部逻辑 • 2.内部逻辑结构 • ①数据总线缓冲器。它是一个三态、双向8位寄存器,用于将8253与系统数据总线Do—D7相连。功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。 • ②读/写逻辑。确定操作那一个寄存器。 • ③控制命令寄存器。它接受CPU送来的控制字。 用于选择计数器及其工作方式。 • ④计数器。3个独立的计数器内部结构完全相同,如图3.3所示。由16位计数初值寄存器、减1计数器和当前计数值锁存器组成。

  9. CLK 数据总线 0 D7~D0 计数器0 GATE 缓冲器 0 OUT 内 0 RD 部 WR 读写控制 逻辑 CLK 1 A 数 计数器1 0 GATE A 1 1 据 OUT 1 CS 总 CLK 控制字 2 计数器2 线 GATE 寄存器 2 OUT 2 图3.2 8253/8254的内部结构和引脚

  10. 计数初值的设置与方式命令字 • 计数初值(定时常数)是决定8253的定时长短与计数多少的重要参数。计数初值与输入时钟(CLK)频率及输出波形(OUT)频率之间的关系为:Ci=CLK/OUT或Tc=CLK/OUT 1.方式命令的作用对8253进行初始化,或对当前计数值进行锁存。8253初始化: (1)向命令寄存器写入方式命令,选择计数器,确定工作方式,指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD码或二进制码) .(2)向已选定的计数器按方式命令的要求写入计数初值。

  11. 计数初值的设置与方式命令字 • 2.方式命令的格式 • 方式命令的格式如下所示: • ①D7D6:用于选择计数器。 • =00 0号计数器 • =01 1号计数器 • =10 2号计数器 • =11 不用

  12. 计数初值设置 • ②D5D4:用来控制计数器读/写的字节数(1或2个字节)及读/写高低字节的顺序。 • =00 为锁存命令,把计数器的当前值锁 存在锁存寄存器中. • =01 仅读/写一个低字节 • =10 仅读/写一个高字节 • =11 读/写2个字节,先是低字节,后是高字节. • ③D3~D1:用来选择计数器的工作方式。 • =000 方式 0 =011 方式3 • =001 方式1 =100 方式4 • =010 方式 2 =101 方式5

  13. 计数初值的设置与方式命令字 • (110和111不用) • ④Do(BCD):用来指定计数器的码制,是按二进制数还是按十进制数计数。 • BCD=0 二进制BCD=1 十进制 • 例1:选择2号计数器,工作在方式3,计数初值为533H(2个字节),采用二进制计数。命令口地址307H,二号计数器数据口地址是306H。 • 初始化程序段为 MOV DX,307H ;命令口 MOV AL,10110110B;2号计数器的初始化命令字 OUT DX,AL ;写入命令寄存器

  14. 计数初值的设置与方式命令字 MOV DX,306H ;2号计数器数据口 MOV AX,533H ;计数初值 OUT DX,AL ;先送低字节到2号计数器 MOV AL,AH ;取高字节送AL OUT DX,AL ;后送低字节到2号计数器 • 3.读当前计数值 • 操作过程:先发一条锁存命令(即方式命令中的D5D4=00),将减1计数器的计数值锁存到输出锁存器;然后,执行读操作,便可得到当前计数值。

  15. 计数初值的设置与方式命令字 例2:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位), • 其程序段为 MOV DX,307H ;命令口 L:MOV AL,01000000B ;送1号计数器初始化命令字 OUT DX,AL ;写入命令寄存器 MOV DX,305H ;1号计数器数据口 IN AL,DX ;读1号计数器的当前计数值 CMP AL,,0FFH JNE L HLT

  16. 工作方式及特点 • 8253/8254有六种工作方式,主要区别在于: (1)输出波形不同;(2)启动计数器的触发方式不同;(3)计数过程中GATE对计数操作的控制不同。 • 1.方式0:低电平输出(GATE信号上升沿继续计数) • 特点: (1)向计数器写完计数值后,开始计数,OUT变为低电平,并在计数过程中保持低电平,计数值减为0时,OUT变为高电平。(2)GATE为高电平时,计数器开始工作,GATE为低电平时,停止计数,并保持数值不变,GATE再次变高电平时,从中止处继续计数。(3)计数器工作期间,如果重新写入初值,按新写入的初值重新计数。

  17. 2.方式1:低电平输出(GATE信号上升沿重新计数)2.方式1:低电平输出(GATE信号上升沿重新计数)

  18. 3.方式2:周期性负脉冲输出

  19. 4.方式3:周期性方波输出

  20. 5.方式4:单次负脉冲输出(软件触发)

  21. 6.方式5:单次负脉冲输出(硬件触发)

  22. 3.3 8253-5/8254-2的应用举例 • 8253 的典型应用: • 1.计时器-时钟 • 2.实现稳定延时 • 3.和扬声器一起构成发生器 • 4.波特率时钟发生器 • 应用举例:1、一般性的应用: • (1)设计思想: 8253 的时钟为5MHZ,8253工作在方式3时,OUT引脚输出一系列方波,可作为定时单位,采用定时单位为10ms时,可以在OUT引脚上输出周期性的方波,且具有自动重载计数初值的功能。

  23. 计时器的应用 • 如果用OUT脚输出的方波做新的计时单位,为了编程方便,可以使方波的周期为10ms. • 硬件连接可以选择图3.10的设计。 • 8253的OUT引脚每经过10ms向CPU申请一次中断。在中断子程序中统计10ms的个数,到达100个则1秒时间到,秒计数器加1。并判断秒计数器的值是否为60,是,则分计数器加1。依次类推,实现时分秒计数器的更新。到达24小时后,所有计数器清零,新的一天的计时开始。下列代码是初始化程序。

  24. 计时器的应用 • 初始化程序段如下: • Count_10ms EQU 2000H • Count_scend EQU 2001H • Count_minut EQU 2002H • Count_hour EQU 2003H • ………. • MOV AL,0 MOV Count_10ms,AL;初期上电,RAM MOV Count_scend,AL;清零。 MOV Count_minut,AL MOV Count_hour,AL

  25. 计时器的应用 MOV DX,307H MOV AL,00110110 OUT DX,AL ;初始化8253 MOV DX,304 MOV AL,50H ;送计数初值低位 OUT DX,AL MOV AL,0C3 ;送计数初值高位 OUT DX,AL

  26. 计时器的应用 • 应用举例:2、系统中日时钟的应用: • 系统中的日时钟原理介绍: • (1)系统中8253的时钟为1.1931816MHZ。 • (2)8253工作在方式3,计数初值设为最大-65536。(设选用8253的计数器0) • (3)OUT0引脚输出的方波频率:1.1931816MHZ/65536=18.2HZ • 周期为1/18.2HZ×1000ms=54.945ms. • (3)计时单位: 54.945ms为一个基准单位,且准确。则:

  27. 计时器的应用 1天=24×60×60×1000ms/54.954ms=1573040(个计时单位); 1小时= 60×60×1000ms/54.954ms=65543(个计时单位); 1分钟= 60×1000ms/54.954ms=1092(个计时单位); 1秒= 1000ms/54.954ms=18.2(个计时单位) • (4)新的计时单位的计数机构: • 利用OUT0引脚向8259申请中断,在中断程序 中进行加1操作,实现对新的计时单位的累计,完成对一天计时的任务。

  28. 计时器的应用 • 实现方法:在BIOS数据区开辟两个双字的存储单元作为每次加1操作的RAM。则该双字RAM中存放的就是当前的时间。当低位字=00B0H,高位字=0018H时,则计满24小时,然后清零,重新加1操作,开始第二天的计时。 • 注:如果要得到当前时间要进行下列计算: • A、小时数=RAM中的值除以65543; • B、分钟数= A的余数除以1092; • C、秒数= B的余数再除以18.2

  29. 计时器的应用 • 应用举例: 3.稳定延时 • (1)要求:利用系统硬件定时器延时5秒 • (2)分析: • A、利用定时器每秒中断18.2速率不变的特性,通过调用BIOS的软中断INT1AH的0号功能,读取时间计数器的当前值。 • B、将延时时间换算成计时单位(即多少个54.954ms)加上时间计数器的当前值,作为定时器的目标值。 • C、利用INT1AH的0号功能调用,不断读取时间计数器的值并与目标值比较。相等则定时时间到,不等则继续延时。

  30. 计时器的应用 • D、这样延时的好处在于:定时时间与CPU的主频无关,只与8253的时钟频率有关。延时较稳定。 • (3)设计 • A、利用系统资源,硬件不需改动。 • B、软件编程(延时5秒时,折合成计时单位=91) MOV AH,0H INT1AH ;中断调用,读取日时钟 ADD DX,91H MOV BX,DX REP: MOV AH,0H INT1AH

  31. 计时器的应用 CMP DX,BX ;与目标值比较 JNZ REP ;不等,继续延时,相等,延 ;时结束,程序向下执行 应用举例: 4、发生器 原理还是利用8253的工作方式3,不断输出一定频率的方波,将此方波接至扬声器,控制发声,方波的频率不同,则扬声器的声音频率就不同。 程序略。

  32. 计时器的应用 • 应用举例: 5. 波特率时钟发生器 • (1)要求: 设计一个波特率时钟发生器,其输入时钟CIK=1.19318MHz,波特率因子facbr=16,输出的波特率为8档,它们分别是110b/s,150b/s,300b/s,600b/s,1200b/s,2400b/s,4800b/s,9600b/s。要求利用人-机对话方式选择波特率。按Esc键,退出。 • (2)分析: • A、波特率的概念:每秒钟传输的二进制数的位数。 • B、波特率因子 的概念:每传输1位所需要的时钟脉冲个数,叫做波特率因子 。

  33. 计时器的应用 • C、传输原理:在实际传输中,发送1位或接收1位数据,是在时钟脉冲作用下,进行移位来实现的。发送时,用发送时钟,从发送器移出;接收时,用接收时钟,向接收器移入。(复习移位寄存器的应用) • D、8253定时常数的计算: 由波特率及波特率因子的概念可得: 串行传输的频率TxC=波特率Baud×波特率因子Factor; 设计要求:串行传输的频率TxC=OUT输出的频率,因此有:

  34. 计时器的应用 OUT=CLK/Tc=Baud×Factor; 所以:定时常数Tc=CLK/Baud×Factor 由此可计算出上述8种波特率下的定时常数分别为:678H、497H、249H、124H、62H、31H、16H、8H。 (3)设计 A、硬件设计:波特率时钟发生器的硬件包括定时/计数器8253、并行接口芯片8255A及I/O端口地址译码电路等,如图3.14所示。

  35. 计时器的应用 • B、软件编程:

  36. 3.4 实时钟电路MCl46818及其应用 • 什么是实时时钟:不仅支持每天时间(时、分、秒)的更新,而且支持日期(世纪、年、月、日和星期)的更新的一种永久性的时钟电路。 • MCl46818是PC机中的实时时钟芯片。 • MCl46818的外部特性及工作原理 • 1.引脚功能

  37. 实时钟电路MCl46818及其应用 • ①地址/数据线(ADo~AD1):双向,双功能,既传送地址,又传送数据,是CPU对芯片内部64个字节实时钟信息访问的通道。 • ②读/写控制线:在引脚PS和CE同时有效的条件下,CPU通过 ADo~AD1、AS、DS 、R/W信号共同完成读写操作。 • PS为电源检测端。当该端为低电平时,表示实时钟已掉电(或电池耗尽);当该端为高电平时,表示电源接通 。 • ③芯片复位线(RES):当RES=0时,芯片复位,将内部状态寄存器B的允许中断位清零,并置引脚/IRQ为高阻,但并不影响内部时钟电路和CMOSRAM的操作。

  38. 实时钟电路MCl46818及其应用 • ④振荡频率输入(OSC1、OSC2) 。 • ⑤方波(SQW) 输出引脚。 • ⑥时钟输出线(CKOUT) 。 • 2. 实时钟工作原理

  39. 实时钟电路MCl46818及其应用 • 实时钟的定时信息在CMOS-RAM中的地址分配: • 芯片提供64个字节存放实时钟信息和系统配置信息,及控制实时钟电路的工作的状态寄存器 。

  40. 实时钟电路MCl46818及其应用 • 1.时间信息 • 2.日期信息 • 3.报警信息 • 实时钟的状态寄存器 • 1. 状态寄存器A • UIP=1表示实时钟更新信息,不能读写;UIP=0,可以读写。

  41. 实时钟电路MCl46818及其应用 • 2. 状态寄存器B • TE:计时允许位 ;PIE:周期中断允许位 ; AIE:报警中断允许位 ; UIE:计时更新结束中断允许位 ;SQWE:方波输出允许位; DM:实时钟信息格式选择位 ,当DM=1时,选择二进制格式;当DM=0时 ,选择BCD格式;DSE:允许夏令时为1,否则为0 • 3.状态寄存器C

More Related