第10章-定时器/计数器-微机原理课件_第1页
第10章-定时器/计数器-微机原理课件_第2页
第10章-定时器/计数器-微机原理课件_第3页
第10章-定时器/计数器-微机原理课件_第4页
第10章-定时器/计数器-微机原理课件_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

第10章定时/计数技术及接口§10.1定时/计数技术概述

§10.2可编程定时器/计数器8253/8254§10.38253在微机系统中的应用1第10章定时/计数技术及接口§10.1定时/计数技术概§10.1定时/计数技术概述

§10.1.1

系统的时间基准

计算机为什么需要时间基准?第一,计算机系统本身需要一个时间基准,以保证计算机在确定时刻完成规定动作。第二,用计算机构成的测控系统常被要求能提供一些定时和计数的功能等。计算机系统的时间基准:主时钟频率(简称主频)

2§10.1定时/计数技术概述§10.1.1系统的时间1.软件定时

软件定时:让CPU执行一段具有固定延时时间的循环程序来实现的延时。是实现系统定时或延时控制的最简单的方法。优点:不需要外加硬件电路且定时精确。缺点:定时时间越长,CPU的开销越大,而且不能响应中断,否则定时就不准确了。§10.1.2系统定时分类31.软件定时§10.1.2系统定时分类3系统定时分类2.硬件定时硬件定时—由硬件电路来实现的定时 优点—减轻CPU的负担,使得在定时期间CPU能做其它工作。

不可编程的硬件定时—555时基电路缺点:不易修改定时参数,时间长了会老化。可编程硬件定时—8253定时/计数器优点:定时参数和工作方式又可由软件来控制,定时过程不需要CPU干预。4系统定时分类2.硬件定时4§10.2可编程定时器/计数器8253/8254

§10.2.18253主要特性

单一正5V电源,NMOS工艺制成。②

片内具有3个独立的16位减法计数器(或称计数通道)。③

计数频率为0~2MHz。④

两种计数方式:即二进制或BCD方式计数。⑤

六种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。⑥

可由软件或硬件控制开始计数或停止计数。

5§10.2可编程定时器/计数器8253/8254§10§10.2.28253内部结构

6§10.2.28253内部结构68253内部结构1.数据总线缓冲器:数据总线缓冲器是一个三态,双向8位寄存器,用于将8253与系统总线D0~D7相连。CPU通过数据总线缓冲器向8253写入数据、命令或从数据总线缓冲器读取数据和状态信息。数据缓冲器有三个基本功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。78253内部结构1.数据总线缓冲器:78253内部结构2.读/写逻辑读/写逻辑由CPU发来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向:是读出还是写入。3.控制字寄存器控制字寄存器接受CPU送来的控制字。这个控制字用来选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出。88253内部结构2.读/写逻辑88253内部结构4.计数器8253有三个独立的计数通道每个通道的内部结构完全相同,均由16位的计数单元(减1计数器)16位初值寄存器(只写)16位输出锁存器组成控制单元—控制该计数器的工作方式

98253内部结构4.计数器9图10.2计数器的内部逻辑

10图10.2计数器的内部逻辑108253内部结构计数初值寄存器(16位):用于存放计数初值(定时常数、分频系数),最大计数值为65536(64KB)。在初始化时同时一起装入的,计数初值寄存器的计数初值,在计数器计数过程中保持不变。

计数单元(16位):用于进行减1计数操作,每来一个时钟脉冲,它就作减1运算,直至将计数初值减为零。当前计数值锁存器(16位):用于锁存减1计数器的内容,以供读出和查询。118253内部结构计数初值寄存器(16位):用于存放计数初值8253内部结构初始化时首先向计数通道装入计数初值,送入计数初值寄存器然后送到计数单元(减1计数器)。计数启动后(GATE允许),在时钟脉冲CLK作用下,计数单元进行减1计数,直到计数值减到0,输出OUT时,计数结束。计数初值寄存器的内容在计数过程中保持不变。128253内部结构初始化时12§10.2.38253外部特性

8253的引脚图13§10.2.38253外部特性8253的引脚图138253外部特性8253的引脚分为两部分:1.与CPU连接的引脚D7~D0:数据线,双向,三态:写信号:读信号A1、A0:地址线,用于寻址8253内部的4个端口:片选信号148253外部特性8253的引脚分为两部分:14表10.18253端口操作中各信号组合所实现的功能

15表10.18253端口操作中各信号组合所实现的功能18253外部特性2.与外设的接口引脚

CLK0~2:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。GATE0~2:门控信号,输入。用于外部控制计数器的启动计数和停止计数的操作。OUT0~2:计数输出端。当计数器从初值开始完成计数操作时,OUT引脚上输出相应的信号.

168253外部特性2.与外设的接口引脚16§10.2.48253方式控制字(CW)

8253控制字的格式如右所示:

D7D6D5D4D3D2D1D00=二进制1=二—十进制工作方式选择000=方式0001=方式1X10=方式2X11=方式3100=方式4101=方式5通道控制字寻址00=通道0控制寄存器01=通道1控制寄存器10=通道2控制寄存器11=不用读写操作00=锁定当前计数值01=读/写计数器低8位10=读写计数器高8位11=先读/写计数器低8位再读/写计数器高8位

17§10.2.48253方式控制字(CW)8253控制字

例:选择2号计数器,工作在方式3,计数初值为533H(2个字节),采用二进制计数。其初始化程序段为:

(设8253的端口地址为304H~307H)MOVDX,307H;命令口

MOVAL,10110110B

;2号计数器的初始化命令字

OUTDX,AL;写入命令寄存器

MOVDX,306H;2号计数器数据口

MOVAX,533H;计数初值

OUTDX,AL;选送低字节到2号计数器

MOVAL,AH;取高字节送ALOUTDX,AL;后送高字节到2号计数器方波发生器1初始化编程举例18例:选择2号计数器,工作在方式3,计数初值为2读当前计数值在事件计数器的应用中,需要读出计数过程中的当前计数值,以便根据这个值做计数判断。

例:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为

MOVDX,307H;命令口L:MOVAL,01000000B

;1号计数器的锁存命令

OUTDX,AL;写入命令寄存器

MOVDX,305H;1号计数器数据口

INAL,DX;读1号计数器的当前计数值

CMPAL,0FFH;比较

JNEL;非全“1”,再读

HLT;是全“1”,暂停

192读当前计数值在事件计数器的应用中,需要读出计数§10.2.68253初始化编程

初始化编程的具体步骤为:1.

写入计数器的控制字,规定其工作方式等;2.

写入计数初值。若规定只写低8位,则写入的为计数值的低8位,高8位自动置0;若规定只写高8位,则写入的是计数值的高8位,低8位自动置0;若规定写16位计数值,则分两次写入,先写的必是低8位,后写的必是高8位。

20§10.2.68253初始化编程初始化编程的具体步骤例10.1:某微机系统中8253的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为FFH,按二进制计数;计数器1工作在方式2,计数初值为1000,按BCD码计数。试写出初始化程序段。

21例10.1:某微机系统中8253的端口地址为40H~43H,

解:1.按要求找出所用计数器的控制字计数器0的控制字:

选计数器0只写低8位

选工作方式0二进制计数计数器1的控制字:

选计数器1只写高8位

选工作方式2BCD计数

0

0

0

1

0

0

0

0

0

1

1

0

0

1

0

1

例10.1:22解:0001000001100例10.1:2.初始化程序段MOVAL,10H;写通道0控制字OUT43H,ALMOVAL,0FFH;写通道0计数初值OUT40H,ALMOVAL,65H;写通道1控制字OUT43H,ALMOVAL,10H;写通道1计数初值OUT41H,AL23例10.1:2.初始化程序段23例10.2:

设8253端口地址为FFF0H~FFF3H,要求计数器2工作在方式5,二进制计数,初值为F03FH。试按上述要求完成8253的初始化。解:1.控制字选计数器2写低8位

选工作方式5二进制计数再写高8位

24例10.2:设8253端口地址为FFF0H~FFF3H,要例10.2:2.初始化程序段

MOV DX,0FFF3H;DX指向控制端口

MOV AL,0BAH;写控制字

OUTDX,AL MOVDX,0FFF2H ;DX指向通道2

MOV AL,3FH;写初值低8全

OUTDX,AL MOV AL,0F0H;写初值高8位

OUTDX,AL25例10.2:2.初始化程序段25§10.2.78253工作方式8253作为一个可编程的定时/计数器,可以编程选择6种不同的工作方式,不论哪种工作方式,都会遵守下面几条基本原则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或者低电平)。初值写入以后,要经过一个时钟上升沿和一个时钟下降沿,计数执行部件才开始计数。

26§10.2.78253工作方式8253作为一个可编程的定8253工作方式通常,在时钟脉冲CLK的上升沿,门控信号GATE被采样。对于一种给定的工作方式,门控信号的触发方式有具体规定,即或者用电平触发,或者用边沿触发。方式0、4中,门控信号为电平触发;方式1、5中,门控信号为上升沿触发;方式2、3中,既可用电平触发,也可用上升沿触发。在时钟脉冲的下降沿,计数器作减1计数。0是计数器所能容纳的最大值,因为用二进制计数时,16位计数器中,0相当于216,用BCD码计数时,0相当于104。278253工作方式通常,在时钟脉冲CLK的上升沿,门控信号GA8253工作方式工作方式及其特点8253中有三个独立的计数器,每个计数器都可编程选择六种工作方式之一。区别这六种工作方式主要从三个方面:其一是他们的输出波形不同;其二是启动计数器的触发方式不同;其三是计数过程中门控信号对计数操作的影响不同。288253工作方式工作方式及其特点281.方式0

--计数结束产生中断

图3.48253的0方式时序波形n=5n=5CLKOUTWRWRGATEOUTWROUT

543210543210n=998n=443210图10.4方式0输出波形图291.方式0--计数结束产生中断图3.48253的0方式方式0方式0有如下3个特点:

当向计数器写完计数值后,开始计数,计数一旦开始,输出端OUT就变成低电平,并在计数过程中一直保持低电平,当计数器减到零时,OUT立即变成高电平。门控信号GATE为高电平时,计数器工作;当GATE为低电平时,计数器停止了工作,其计数值保持不变。如果门控信号GATE再次变高时,计数器从中止处继续计数。在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数初值重新工作。30方式0方式0有如下3个特点:30例1:使计数器T1工作在方式0,进行16位二进制计数,计数初值的高低字节分别为BYTEH和BYTEL。 (设8253的端口地址为304H~307H)

其初始化程序段为:

MOVDX,307H;命令口

MOVAL,01110000B

;方式字

OUTDX,ALMOVDX,305H;T1数据口

MOVAL,BYTEL;计数值低字节

OUTDX,ALMOVAL,BYTEH;计数值高字节

OUTDX,AL31例1:使计数器T1工作在方式0,进行16位二进制计数,计数2.方式1—可重触发的单稳态触发器图10.5方式1输出波形图322.方式1—可重触发的单稳态触发器图10.5方式1输出波形情况一:写入计数初值后,计数器并不立即开始工作;门控信号GATE有效,才开始工作,使输出OUT变成低电平;直到计数器值减到零后,输出才变高电平。

情况二:在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。

情况三:

如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。方式1说明33情况一:方式1说明33例2:使计数器T2

工作在方式1,进行8位二进制计数,并设计数初值的低8位为BYTEL。

(设8253的端口地址为304H~307H)其初始化程序段为

MOVDX,307H;命令口

MOVAL,10010010B

;方式字

OUTDX,ALMOVDX,306H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL34例2:使计数器T2工作在方式1,进行8位二进制计数,并设3.方式2

—分频器方式2是一种自动装计数初值的N分频器。图10.6方式2输出波形图353.方式2—分频器方式2是一种自动装计数初值的N分频器。图例3:使计数器T0工作在方式2,进行16位二进制计数。(设8253的端口地址为304H~307H)

其初始化程序段为

MOVDX,307H;命令口

MOVAL,00110100B

;方式字

OUTDX,ALMOVDX,304H;T0数据口

MOVAL,BYTEL;低8位计数值

OUTDX,ALMOVAL,BYTE;高8位计数值

OUTDX,AL36例3:使计数器T0工作在方式2,进行16位二进制计数。4.方式3—方波发生器方式3与方式2基本相同,也具有自动装入时间常数(计数初值)的功能。图10.7方式3输出波形图374.方式3—方波发生器方式3与方式2基本相同,也具有自动装入方式3与方式2的不同之处在于:

(1)工作在方式3,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。(2)由于方式3输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。38方式3与方式2的不同之处在于:385.方式4—软件触发的选通信号发生器图10.8方式4输出波形图395.方式4—软件触发的选通信号发生器图10.8方式4输出波例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装入高8位计数值。(设8253的端口地址为304H~307H)

其初始化程序段为:

MOVDX,307H;命令口

MOVAL,00110100B

;方式字

OUTDX,ALMOVDX,304H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL40例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装6.方式5—硬件触发的选通信号发生器图10.9方式5输出波形图416.方式5—硬件触发的选通信号发生器图10.9方式5输出波方式5方式5工作特点是由GATE上升沿触发计数器开始工作。1)在方式5工作方式下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。2)在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。42方式5方式5工作特点是由GATE上升沿触发计数器开始工作。46种工作方式的比较(参见表10.3~10.6)

方式2(分频器)和方式3(方波发生器),这两种方式共同的特点是具有自动再加载功能(装入)能力。二者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1个TCLK的负脉冲。方式3是在计数过程中,OUT的信号是占空比为1:1的方波或近似方波。方式4(软件触发单脉冲)和方式5(硬件触发单脉冲)。这两种方式的OUT输出波形相同,两者的区别是计数启动的触发信号不同,前者由写信号启动计数,后者由GATE信号的上升沿启动计数)。方式0(门控单稳)和方式1(门控单稳),这

两种方式的输出波形类似。436种工作方式的比较(参见表10.3~10.6)方式2(分各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2

N/20/N0N01N01N0144各种工作方式的输出波形方式0方式1方式2方式3方式8253工作方式例:设8253的计数器0,工作在方式1,计数初值为2050;计数器1,工作在方式2,计数初值为3000;计数器2,工作在方式3,计数初值为1000。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。458253工作方式例:设8253的计数器0,工作在方式1,计数例:分析:计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。计数器1工作在方式2,即分频器的方式。输出波形的频率f=2MHz/3000=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5µs。(1/666.7≈0.00151/2000000=0.0000005)计数器2工作在方式3,即方波发生器的方式。输出频率f=2MHz/1000=2000Hz的对称方波。46例:分析:46三个OUT的输出波形如下:47三个OUT的输出波形如下:47§11.2.88253应用举例

例10.3:IBM-PC/XT微机的某扩展板上使用一片8253,其端口地址为200H~203H。要求从定时器0的输出端OUT0得到500Hz的方波信号,从定时器1的输出端OUT1得到50Hz的连续单拍负脉冲信号。已知系统提供的计数脉冲频率为250KHz,其硬件连接见图10.10。试编写初始化此8253的程序段。

48§11.2.88253应用举例例10.3:IBM-PC图10.10例10.3的硬件连接图

49图10.10例10.3的硬件连接图49例10.3解:1.确定工作方式定时器1工作在方式2。2.计算计数初值 计数初值=分频系数=fclk/fout

定时器0:

N=fclk0/fout0=250000/500=500化为十六进制为01F4H。定时器1:N=fclk1/fout1=500/50=10化成16进制为0AH。

50例10.3解:50例10.33.确定控制字定时器0:定时器1:

51例10.33.确定控制字514.初始化程序段MOVDX,203H;写定时器0控制字MOVAL,36HOUTDX,ALMOVDX,200H;写定时器0计数初值低8位MOCAL,0F4HOUTDX,ALMOVAL,01H;写定时器0计数初值高8位OUTDX,ALMOVDX,203H;写定时器1控制字MOVAL,54HOUTDX,ALMOVDX,201H;写定时器1计数初值MOVAL,0AHOUTDX,AL524.初始化程序段52例10.4:某IBMPC/XT应用系统中,当某一外部事件发生时(给出一高电平信号),1秒钟后向主机申请中断。若用8253实现此延迟,试设计硬件连接图并对8253进行初始化。设8253的端口地址为40H~43H。

53例10.4:某IBMPC/XT应用系统中,当某一外部事件图10.11例10.4硬件连接图

54图10.11例10.4硬件连接图54例10.4:解:

1.确定工作方式

题目要求,OUT0输出的是连续方波,故定时器0工作在方式3,而OUT1端输出连续单拍负脉冲,那么,定时器1必须工作在方式2。2.计算计数初值

若8253的定时器工作在方式2或方式3,实际上相当于分频器,即OUT端的输出信号频率是由CLK端的信号频率经定时器分频得到的,而分频系数就是从计数初值开始减到1时所计得的时钟周期数。那么,计数初值N就是定时器的分频系数所对应的数字。也就是说,存在如下关系式:

计数初值=分频系数=fclk/fout55例10.4:解:1.确定工作方式55例10.4:定时器0:

N=fclk0/fout0=250000/500=500

化为十六进制为01F4H。定时器1:

N=fclk1/fout1=500/50=10

化成16进制为0AH。56例10.4:定时器0:563.确定控制字定时器0:控制字为36H

00110110选定时器0行写低8位

选工作方式3二进制计数

后写高8位

定时器1:控制字为54H

01010100选定时器1只写低8位

选工作方式2二进制计数

573.确定控制字定时器0:控制字为36H0014.初始化程序段MOV DX,203H;写定时器0控制字MOV AL,36HOUTDX,ALMOV DX,200H;写定时器0计数初值低8位MOV AL,F4HOUT DX,ALMOV AL,01H;写定时器0计数初值高8位OUT DX,ALMOVDX,203H;写定时器1控制字MOV AL,54HOUT DX,ALMOVDX,201H;写定时器1计数初值MOVAL,0AHOUT DX,AL584.初始化程序段58§10.38253在微机系统中的应用

§10.3.1IBMPC/XT系统板上的8253-5

定时器/计数器8253-5其原理与8253相同 三个通道的计数脉冲均为1.19MHz

计数器0:用于产生实时时钟信号计数器1:用于产生动态存储器刷新的地址更新信号计数器2:产生扬生器的发音驱动信号59§10.38253在微机系统中的应用§10.3.1§10.3.2IBMPC/XT中的扬声器接口

图10.12

IBMPC/XT系统中的扬声器接口电路

60§10.3.2IBMPC/XT中的扬声器接口图10IBMPC/XT中的扬声器接口例如,要使IBMPC/XT系统中的扬声器发出600Hz的声音,相应的程序段为:INAL,61H;读8255A-5的端口BORAL,3OUT61H,AL;将PB0和PB1置1,打开通道2的门,接通扬声器MOVAL,10110111BOUT43H,AL;置通道2工作在方式3,先写低8位后写高8位, BCD计数MOVAX,1989;计数初值=1.19MH/600Hz=1989OUT42H,AL;写初值低8位MOVAL,AH

OUT42H,AL;写初值高8位

61IBMPC/XT中的扬声器接口例如,要使IBMPC/第10章定时/计数技术及接口§10.1定时/计数技术概述

§10.2可编程定时器/计数器8253/8254§10.38253在微机系统中的应用62第10章定时/计数技术及接口§10.1定时/计数技术概§10.1定时/计数技术概述

§10.1.1

系统的时间基准

计算机为什么需要时间基准?第一,计算机系统本身需要一个时间基准,以保证计算机在确定时刻完成规定动作。第二,用计算机构成的测控系统常被要求能提供一些定时和计数的功能等。计算机系统的时间基准:主时钟频率(简称主频)

63§10.1定时/计数技术概述§10.1.1系统的时间1.软件定时

软件定时:让CPU执行一段具有固定延时时间的循环程序来实现的延时。是实现系统定时或延时控制的最简单的方法。优点:不需要外加硬件电路且定时精确。缺点:定时时间越长,CPU的开销越大,而且不能响应中断,否则定时就不准确了。§10.1.2系统定时分类641.软件定时§10.1.2系统定时分类3系统定时分类2.硬件定时硬件定时—由硬件电路来实现的定时 优点—减轻CPU的负担,使得在定时期间CPU能做其它工作。

不可编程的硬件定时—555时基电路缺点:不易修改定时参数,时间长了会老化。可编程硬件定时—8253定时/计数器优点:定时参数和工作方式又可由软件来控制,定时过程不需要CPU干预。65系统定时分类2.硬件定时4§10.2可编程定时器/计数器8253/8254

§10.2.18253主要特性

单一正5V电源,NMOS工艺制成。②

片内具有3个独立的16位减法计数器(或称计数通道)。③

计数频率为0~2MHz。④

两种计数方式:即二进制或BCD方式计数。⑤

六种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。⑥

可由软件或硬件控制开始计数或停止计数。

66§10.2可编程定时器/计数器8253/8254§10§10.2.28253内部结构

67§10.2.28253内部结构68253内部结构1.数据总线缓冲器:数据总线缓冲器是一个三态,双向8位寄存器,用于将8253与系统总线D0~D7相连。CPU通过数据总线缓冲器向8253写入数据、命令或从数据总线缓冲器读取数据和状态信息。数据缓冲器有三个基本功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。688253内部结构1.数据总线缓冲器:78253内部结构2.读/写逻辑读/写逻辑由CPU发来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向:是读出还是写入。3.控制字寄存器控制字寄存器接受CPU送来的控制字。这个控制字用来选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出。698253内部结构2.读/写逻辑88253内部结构4.计数器8253有三个独立的计数通道每个通道的内部结构完全相同,均由16位的计数单元(减1计数器)16位初值寄存器(只写)16位输出锁存器组成控制单元—控制该计数器的工作方式

708253内部结构4.计数器9图10.2计数器的内部逻辑

71图10.2计数器的内部逻辑108253内部结构计数初值寄存器(16位):用于存放计数初值(定时常数、分频系数),最大计数值为65536(64KB)。在初始化时同时一起装入的,计数初值寄存器的计数初值,在计数器计数过程中保持不变。

计数单元(16位):用于进行减1计数操作,每来一个时钟脉冲,它就作减1运算,直至将计数初值减为零。当前计数值锁存器(16位):用于锁存减1计数器的内容,以供读出和查询。728253内部结构计数初值寄存器(16位):用于存放计数初值8253内部结构初始化时首先向计数通道装入计数初值,送入计数初值寄存器然后送到计数单元(减1计数器)。计数启动后(GATE允许),在时钟脉冲CLK作用下,计数单元进行减1计数,直到计数值减到0,输出OUT时,计数结束。计数初值寄存器的内容在计数过程中保持不变。738253内部结构初始化时12§10.2.38253外部特性

8253的引脚图74§10.2.38253外部特性8253的引脚图138253外部特性8253的引脚分为两部分:1.与CPU连接的引脚D7~D0:数据线,双向,三态:写信号:读信号A1、A0:地址线,用于寻址8253内部的4个端口:片选信号758253外部特性8253的引脚分为两部分:14表10.18253端口操作中各信号组合所实现的功能

76表10.18253端口操作中各信号组合所实现的功能18253外部特性2.与外设的接口引脚

CLK0~2:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。GATE0~2:门控信号,输入。用于外部控制计数器的启动计数和停止计数的操作。OUT0~2:计数输出端。当计数器从初值开始完成计数操作时,OUT引脚上输出相应的信号.

778253外部特性2.与外设的接口引脚16§10.2.48253方式控制字(CW)

8253控制字的格式如右所示:

D7D6D5D4D3D2D1D00=二进制1=二—十进制工作方式选择000=方式0001=方式1X10=方式2X11=方式3100=方式4101=方式5通道控制字寻址00=通道0控制寄存器01=通道1控制寄存器10=通道2控制寄存器11=不用读写操作00=锁定当前计数值01=读/写计数器低8位10=读写计数器高8位11=先读/写计数器低8位再读/写计数器高8位

78§10.2.48253方式控制字(CW)8253控制字

例:选择2号计数器,工作在方式3,计数初值为533H(2个字节),采用二进制计数。其初始化程序段为:

(设8253的端口地址为304H~307H)MOVDX,307H;命令口

MOVAL,10110110B

;2号计数器的初始化命令字

OUTDX,AL;写入命令寄存器

MOVDX,306H;2号计数器数据口

MOVAX,533H;计数初值

OUTDX,AL;选送低字节到2号计数器

MOVAL,AH;取高字节送ALOUTDX,AL;后送高字节到2号计数器方波发生器1初始化编程举例79例:选择2号计数器,工作在方式3,计数初值为2读当前计数值在事件计数器的应用中,需要读出计数过程中的当前计数值,以便根据这个值做计数判断。

例:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为

MOVDX,307H;命令口L:MOVAL,01000000B

;1号计数器的锁存命令

OUTDX,AL;写入命令寄存器

MOVDX,305H;1号计数器数据口

INAL,DX;读1号计数器的当前计数值

CMPAL,0FFH;比较

JNEL;非全“1”,再读

HLT;是全“1”,暂停

802读当前计数值在事件计数器的应用中,需要读出计数§10.2.68253初始化编程

初始化编程的具体步骤为:1.

写入计数器的控制字,规定其工作方式等;2.

写入计数初值。若规定只写低8位,则写入的为计数值的低8位,高8位自动置0;若规定只写高8位,则写入的是计数值的高8位,低8位自动置0;若规定写16位计数值,则分两次写入,先写的必是低8位,后写的必是高8位。

81§10.2.68253初始化编程初始化编程的具体步骤例10.1:某微机系统中8253的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为FFH,按二进制计数;计数器1工作在方式2,计数初值为1000,按BCD码计数。试写出初始化程序段。

82例10.1:某微机系统中8253的端口地址为40H~43H,

解:1.按要求找出所用计数器的控制字计数器0的控制字:

选计数器0只写低8位

选工作方式0二进制计数计数器1的控制字:

选计数器1只写高8位

选工作方式2BCD计数

0

0

0

1

0

0

0

0

0

1

1

0

0

1

0

1

例10.1:83解:0001000001100例10.1:2.初始化程序段MOVAL,10H;写通道0控制字OUT43H,ALMOVAL,0FFH;写通道0计数初值OUT40H,ALMOVAL,65H;写通道1控制字OUT43H,ALMOVAL,10H;写通道1计数初值OUT41H,AL84例10.1:2.初始化程序段23例10.2:

设8253端口地址为FFF0H~FFF3H,要求计数器2工作在方式5,二进制计数,初值为F03FH。试按上述要求完成8253的初始化。解:1.控制字选计数器2写低8位

选工作方式5二进制计数再写高8位

85例10.2:设8253端口地址为FFF0H~FFF3H,要例10.2:2.初始化程序段

MOV DX,0FFF3H;DX指向控制端口

MOV AL,0BAH;写控制字

OUTDX,AL MOVDX,0FFF2H ;DX指向通道2

MOV AL,3FH;写初值低8全

OUTDX,AL MOV AL,0F0H;写初值高8位

OUTDX,AL86例10.2:2.初始化程序段25§10.2.78253工作方式8253作为一个可编程的定时/计数器,可以编程选择6种不同的工作方式,不论哪种工作方式,都会遵守下面几条基本原则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或者低电平)。初值写入以后,要经过一个时钟上升沿和一个时钟下降沿,计数执行部件才开始计数。

87§10.2.78253工作方式8253作为一个可编程的定8253工作方式通常,在时钟脉冲CLK的上升沿,门控信号GATE被采样。对于一种给定的工作方式,门控信号的触发方式有具体规定,即或者用电平触发,或者用边沿触发。方式0、4中,门控信号为电平触发;方式1、5中,门控信号为上升沿触发;方式2、3中,既可用电平触发,也可用上升沿触发。在时钟脉冲的下降沿,计数器作减1计数。0是计数器所能容纳的最大值,因为用二进制计数时,16位计数器中,0相当于216,用BCD码计数时,0相当于104。888253工作方式通常,在时钟脉冲CLK的上升沿,门控信号GA8253工作方式工作方式及其特点8253中有三个独立的计数器,每个计数器都可编程选择六种工作方式之一。区别这六种工作方式主要从三个方面:其一是他们的输出波形不同;其二是启动计数器的触发方式不同;其三是计数过程中门控信号对计数操作的影响不同。898253工作方式工作方式及其特点281.方式0

--计数结束产生中断

图3.48253的0方式时序波形n=5n=5CLKOUTWRWRGATEOUTWROUT

543210543210n=998n=443210图10.4方式0输出波形图901.方式0--计数结束产生中断图3.48253的0方式方式0方式0有如下3个特点:

当向计数器写完计数值后,开始计数,计数一旦开始,输出端OUT就变成低电平,并在计数过程中一直保持低电平,当计数器减到零时,OUT立即变成高电平。门控信号GATE为高电平时,计数器工作;当GATE为低电平时,计数器停止了工作,其计数值保持不变。如果门控信号GATE再次变高时,计数器从中止处继续计数。在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数初值重新工作。91方式0方式0有如下3个特点:30例1:使计数器T1工作在方式0,进行16位二进制计数,计数初值的高低字节分别为BYTEH和BYTEL。 (设8253的端口地址为304H~307H)

其初始化程序段为:

MOVDX,307H;命令口

MOVAL,01110000B

;方式字

OUTDX,ALMOVDX,305H;T1数据口

MOVAL,BYTEL;计数值低字节

OUTDX,ALMOVAL,BYTEH;计数值高字节

OUTDX,AL92例1:使计数器T1工作在方式0,进行16位二进制计数,计数2.方式1—可重触发的单稳态触发器图10.5方式1输出波形图932.方式1—可重触发的单稳态触发器图10.5方式1输出波形情况一:写入计数初值后,计数器并不立即开始工作;门控信号GATE有效,才开始工作,使输出OUT变成低电平;直到计数器值减到零后,输出才变高电平。

情况二:在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。

情况三:

如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。方式1说明94情况一:方式1说明33例2:使计数器T2

工作在方式1,进行8位二进制计数,并设计数初值的低8位为BYTEL。

(设8253的端口地址为304H~307H)其初始化程序段为

MOVDX,307H;命令口

MOVAL,10010010B

;方式字

OUTDX,ALMOVDX,306H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL95例2:使计数器T2工作在方式1,进行8位二进制计数,并设3.方式2

—分频器方式2是一种自动装计数初值的N分频器。图10.6方式2输出波形图963.方式2—分频器方式2是一种自动装计数初值的N分频器。图例3:使计数器T0工作在方式2,进行16位二进制计数。(设8253的端口地址为304H~307H)

其初始化程序段为

MOVDX,307H;命令口

MOVAL,00110100B

;方式字

OUTDX,ALMOVDX,304H;T0数据口

MOVAL,BYTEL;低8位计数值

OUTDX,ALMOVAL,BYTE;高8位计数值

OUTDX,AL97例3:使计数器T0工作在方式2,进行16位二进制计数。4.方式3—方波发生器方式3与方式2基本相同,也具有自动装入时间常数(计数初值)的功能。图10.7方式3输出波形图984.方式3—方波发生器方式3与方式2基本相同,也具有自动装入方式3与方式2的不同之处在于:

(1)工作在方式3,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。(2)由于方式3输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。99方式3与方式2的不同之处在于:385.方式4—软件触发的选通信号发生器图10.8方式4输出波形图1005.方式4—软件触发的选通信号发生器图10.8方式4输出波例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装入高8位计数值。(设8253的端口地址为304H~307H)

其初始化程序段为:

MOVDX,307H;命令口

MOVAL,00110100B

;方式字

OUTDX,ALMOVDX,304H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL101例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装6.方式5—硬件触发的选通信号发生器图10.9方式5输出波形图1026.方式5—硬件触发的选通信号发生器图10.9方式5输出波方式5方式5工作特点是由GATE上升沿触发计数器开始工作。1)在方式5工作方式下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。2)在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。103方式5方式5工作特点是由GATE上升沿触发计数器开始工作。46种工作方式的比较(参见表10.3~10.6)

方式2(分频器)和方式3(方波发生器),这两种方式共同的特点是具有自动再加载功能(装入)能力。二者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1个TCLK的负脉冲。方式3是在计数过程中,OUT的信号是占空比为1:1的方波或近似方波。方式4(软件触发单脉冲)和方式5(硬件触发单脉冲)。这两种方式的OUT输出波形相同,两者的区别是计数启动的触发信号不同,前者由写信号启动计数,后者由GATE信号的上升沿启动计数)。方式0(门控单稳)和方式1(门控单稳),这

两种方式的输出波形类似。1046种工作方式的比较(参见表10.3~10.6)方式2(分各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2

N/20/N0N01N01N01105各种工作方式的输出波形方式0方式1方式2方式3方式8253工作方式例:设8253的计数器0,工作在方式1,计数初值为2050;计数器1,工作在方式2,计数初值为3000;计数器2,工作在方式3,计数初值为1000。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。1068253工作方式例:设8253的计数器0,工作在方式1,计数例:分析:计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。计数器1工作在方式2,即分频器的方式。输出波形的频率f=2MHz/3000=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5µs。(1/666.7≈0.00151/2000000=0.0000005)计数器2工作在方式3,即方波发生器的方式。输出频率f=2MHz/1000=2000Hz的对称方波。107例:分析:46三个OUT的输出波形如下:108三个OUT的输出波形如下:47§11.2.88253应用举例

例10.3:IBM-PC/XT微机的某扩展板上使用一片8253,其端口地址为200H~203H。要求从定时器0的输出端OUT0得到500Hz的方波信号,从定时器1的输出端OUT1得到50Hz的连续单拍负脉冲信号。已知系统提供的计数脉冲频率为250KHz,其硬件连接见图10.10。试编写初始化此8253的程序段。

109§11.2.88253应用举例例10.3:IBM-PC图10.10例10.3的硬件连接图

110图10.10例10.3的硬件连接图49例10.3解:1.确定工作方式定时器1工作在方式2。2.计算计数初值 计数初值=分频系数=fclk/fout

定时器0:

N=fclk0/fout0=250000/500=500化为十六进制为01F4H。定时器1:N=fclk1/fout1=500/50=10

温馨提示

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

评论

0/150

提交评论