微机原理及其应用-第6章课件_第1页
微机原理及其应用-第6章课件_第2页
微机原理及其应用-第6章课件_第3页
微机原理及其应用-第6章课件_第4页
微机原理及其应用-第6章课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及其应用_第6章课件第6章计数/定时技术第6章定时与计数技术及应用定时/计数器——8253本章内容定时与计数技术及应用定时/计数器——8253本章内了解定时/计数技术的应用情况掌握8253的连接与编程学习目的熟习8253的工作方式了解定时/计数技术的应用情况掌握8253的连接与编程学习目6.1概述

定时计数技术在计算机中具有极为重要的作用。微机控制系统中,常要按一定的采样周期对处理对象进行采样或定时检测某些参数等,用计数器对外部事件计数,即记录外设提供的脉冲个数。在实时操作系统和多任务操作系统中,可以利用定时器产生的定时中断进行进程调度。

6.1概述定时计数技术在计算机中具有极为重

定时器和计数器都由数字电路中的计数电路构成。前者记录高精度晶振脉冲信号,因此可以输出准确的时间间隔,称为定时器,而当记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数,称为计数器。

定时的方法有3种:软件定时、不可编程的硬件定时和可编程的定时。定时器和计数器都由数字电路中的计数电路构成。1.软件定时

﹡CPU执行每条指令需要一定的时间,重复执行一些指令会占用一段固定的时间,适当地选取指令和循环次数便很容易实现定时功能﹡这种方法不需要增加硬件,可通过编程来控制和改变定时时间,灵活方便。﹡缺点是CPU重复执行的这段程序的目的仅为延时,从而降低了CPU利用率。1.软件定时﹡CPU执行每条指令需要一定的时2.不可编程的硬件定时

采用数字电路中的分频器将系统时钟进行适当的分频产生需要的定时信号;也可以采用单稳电路或简易定时电路(如常用的555定时器)由外接RC电路控制定时时间。定时范围不易由程序来改变和控制,使用不甚方便,而且定时精度也不高。2.不可编程的硬件定时采用数字电路中的分频器将系3.可编程的定时采用软、硬件相结合的方法,用可编程定时计数器芯片构成一个方便灵活的定时计数电路。 这种电路不仅定时值和定时范围可用程序确定和改变,而且具有多种工作方式,可以输出多种控制信号 由微处理器的时钟信号提供时间基准,故计时也精确稳定。如Intel8253。

3.可编程的定时采用软、硬件相结合的方法6.2Intel8253可编程定时器/计数器6.2.18253的基本功能和内部结构(1)3个独立的16位计数器,最大计数范围为1~65536;(2)每个计数器均可以按二进制或二—十进制计数;(3)计数器速率可达2MHz;(4)可编程6种不同的工作方式;(5)所有输入和输出都与TTL兼容。

8253具有较好的通用性和使用灵活性,几乎适合于任何一种微处理器组成的系统。

1.8253PIT的基本功能6.2Intel8253可编程定时器/计数器6.2.12.8253的内部结构图6.18253的内部结构示意图2.8253的内部结构图6.18253的内部结构示意图(1)数据总线缓冲器

8位、双向、三态的缓冲器,可直接挂在数据总线上。CPU通过数据总线D0~D7传送如下信息:

①向控制寄存器写入控制字。②向某计数器写入计数初值。③CPU通过缓冲器读取计数器的当前计数值(1)数据总线缓冲器8位、双向、三态的缓冲(2)读/写控制逻辑

决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。

①CS片选信号,由地址总线经I/O端口译码电路产生。②RD读信号,有效时允许CPU读取所选定的计数器中的内容。③WR写信号,有效时允许CPU将计数初值写入所选中的计数器中或将控制字写入控制寄存器中。④A1A0端口选择信号, 当A1A0=00,01,10时表示分别选中计数器0,1,2当A1A0=11时选中控制寄存器(2)读/写控制逻辑决定三个计数器和控制字寄存器中哪(3)控制寄存器接收从CPU来的控制字, 并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器, 控制寄存器只能写入,不能读出。

(4)计数器8253所能实现的定时时间,取决于计数脉冲的频率和计数器的初值,即:定时时间=时钟脉冲周期Tc×预置的计数初值n。外部输入到CLK引脚上的时钟脉冲频率不能大于2MHz(3)控制寄存器接收从CPU来的控制图6.2计数器内部逻辑图控制单元初值寄存器减1计数器输出锁存器内部总线CLKGATEOUT控制单元初值寄存器减1计数器输出锁存器内部总线CLK图6.2计数器内部逻辑图控制单元初值寄存器减1计数器输出锁6.2.28253的引脚信号图6.38253PIT管脚图计

0计

1计

2数

线控

线电

线

8253是一片具有3个独立通道的16位计数器/定时器芯片,使用单一+5V电源,24引脚双列直插式封装,如图6.3所示6.2.28253的引脚信号图6.38253PIT管脚1.与CPU的接口信号(1)D0~D7——三态双向数据线。与CPU数据总线相连, 用于传递CPU与8253之间的数据信息、控 制信息和状态信息;(2)CS——片选信号(ChipSelect),输入,低电平有效(3)WR——写信号,输入,低电平有效,用于控制CPU对 8253的写操作,可与A1,A0信号配合以决定 是写入控制字还是计数初值;1.与CPU的接口信号(1)D0~D7——三态双向数据线。(4)RD——读信号,输入,低电平有效。用于控制CPU 对8253的读操作,可与A1,A0信号配合读取 某个计数器的当前计数值;(5)A0,A1­——地址输入线。用于8253内部寻址的4个 端口,即3个计数器和一个控制字寄存 器。一般与CPU低位的地址线相连

。(4)RD——读信号,输入,低电平有效。用于控制CPU A1A0寄存器选择和操作000000001011110000×100001111×100110011××01010101××写入计数器0写入计数器1写入计数器2写入控制字寄存器读计数器0读计数器1读计数器2无操作

禁止使用无操作CSRDWR表6.18253读/写操作逻辑表

A1A0寄存器选择和操作01000写入计数器0CSRDWR表2.与外部设备的接口信号(1)CLK0(CLK1,CLK2)——时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号,加在CLK引脚的输入时钟周期不得小于380ns;(2)GATE0(GATE1,GATE2)——门控输入端,用于外部控制计数器的启动或停止。当GATE为高电平时,允许计数器工作,当GATE为低电平时,禁止计数器工作;(3)OUT0(OUT1,OUT2­)­——计数输出端。在不同工作方式中,当计数器计数到0时,OUT引脚输出相应的信号。

2.与外部设备的接口信号(1)CLK0(CLK16.2.38253的控制字与初始化编程1.8253的控制字8253的控制字有4个主要功能:*

选择计数器;*

确定计数器数据的读写格式;*

确定计数器的工作方式;*

确定计数器计数的数制。

控制字的格式如图6.4所示6.2.38253的控制字与初始化编程1.8253的控D7D6D5D4D3D2D1D0计数器读/写格式工作方式数制0—二进制1—二―十进制(BCD)000方式0001方式1

10方式2

11方式3100方式4101方式500计数器锁存命令10只读/写高8位01只读/写低8位11首先写低8位然后写高8位00选择计数器001选择计数器110选择计数器211非法选择图6.48253控制字格式注:图中×可以是0,也可以是1,一般取0D7D6D5(1)计数器选择(D7D6)控制字的最高两位决定这个控制字是哪一个计数器的控制字。(2)读/写格式(D5D4)00—计数器锁存命令,则把当前计数值锁存10—只读/写高8位,低8位就自动为001—只读/写低8位,高8位自动置0;11—先读/写低8位,后读/写高8位(1)计数器选择(D7D6)控制字的最高两位决定这个控制字(3)工作方式(D3D2D1)

8253的每个计数器可以有6种不同的工作方式,由这3位决定选择其中的一种。(4)数制选择(D0)8253的每个通道都有两种计数制:二进制和二–十进制(BCD码)计数,由D0位决定。选择二进制时(D0=0),写入初值的范围为0000H~FFFFH,其中0000H是最大值,代表65536选择二–十进制时,写入初值范围为0000~9999,其中0000代表最大值10000。(3)工作方式(D3D2D1)2.8253的初始化编程

刚接通电源时,8253芯片通道都处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。

(1)写入控制字

用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作方式和计数格式。

2.8253的初始化编程刚接通电源时,8253芯片(2)写入计数初值﹡若是8位数,只要用一条输出指令就可完 成初值的设置。﹡如果是16位数,则必须用两条输出指令来 完成,而且规定先送低8位数据,后 送高8位数据。﹡计数初值为0时,也要分成两次写入。﹡采用二进制计数时0表示65536,采用BCD 计数时0表示10000。

(2)写入计数初值﹡若是8位数,只要用一条输出指令就可完

8253工作过程中,CPU可读取任一通道的计数值。CPU读到的是执行输入指令瞬间计数器的当前值。但8253的计数器是16位,所以要分2次读至CPU。因为若不锁存的话,在前后两次执行输入指令的过程中,计数值可能已经变化了。锁存当前计数值有下面两种方法:①利用GATE信号使计数过程暂停。②向8253写入一个方式控制字,令8253通道的锁存器锁存。8253工作过程中,CPU可读取任一通道的计数值。C在某微机系统中,8253的3个计数器的端口地址分别为3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要求8253的通道0工作于方式3,BCD计数,并已知对它写入的计数初值n=1234(十进制数),则初始化程序为:

MOVAL,00110111B;控制字:选择通道0,先读/写低字节,

;后高字节,方式3,BCD计数MOVDX,3F6H;指向控制口OUTDX,AL;送控制字MOVAL,34H;计数值低字节,代表00110100BCDMOVDX,3F0H;指向计数器0端口OUTDX,AL;写入低字节MOVAL,12H;计数值高字节,代表00010010BCDOUTDX,AL;写入高字节在某微机系统中,8253的3个计数器的端口地址分别为6.2.48253的工作方式8253是一种面向微机系统的专用接口芯片,它的每一个计数器都可以按照控制字的规定有6种不同的工作方式,每种工作方式中都提供了以下三种情况:*

正常计数的波形图;*

正在计数过程中改变门控信号GATE后对整个计 数工作的影响;*

正在计数的过程中改变计数值对整个计数工作的 影响。6.2.48253的工作方式8253是一种面向微机系统的专方式0——计数结束中断方式(InterruptonTerminalCount)方式0的工作时序如图6.5(a)(b)(c)所示。方式0——计数结束中断方式方式0的工作时序如图6.5(a)(图6.5(a)方式0正常计数图6.5(a)方式0正常计数CW=10LSB=3WRCLKGATEOUT322210FFCW=10LSB=3WRCLKGATEOUT322210FF图6.5(b)方式0时GATE信号的作用CW=10LSB=3WRCLKGATEOUT3222图6.5(c)方式0时计数过程中改变计数值图6.5(c)方式0时计数过程中改变计数值注意8253写计数值是由CPU的WR信号控制的,在WR信号的上升沿,计数值被送入对应计数器的计数值寄存器,在WR信号上升沿之后的下一个CLK脉冲才开始计数。如果设置计数初值N,输出OUT是在写入命令执行后,第N+1个CLK脉冲之后,才变为高电平的。后面的方式1、2、4、5也有同样的特点。注意8253写计数值是由CPU的WR信号控制2.方式1——可编程的单稳态触发器(ProgrammableOneShort)方式1的工作波形如图6.6(a)、(b)、(c)所示。2.方式1——可编程的单稳态触发器方式1的工作波形如图

图6.6(a)方式1正常计数LSB=3WRCLKGATEOUT3210FF32CW=12LSB=3WRCLKGATEOUT3210FF32CW=12图6.6(a)方式1正常计数LSB=3WRCLK图6.6(b)方式1时GATE信号的作用LSB=3WRCLK321321CW=120GATEOUT图6.6(b)方式1时GATE信号的作用LSB=图6.6(c)方式1时计数过程中改变计数值LSB=2WRCLKGATEOUT4210FF3FECW=12LSB=4LSB=2WRCLKGATEOUT4210FF3FECW=12LSB=4图6.6(c)方式1时计数过程中改变计数值LSB=3.方式2——比率发生器、分频器(RateGenerator)方式2用门控信号达到同步计数的目的,波形图如图6.7(a)、(b)、(c)、(d)所示。图6.7(a)方式2正常计数3.方式2——比率发生器、分频器方式2用门控信号达到同图6.7(b)方式2时GATE信号的作用图6.7(b)方式2时GATE信号的作用4CW=14LSB=5WRCLKGATEOUT3214534CW=14LSB=4LSB=5WRCLKGATEOUT321453图6.7(c)方式2时计数过程中改变计数值4CW=14LSB=5WRCLKGATEOUT3214.方式3——方波发生器(SquareWaveGenerator)方式3的工作过程同方式2,只是输出的脉宽不同,波形如图6.8(a)、(b)、(c)、(d)所示。图6.8(a)方式3计数值为偶数时的波形4.方式3——方波发生器方式3的工作过程同方式2,只是图6.8(b)方式3计数值为奇数时的波形图6.8(b)方式3计数值为奇数时的波形图6.8(c)方式3GATE信号的作用图6.8(c)方式3GATE信号的作用图6.8(d)方式3计数过程中改变计数值图6.8(d)方式3计数过程中改变计数值5.方式4——软件触发选通方式(SoftwareTriggeredStrobe)GATE门控信号只是用来允许或停止定时操作,定时的执行过程由装入的初值决定,波形图如图6.9(a)、(b)、(c)所示。图6.9(a)方式4正常计数5.方式4——软件触发选通方式GATE门控信号只是用来图6.9(b)方式4GATE信号的作用图6.9(b)方式4GATE信号的作用图6.9(c)方式4计数过程中改变计数值图6.9(c)方式4计数过程中改变计数值6.方式5——硬件触发选通方式(HardwareTriggeredStrobe)方式5为硬件触发选通方式,完全由GATE端引入的触发信号控制定时和计数,波形图如图6.10(a)、(b)、(c)所示。图6.10(a)方式5正常计数OUTLSB=3WRCLKGATECW=1A3210FF36.方式5——硬件触发选通方式方式5为硬件触发选通方式图6.10(b)方式5时GATE信号的作用图6.10(b)方式5时GATE信号的作用图6.10(c)方式5时计数过程中改变计数值图6.10(c)方式5时计数过程中改变计数值例6.16.2.5应用举例1.8253定时功能的应用

设某应用系统中,提供一个频率为10kHz的时钟信号,要求设计一个100ms定时器,每隔100ms向CPU发出一次中断请求信号。

分析:采用8253定时器的通道0可以实现这一要求。将8253芯片的CLK0接到系统的10kHz时钟上,OUT0输出接到CPU的中断请求线上,设8253的端口地址为10H~13H,如图6.11所示。例6.16.2.5应用举例1.8253定时功能的应用中断请求信号CPU总线OUT0图6.118253用于定时中断中断请求信号CPU总线OUT0图6.118253用于定时(1)选择工作方式由于系统要求每隔100ms定时中断一次,即频率为10Hz,可选用方式2来实现。每到100ms,即计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,同时按原设定值重新开始计数,即具有计数值自动重装的功能。

(1)选择工作方式由于系统要求每隔100m(2)确定计数初值已知fCLK0=10kHz,则TCLK0=0.1ms,所以,计数初值:

N=TOUT0/TCLK0=100ms/0.1ms=1000=03E8H

(3)初始化编程根据以上要求,可确定8253通道0的方式控制字为00110100B,即34H。

(2)确定计数初值已知fCLK0=10kHz,则T初始化程序段如下:

MOVAL,34H;通道0,16位计数,方式2,二进制计数OUT13H,AL;写入方式控制字到控制字寄存器MOVAL,0E8H;计数初值低8位OUT10H,AL;写入计数初值低8位到通道0MOVAL,03H;计数初值高8位OUT10H,AL;写入计数初值高8位到通道0初始化程序段如下:MOVAL,34H;通道0,16位例6.22.8253计数功能的应用在IBMPC机(8088CPU系统)中,利用8253的通道0记录外部事件的发生次数,每输入一个脉冲表示事件发生1次,当事件发生100次后就向CPU提出中断请求(边沿触发)。假设8253片选信号的I/O地址范围为200H~203H,8253的连接电路如图6.12所示。例6.22.8253计数功能的应用外部事件产生A0A1A3~A9译码电路图6.128253用于外部事件的计数外部事件产生A0A1A3~A9译码图6.128253用于

根据要求,可以选择方式0来实现,计数初值N=100。8253初始化程序段如下:

MOVDX,203H;设置方式控制字地址MOVAL,10H;设定通道0为工作方式0,二进制计数,只写入

温馨提示

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

评论

0/150

提交评论