




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/2/3微型计算机接口技术1第4章定时/计数技术本章主要内容
微机系统中的定时系统
外部定时方法及硬件定时器计数器的计数初值计算及装入定时/计数器的应用2023/2/314.1定时/计数技术1.定时例如:
①一天24小时的计时(称为日时钟)。②在监测系统中,对被测点的定时取样。③在读键盘时,为去抖,一般延迟一段时间,再读。④在步进电机速度控制程序中,利用时间间隔来控制步进电机的
转速。2.计数例如:①对零件和产品的计数;②对大桥和高速公路上车流量的统计,等等。22023/2/34.2微机系统中的定时系统
微机中的定时分为内部定时和外部定时两个定时系统1.内部定时
内部定时产生运算器、控制器等CPU内部的控制时序,如取指周期、读/写周期、中断周期等,主要用于CPU内部指令执行过程的定时。2.外部定时
外部定时是外设在实现某种功能时所需要的一种时序关系。例如,打印机接口标准Centronics,就规定了打印机与CPU之间传输信息应遵守的工作时序。
内部定时和外部定时是彼此独立的两个定时系统,各按自身的规律进行定时操作。内部定时是由CPU硬件决定的,固定不变。在实际应用中,外部定时与用户的关系比内部定时更密切。32023/2/34.3外部定时方法及硬件定时器4.3.1定时方法
1.软件定时
软件定时是运用软件编程,循环执行一段程序而产生的等待延时。
优点:不需增加硬设备,只需编制相应的延时程序以备调用。
缺点:CPU执行延时待时间增加了CPU的时间开销,延时时间越长,
这种等待开销越大,而且延时与主机的工作频率有关,定时程序的通用性很差。
2.硬件定时
硬件定时是采用可编程的定时/计数器或单稳延时电路产生定时或延时。
优点:不占用CPU的时间,定时时间长,使用灵活;定时准确,定时时间不受主机频率影响,定时程序具有通
用性,故得到广泛应用。
缺点:设置定时电路,增加额外硬件开销。
42023/2/34.3.2定时器
硬件定时器有不可编程定时器和可编程定时器两种。1.不可编程定时器
不可编程定时器的定时间隔和定时范围固定,采用中小规模集成电路器件构成的定时电路。常见的定时器件有单稳触发器和555、556定时器等,利用其外接电阻、电容的组合,可实现一定范围的定时。
2.可编程定时器
可编程定时器的定时间隔和定时范围可由程序进行设定和改变,使用方便灵活。可编程定时电路一般都是采用可编程定时/计数器外围支持芯片,如Intel82C54A来实现的。52023/2/34.4实现外部定时/计数的解决方案
采用可编程定时/计数器82C54A实现外部定时的方案。82C54A是微处理器处理实时事件的重要支持芯片,在实时时钟、事件计数以及速度控制等方面都非常有用。4.4.1定时/计数器82C54A的外部特性1.外部特性82C54A的外部引脚如图4.1所示。62023/2/3图4.18253引脚82C54A的引脚可分为面向CPU和面向I/O设备两侧
1)面向CPU的信号线①数据总线D0~D7:为三态输出/输入线。用于将8253与系统数据总线相连。②片选线CS:为输入信号,低电平有效。③读信号RD:为输入信号,低电平有效。④写信号WR:为输入信号,低电平有效。地址线A1A0:这两根线接到系统地址总路线的A1A上。
2)面向I/O设备的信号线⑥计数器时钟信号CLK:CLK为输入信号。⑦计数器门控选通信号GATE(0-2):为输入信号。⑧计数器输出信号OUT(0-2);为输出信号。72023/2/3
4.4.2定时/计数器82C54A的工作方式
为了满足不同的应用要求,82C54A设置了6种工作方式,其中,2方式和3方式比较常用,应重点掌握。1.
0方式:事件计数器方式,其波形如图4.2所示。82023/2/3图4.2方式00方式特点:
0方式的典型应用是做事件计数器,计数器的大小就是计数初值,改变计数初值就可以改变计数器的大小。
0方式当写入计数初值后,启动计数器开始计数,OUT信号变为低电平,并维持低电平至减法计数器的内容减到0时,停止工作,OUT信号变为高电平,并维持高电平到再次写入新的计数值,可见,0方式输出单次波。
0方式的计数过程由写信号软启动,写入计数初值后开始计数,不需外加启动信号;计数结束,自动停止,不需外加停止信号。92023/2/32.
1方式:可重触发单稳触发器方式1方式波形如图4.3所示。102023/2/3图4.3方式一输出波形1方式特点:
1方式的典型应用是作可编程单稳态触发器,单稳延迟时间=计数初值×时钟脉宽,延时期间输出的是低电平,低电平的宽度可以由程序控制,即改变计数初值就可以改变延时时间。
1方式在写入计数初值后,再由GATE门信号硬启动计数,OUT变为低电平,每来一个CLK,计数器减l直到计数值减到0时,停止工作,OUT输出高电平,并维持高电平到GATE门信号再次启动。
1方式由GATE门信号每触发1次仅输出一个波形,故1方式也是输出单次波。112023/2/33.
2方式:分频器方式
2方式是一种具有自动装入时间常数的分频器,其波形如图4.4所示。122023/2/3图4.4方式二2方式特点:
2方式的典型应用是做分频器,分频系数就是计数初值。改变计数初值就可以改变输出负脉冲波形的频率。
2方式在写入计数初值后,由写信号软启动计数器开始减l计数,直到减到l时,OUT输出一个宽度为时钟CLK周期的低电平,接着又变为高电平,软启动计数开始且计数初值自动重装,开始下一轮计数,如此往复,不停地工作。
2方式具有自动重装计数初值功能,故2方式能够连续输出负脉冲波形。132023/2/34.3方式:方波发生器方式
3方式具有自动装入时间常数(计数初值)的功能。3方式的波形如图4.5所示。142023/2/33方式的波形图如下。152023/2/3图4.5方式三3方式特点:
3方式的典型应用是做方波发生器,方波的周期=计数初值×时钟脉冲的周期。改变计数初值就可以改变输出方波的频率。
3方式在写入计数初值后,由写信号软启动计数器开始计数,OUT输出占空比为1∶1或近似1∶1的连续方波。当计数初值为偶数时,输出波形的占空比为1∶1,如图4.10(a)所示。当计数初值为奇数时,输出波形的占空比为近似1∶1,如图4.10(b)所示。
计数结束后,计数初值自动重装,开始下一轮计数,如此往复,不停的工作,因此,3方式连续输出方波。而2方式连续输出的是负脉冲波。162023/2/35.4方式:单次负脉冲发生器方式
4方式的输出波形如图4.6所示。172023/2/3图4.6方式四4方式特点:
4方式的典型应用是单次负脉冲发生器,负脉冲宽度等于时钟脉冲的周期。改变计数初值就可以改变选通脉冲产生的时间。
4方式计数从写入计数初值后开始,OUT输出高电平,减1计数直到计数值减到0时,在OUT端输出一个宽度等于时钟CLK脉冲周期的负脉冲,并停止工作。显然,4方式的计数过程由写信号软启动。
4方式不具备计数初值重装能力,故输出单次波形。182023/2/3192023/2/36.5方式:单次负脉冲发生器方式5方式的输出波形如图4.7所示图4.7方式五2023/2/3205方式特点:
5方式的典型应用是做单次负脉冲发生器,选通脉冲宽度等于时钟脉冲的周期。改变计数初值就可以改变选通脉冲产生的时间。
5方式的计数开始是由GATE门信号硬启动,OUT输出高电平,开始减1计数直到计数值减到0时,在OUT端输出一个宽度等于时钟CLK脉冲周期的负脉冲,并停止工作。
5方式不具备计数初值重装能力,也是输出单次波形。5方式与4方式不同之处是计数启动信号不同,5方式是GATE信号硬启动,4方式是写信号软启动。2023/2/321小结:6种工作方式的比较
0方式和1方式,这两种方式的输出波形类似,均为单次波。区别在于计数启动方式不同,前者为软启动,后者是硬启动。
2方式和3方式,这两种方式共同的特点是具有自动再加载(装入)功能能力。二者的区别在于:2方式连续输出宽度为1个TCLK的负脉冲。3方式连续输出占空比为1:1的方波或近似方波。
4方式和5方式。这两种方式的OUT输出波形相同,两者的区别是计数启动的触发信号不同,前者由写信号启动计数,后者由GATE信号启动计数。
2023/2/3222023/2/323
4.4.3定时/计数器82C54A的编程模型
82C54A的编程模型包括内部可访问的寄存器及其端口地址、工作方式、命令字。用户可利用这个编程模型对82C54A进行编程。
1.82C54A内部寄存器 2C54A内部寄存器有1个命令寄存器和3个独立的计数器(0~2),也叫做计数器通道。3个独立的计数器中,每个计数器内部又包含3个不同功能的16位寄存器:计数初值寄存器、减法计数器和当前计数值锁存器。2C54A内部逻辑结构如图4.8所示。242023/2/3图4.882C54A的内部寄存器下面介绍82C54A的3个独立计数器内部寄存器的作用。3个独立计数通道(计数器)如图4.9所示。2023/2/325图4.9计数器通道的3个寄存器2023/2/326
每个计数通道包含计数初值寄存器、减1计数器和当前计数值锁存器
计数初值寄存器(16位):用于存放计数初值(定时常数、分频系数),最大计数值为65536(64KB)。计数初值寄存器的计数初值,在计数器计数过程中保持不变。当需要重复计数时,取出计数初值重装到减1计数器。
减1计数器(16位):在初始化时同时一起装入的计数初值,用于进行减1计数操作,每来一个时钟脉冲,它就作减1运算,直至将计数初值减为零。
当前计数值锁存器(16位):用于锁存减1计数器的内容,以供读出和查询。2023/2/3272.82C54A的编程命令
82C54A有3个命令,其中方式命令最重要,应重点学习。
(1)方式命令
方式命令的作用是对82C54A进行初始化,初始化的内容见4.6节。方式命令的格式如图4.10所示。
图4.1082C54A工作方式命令格式2023/2/328(2)锁存命令:
锁存命令的作用是将当前计数值先锁存起来再读。锁存命令只有当要求读取当前计数值时才使用。锁存命令的格式如图4.11所示。图4.11锁存命令格式2023/2/329
锁存命令字8位分两个字段:
计数器选择字段(D7D6);
锁存命令特征位字段(D5D4)。当D5D4=00时,就是锁存命令;当D5D4≠00时,就是方式命令的读/写指示位。
其余位(D3~D0)与锁存命令无关。2023/2/330(3)读回命令:
读回命令与前面的锁存命令不同,它既能锁存计数值又能锁存状态信息,而且读回命令可以锁存与读回单个或3个计数器的当前计数值和状态。其格式如图4.12所示。图4.11读回命令格式例如:读取计数器2的当前计数值,则读回命令=11011000B;读取计数器2的当前状态,则读回命令=11101000B;读取计数器2的当前计数值和状态,则读回命令=11001000B;读取全部3个计数器的当前计数值和状态,则读回命令=11001110B。4.5实现外部定时的计数初值计算4.5.1计数初值的计算
计数初值分两种情况:若作计数器用时,则无须计算,将计数的次数直接装入;若作定时器用时,则计数初值需要经过换算才能得到。其换算方法如下。(1)要求产生定时时间间隔的定时常数TC
(4-1)(2)要求产生频率为f的信号波形的定时常数TC
(4-2)312023/2/34.5.2计数初值的装入
由于82C54A内部的减法计数器和计数初值寄存器是16位,而82C54A外部引脚数据信号线只有8位,故16位计数初值要分两次装入,并且按先装低8位、后装高8位的顺序写入计数器的数据口。只有2方式和3方式具有自动重装计数初值的功能,其他方式都需要用户通过程序人工重装计数初值。
4.5.3计数初值的范围
由于计数初值寄存器和减法计数器是16位,故计数初值的范围以二进制数表示为0000H~FFFFH;以十进制数(BCD)表示为0000~9999。322023/2/34.6外部定时/计数器的初始化82C54A初始化有两个工作要做:
1.向命令寄存器写入方式命令字,包括选择计数器(3个计数器之一),确定工作方式(6种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD或二进制码)。
2.向已选定的计数器按方式命令的要求写入计数初值。
写入计数初
值的顺序如下:
当RW1RW0=01时,只写入低8位,高8位自动置0;
当RW1RW0=10时,只写入高8位,低8位自动置0;
当RW1RW0=11时,写入16位,先写低8位,后写高8位。332023/2/3例如,选择2号计数器,工作在3方式,计数初值
为533H(2个字节),采用二进制计数。
汇变语言初始化程序段如下。
MOVDX,307H ;命令口
MOVAL,10110110B ;2号计数器的方式命令字
OUTDX,AL
MOVDX,306H ;2号计数器数据口
MOVAX,533H ;计数初值
OUTDX,AL ;先送低字节到2号计数器
MOVAL,AH ;取高字节送AL
OUTDX,AL ;后送高字节到2号计数器
2023/2/3344.7定时/计数器的应用4.7.1系统配置的定时/计数器应用1.系统配置的82C54A应用设置如图4.13所示。其中:OUT0用用作时钟中断OUT1用要用做存储器动态定时刷新OUT2用用作扬声器发声控制0号计数器=40H(端口地址)1号计数器=41H(端口地址)2号计数器=42H(端口地址)方式命令寄存器=43H(端口地址)。以上用途设置及地址的分配用户不能更改。系统提供个时钟脉冲频率为1.19318MHz。352023/2/3图4.13微机系统配置的82C54A应用362023/2/32.微机系统配置的82C54A初始化程序段(1)计数器0:用于定时中断(约55ms申请1次中断)MOVAL,00110110B ;初始化方式命令OUT43H,ALMOVAX,00H ;初值为0000H(最大值)OUT40H,AL ;先写低字节MOVAL,AHOUT40H,AL ;再写高字节
(2)计数器1:用于DRAM定时刷新(每隔15μs请求1次DMA传输)MOVAL,01010100B ;初始化方式命令OUT43H,ALMOVAL,12H ;初值为12HOUT41H,AL ;只写低字节(3)计数器2:用于产生约900Hz的方波使扬声器发声MOVAL,10110110B ;初始化方式命令OUT43H,ALMOVAX,533H ;初值为533HOUT42H,AL ;先写低字节MOVAL,AHOUT42H,AL ;再写高字节4.8.1定时/计数器用作测量脉冲宽度例4.1用82C54A测量脉冲宽度1.要求
某应用系统中,要求测量脉冲的宽度。系统提供的输入时钟CLK=1MHz,采用二进制计数。2.分析
在软启动时,门控信号GATE的作用是允许或禁止计数。例如,0方式就有这种特点,因此可以利用GATE门进行脉冲宽度测量,把被测的脉冲作为GATE门信号来控制计数器的计数过程,即控制计数的启/停。在被测脉冲信号为低电平时,装计数初值,当被测脉冲信号变高电平时,开始计数,直至被测脉冲信号再次变低电平,停止计数,并锁存。然后读出计数器1的当前值n,最后得到被测脉冲宽度是(65536-n)μs。4.8定时/计数器的应用设计举例2023/2/3373.设计选择计数器通道1,工作方式为0方式。如图4.14所示。
从波形图中可以看出,当GATE1门信号也就是被测信号为低电平时,即使写入计数初值也不开始计数,只有当GATE1门信号也就是被测信号变为高电平时才开始计数操作,并且直到GATE1门信号也就是被测信号再次变为低电平时才结束。于是把这一段计数过程中所累积的时钟计数脉冲的个数乘以脉冲的周期就得到被测信号的宽度。2023/2/338图4.14脉冲宽度测量原理图脉宽测量汇编语言程序段如下。MOVDX,307H ;82C54A的命令口MOVAL,70H ;方式命令OUTDX,ALMOVDX,305H ;1号计数器的数据口MOVAX,0000H;定时常数
OUTDX,AL ;定时常数低字节MOVAL,AH ;定时常数高字节OUTDX,ALMOVDX,307H ;82C54A的命令口MOVAL,40H ;1号计数器的锁存命令MOVDX,305HINAL,DX ;从1号计数器读当前计数值,保存MOVBL,ALINAL,DXMOVBH,ALMOVAX,0000H
SUBAX,BX ;65536-BX,可得被测脉冲的宽度2023/2/3394.8.2定时/计数器用作定时例4.2用82C54A定时
1.要求
某应用系统中,要求定时器每隔5ms发出一个扫描负脉冲,系统提供的时钟CLK为20kHz,使用十进制计数。试写出定时器的初始化程序。2.分析
(1)选择工作方式
为了产生每隔5ms一次的连续的定时脉冲,选择82C54A的2方式是合适的。为此,利用82C54A的计数器2,将它的OUT2作为定时脉冲输出。
(2)计算定时常数
因为是做定时器,故需要进行定时常数计算。将系统提供的CLK作为通道2的输入时钟CLK2,其周期T=1/20kHz=0.05ms,按照要求定时时间为5ms,根据式(4-1),可得定时常数为 TC=5ms/0.05ms=1002023/2/3403.初始化程序定时器汇编语言初始化程序段如下。MOVDX,307H ;82C54A的命令口MOVAL,95H ;方式命令OUTDX,ALMOVDX,306H ;计数器2的数据口MOVAL,100 ;定时常数OUTDX,AL2023/2/3414.8.3定时/计数器用作分频
例4.3用82C54A进行分频
1.要求
某应用系统中,要求方波发生器产生f=1000Hz的方波,系统提供的输入时钟CLK=1.19318MHz,采用二进制计数。试写出分频器的初始化程序。2.分析
(1)选择工作方式
为了产生方波,选择82C54A的3方式是合适的。为此,利用82C54A的计数器0,将它的OUT0作为方波输出。
(2)计算计数初值
将系统提供的CLK作为计数器0的输入时钟CLK0,按照要求输出OUT0=1000Hz的方波,根据式(4-2),可得定时常数为 TC=CLK0/OUT0=1.19318MHz/1000Hz=1193=4A9H2023/2/3423.初始化程序分频器汇编语言初始化程序段如下。MOVDX,307H ;82C54A的命令口MOVAL,36H ;方式命令OUTDX,ALMOVDX,304H ;计数器0的数据口MOVAX,4A9H;定时常数OUTDX,AL ;装入定时常数低字节MOVAL,AHOUTDX,AL ;装入定时常数高字节2023/2/3432023/2/3444.8.4定时/计数器同时用作计时和分频
例4.4利用82C54A在生产线进行计数与定时
1.要求
某罐头包装流水线,一个包装箱能装24罐,要求每通过24罐,流水线要暂停5s,等待封箱打包完毕,然后重启流水线,继续装箱。按Esc键则停止生产。2.分析
为了实现上述要求,有两个工作要做:一是对24罐计数;二是对5s停顿定时。并且,两者之间又是相互关联的。为此,选用82C54A的计数器0作计数器,计数器1作定时器,并且把计数器0的计数已到(24)的输出信号OUT0,连到计数器1的GATE1线上,作为外部硬件启动信号触发计数器1的5s定时,去控制流水线的暂停与重启。其工作流程中的计数与定时之间的关系如图4.15所示。2023/2/345图4.15工作流程中的计数与定时之间的关系3.设计(1)硬件设计
电路结构原理如图4.16所示。
检测原理是罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到计数器0的CLK0,对罐头进行计数。计数器0作为计数器,工作在2方式。计数器1作为定时器,工作在1方式2023/2/346图4.16包装流水线计数-定时装置电路原理(2)软件设计包装流水线汇编语言程序段(只写出代码段)如下。
codesegmentSTART:MOVDX,307H ;计数器0初始化MOVAL,15H;命令字OUTDX,ALMOVDX,304H ;写计数器0计数初值MOVAL,24;计数器0计数初值OUTDX,ALMOVDX,307H ;计数器1初始化MOVAL,73H;命令字OUTDX,ALMOVAX,1F4H
;计数器1定时常数MOVDX,305H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遵义医科大学《产品交互设计》2023-2024学年第二学期期末试卷
- 唐山工业职业技术学院《中医四诊技能》2023-2024学年第二学期期末试卷
- 河北东方学院《幼儿园教育环境创设》2023-2024学年第二学期期末试卷
- 做账实操-代理记账公司的利润计算
- 入党积极分子民主表
- 辽宁工程技术大学《男装制版与工艺》2023-2024学年第二学期期末试卷
- 吉林航空职业技术学院《专题设计》2023-2024学年第二学期期末试卷
- 焦作大学《新闻评论与体育》2023-2024学年第二学期期末试卷
- 广东酒店管理职业技术学院《抽样设计与推断》2023-2024学年第二学期期末试卷
- 湖北大学知行学院《结构化学A》2023-2024学年第二学期期末试卷
- LY/T 3400-2024荒漠与荒漠化防治术语
- 2024-2025学年第二学期英语教研组工作计划
- 2025年往年教师职称考试试题
- 2025年春季学期学校全面工作安排表
- 幼儿园开学前的厨房人员培训
- 《幼儿教育政策与法规》教案-单元6 幼儿园的工作人员
- 虚拟制片技术在VRAR应用中的角色建模与渲染-洞察分析
- GB/T 45167-2024熔模铸钢件、镍合金铸件和钴合金铸件表面质量目视检测方法
- 光伏施工安全培训课件
- 消防员证考试题库2000题中级
- 部编人教版小学4四年级《道德与法治》下册全册教案
评论
0/150
提交评论