当前位置:文档之家› 第八章定时器计数器和多功能接口芯片

第八章定时器计数器和多功能接口芯片

第八章定时器计数器和多功能接口芯片
第八章定时器计数器和多功能接口芯片

第八章定时器/计数器和多功能接口芯片

【回顾】可编程芯片的概念,端口的概念。

【本讲重点】定时与计数的基本概念及其意义,定时/计数器芯片Intel8253的性能概述,内、外部结构及其与CPU的连接。

8.1 定时与计数

1.定时与计数

在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。

2.定时与计数的实现方法

(1) 硬件法

专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。

(2) 软件法

利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。

(3) 软、硬件结合法

即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。

8.2 定时/计数器芯片Intel8253

Intel8253是8086微机系统常用的定时/计数器芯片,它具有定时与计数两大功能。

一、8253的一般性能概述

1.每个8253芯片有3个独立的16位计数器通道;

2.每个计数器通道都可以按照二进制或二—十进制(BCD码)计数;3.每个计数器的计数速率可以高达2MHz;

4.每个通道有6种工作方式,可以由程序设定和改变;

5.所有的输入、输出电平都与TTL兼容。

二、8253内部结构

8253的内部结构如图8-1所示,它主要包括以下几个主要部分:

图8-1 8253的内部结构

1.数据总线缓冲器

实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。

2.读/写控制逻辑

控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。3.控制字寄存器

在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。

4.计数通道0#、1#、2#:

这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。三、8253的外部引脚

8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图8-2所示。8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:

1.D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。

2.:来自于CPU的读控制信号输入引脚,低电平有效。

3.:来自于CPU的写控制信号输入引脚,低电平有效。

4.:芯片选择信号输入引脚,低电平有效。

图8-2 8253的引脚

5.A1、A0:地址信号输入引脚,用以选择8253芯片的通道及控制字寄存器。、的状态与8253端口地址的对应关系如下表所示。

A1A0

000#通道

011#通道

102#通道

11控制端口

6.V CC及GND:+5V电源及接地引脚

7.CLK i:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK 引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。

8.GATE i:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。

9.OUT i:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。

四、8253的控制字

8253有一个8位的控制字寄存器,其格式如下:

图8-3 8253的控制字

其中:

D0:数制选择控制。为1时,表明采用BCD码进行定时/计数;否则,采用二进制进行定时/计数。

D3~D1:工作方式选择控制。000,0;001,1;X10,2;X11,3;100,4;101,5;

D5、D4:读写格式。00,计数锁存命令;01,读/写高8位命令;10,

读/写低8位命令;11,先读/写低8位,再读写高8位命令。

D7、D6:通道选择控制。00 0通道;01,1通道;10,2通道;11,非法1.8253的初始化编程

要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。

初始化编程包括如下步骤:

(1)写入通道控制字,规定通道的工作方式

(2) 写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,

则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。D0:用于确定计数数制,0,二进制;1,BCD码

【例1】设8253的端口地址为:04H~0AH,要使计数器1工作在方式0,仅用8位二进制计数,计数值为128,进行初始化编程。

控制字为:01010000B=50H

初始化程序:

MOV AL,50H

OUT 0AH,AL

MOV AL,80H

OUT 06H,AL

【例2】设8253的端口地址为:F8H~FEH,若用通道0工作在方式1,按二——十进制计数,计数值为5080H,进行初始化编程。

控制字为:00110011B=33H

初始化程序:

MOV AL,33H

OUT 0FEH,AL

MOV AL,80H

OUT 0F8H,AL

MOV AL,50H

OUT 0F8H,AL

【例3】设8253的端口地址为:04H~0AH,若用通道2工作在方式2,按二进制计数,计数值为02F0H,进行初始化编程。

控制字为:10110100B=0B4H

初始化程序:

MOV AL,0B4H

OUT 0AH,AL

MOV AL,0F0H

OUT 08H,AL

MOV AL,02H

OUT 08H,AL

2.读取8253通道中的计数值

8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。

当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。

如要读通道1的16位计数器,编程如下:地址F8H~FEH。

MOV AL,40H;

OUT 0FEH,AL ;锁存计数值

IN AL,0FAH

MOV CL,AL;低八位

IN AL,0FAH;

MOV CH,AL;高八位

五、8253在系统中的典型连接

8253在系统中的连接如图8-4所示。

图8-4 Intel8253在系统中的连接

六、8253的工作方式

8253共有6种工作方式,各方式下的工作状态是不同的,输出的波形也不同,其中比较灵活的是门控信号的作用。由此组成了8253丰富的工作方式、波形,下面我们逐个介绍:

1.几条基本原则

(1)控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT 进入初始状态。初始状态对不同的模式来说不一定相同。

(2)计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿,

计数执行部件才可以开始进行计数操作,因为第一个下降沿将计数寄存器的内容送减1计数器。

(3)通常,在每个时钟脉冲CLK的上升沿,采样门控信号GATE。不同的工作方式下,门控信号的触发方式是有具体规定的,即或者是电平触发,或者是边沿触发,在有的模式中,两种触发方式都是允许的。其中0、2、3、4是电平触发方式,1、2、3、5是上升沿触发。

(4)在时钟脉冲的下降沿,计数器作减1计数,0是计数器所能容纳的最大初始值。二进制相当于216,用BCD码计数时,相当于104

2.方式0—计数结束产生中断

方式0的波形如图8-5所示,当控制字写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计数,在整个计数过程中,OUT保持为低,当计数到0后,OUT变高;GATE的高低电平控制计数过程是否进行。

图8-5 方式0波形

从波形图中不难看出,工作方式0有如下特点:

①计数器只计一遍,当计数到0时,不重新开始计数保持为高,直到输

入一新的计数值,OUT才变低,开始新的计数;

②计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N+1个脉冲后才能变高;

③在计数过程中,可由GATE信号控制暂停。当GATE=0时,暂停计数;当GATE=1时,继续计数;

④在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况:若是8位计数,则写入新值后的下一个脉冲按新值计数;若是16位计数,则在写入第一个字节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。

3.方式1—可编程的硬件触发单拍脉冲

方式1的波形如图8-6所示,CPU向8253写入控制字后OUT变高,并保持,写入计数值后并不立即计数,只有当外界GATE信号启动后(一个正脉冲)的下一个脉冲才开始计数,OUT变低,计数到0后,OUT才

变高,此时再来一个GATE正脉冲,计数器又开始重新计数,输出OUT 再次变低,…,因此输出为一单拍负脉冲。

图8-6 方式1波形

从波形图不难看出:方式1有下列特点:

①输出OUT的宽度为计数初值的单脉冲;

②输出受门控信号GATE的控制,分三种情况:

计数到0后,再来GATE脉冲,则重新开始计数,OUT变低;

在计数过程中来GATE脉冲,则从下一CLK脉冲开始重新计

数,OUT保持为低;

改变计数值后,只有当GATE脉冲启动后,才按新值计数,

否则原计数过程不受影响,仍继续进行,即新值的改变是从

下一个GATE开始的。

③计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。

4、方式2—速率发生器

方式2的波形如图8-7所示,在这种方式下,CPU输出控制字后,输出OUT就变高,写入计数值后的下一个CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK以后,OUT恢复为高,计数器重新开始计数,…,因此在这种方式下,只需写入一次计数值,就能连续工作,输出连续相同间隔的负脉冲(前提:GATE保持为高),即周期性地输出,方式2下,8253有下列使用特点:

①通道可以连续工作;

②GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数)

③重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。

图8-7 方式2波形

5.方式3—方波速率发生器

方式3的波形如图8-8所示,这种方式下的输出与方式2都是周期性的,不同的是周期不同,CPU写入控制字后,输出OUT变高,写入计数值后开始计数,不同的是减2计数,当计数到一半计数值时,输出变低,重新装入计数值进行减2计数,当计数到0时,输出变高,装入计数值进行减2计数,循环不止。

在方式3下,8253有下列使用特点:

计数值为偶数

计数值为奇数

图8-8 方式3时计数器的工作波形

①通道可以连续工作;

②关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2

个;若为奇数,则在装入计数值后的下一个CLK使其装入,然后减1计数,(N+1)/2,OUT改变状态,再减至0,OUT又改变状态,重

新装入计数值循环此过程,因此,在这种情况下,输出有(N+1)/2个CLK个高电平,(N-1)/2个CLK个低电平;

③GATE信号能使计数过程重新开始,当GATE=0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,尤其是当GATE=0时,若OUT此时为低,则立即变高,其它动作同上;

④在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。

6.方式4—软件触发的选通信号发生器

方式4的波形如图8-9所示,在这种方式下,也是当CPU写入控制字后,OUT立即变高,写入计数值开始计数,当计数到0后,OUT变低,经过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。

图8-9 方式4波形

方式4下,8253有下列使用特点:

①当计数值为N时,则间隔N+1个CLK脉冲输出一个负脉冲(计数一次有效);

②GATE=0时,禁止计数,GATE=1时,恢复继续计数;

③在计数过程中重新装入新的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。

7.方式5—硬件触发的选通信号发生器

方式5的波形如图8-10所示,在这种方式下,当控制字写入后,OUT立刻变高,写入计数值后并不立即开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有GATE脉冲来,则重新装入计数值开始计数,上述过程重复。

方式5下,8253有下列使用特点:

①在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N+1)个CLK才一个负脉冲;

②若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效;

③若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。

图8-10 方式5波形

尽管8253有6种工作模式,但是从输出端来看,仍不外乎为计数和定时两种工作方式。作为计数器时,8253在GATE的控制下,进行减1计数,减到终值时,输出一个信号。作为定时器工作时,8253在门控信号GATE控制下,进行减1计数。减到终值时,又自动装入初始值,重新作减1计数,于是输出端会不断地产生时钟周期整数倍的定时时间间隔。8.8253的工作方式小结

下面,我们对8253的6种工作模式的特点,作一番比较和总结。(1) 方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲,但方式2连续工作,方式4由软件触发启动,方式5由硬件触发启动。

(2) 方式5与方式1工作过程相同,但输出波形不同,方式1输出的是宽度为N个CLK脉冲的低电平有效的脉冲(计数过程中输出为低),而方式5输出的为宽度为一个CLK脉冲的负脉冲(计数过程中输出为高)。(3) 输出端OUT的初始状态,方式0在写入方式字后输出为低,其余方式,写入控制字后,输出均变未能高。

(4) 任一种方式,均是在写入计数初值之后,才能开始计数,方式0、2、3、4都是在写入计数初值之后,开始计数的,而方式1和方式5需要外部触发启动,才开始计数。

(5)6种工作方式中,只有方式2和方式3是连续计数,其它方式都是一次计数,要继续工作需要重新启动,方式0、4由软件启动,方式1、5由硬件启动。

(6) 门控信号的作用;通过门控信号GATE,可以干预8253某一通道的计数过程,在不同的工作方式下,门控信号起作用的方式也不一样,其中0、2、3、4是电平起作用,1、2、3、5是上升沿起作用,方式2、3对电平上升沿都可以起作用。

(7) 在计数过程中改变计数值,它们的作用有所不同。

(8) 计数到0后计数器的状态,方式0、1、4、5继续倒计数,变为FF、

FE。。。。。。,而方式2、3、,则自动装入计数初值继续计数。

七、8253的编程应用

【例4】在IBM PC/XT中,8253作为定时计数器电路,它的三个通道的作用分别为:

计数器0编程为方式3,GATE0固定为高电平,OUT0作为中断请求信号接至8259A中断控制器的第0级IRQ0。这个定时中断(约55ms)用于报时时钟的时间基准。

计数器1编程为方式2,GATE1固定为高电平,OUT1的输出经过一个D触发器后作为8237A-5DMA控制器通道0的DMA请求DREQ0,用于定时(约15us)启动刷新动态RAM,这样在2ms内可以有132次刷

新,大于128次(128次是系统的最低要求)。

计数器2编程为方式3,1KHZ的方波输出,通过滤波,去除高频分量后送扬声器,GATE2是8255的PB0,OUT输出经一与门控制,控制信号为8255的PB1,这样利用PB0、PB1同时为高的时间来控制发长音还是发短音。

时钟频率F为1.19MHZ,T=1/F

8253-5的地址为040H~043H,ROM-BIOS对8253-5的编程如下:计数器0用于定时中断。

MOV AL,00110110B;00110110――二进制

OUT 43H,AL

MOV AL,0;计数初值为0000,即为

OUT 40H,AL

OUT 40H,AL;定时为:,即频率为――每秒产生次时钟中断(CLK周期为:)

计数器1用于定时DMA请求。

MOV AL,01010100B;01010100――二进制

OUT 43H,AL

MOV AL,12H;计数初值为18D,定时:

OUT 41H,AL

计数器2用于产生1KHZ的方波送至扬声器发声,声响子程序为BEEP,入口地址为FFA08H。

BEEP PROC NEAR

MOV AL,10110110B;10110110——二进制

OUT 43H,AL

MOV AX,0533H;计数初值为1331

OUT 42H,AL

MOV AL,AH

OUT 42H,AL

IN AL,61H;取8255B端口

MOV AH,AL;存在AH

OR AL,03H;使

OUT 61H,AL;输出至82255的B端口,使扬声器发声

SUB CX,CX;循环计数

G7:LOOP G7

MOV BH,0

DEC BX;BL的值为控制长短声,BL=6(长),BL=1(短)

JNZ G7

MOV AL,AH;恢复8255B端口值,停止发声

OUT 61H,AL

RET

BEEP ENDP

【例5】CPU为8086,用8253的CH0(通道0),每隔2ms输出一个负脉冲,设CLK为2MHZ,完成软件设计。

分析:时间常数的计算:已知时钟频率F及定时时间t,求计数初值N:设用方式2,时间常数:

控制字:00110100——二进制

端口地址:CH0――00H;控制端口——06H

初始化编程:

MOV AL,34H ;00110100B

OUT 06H,AL

MOV AX,4000

OUT 00H,AL ;先送低八位

MOV AL,AH

MOV AL,02H

OUT 00H,AL ;再送高八位

思考:若定时20ms(即输出50HZ的方波,设为工作方式2),CLK改为4MHZ,CPU为8086,软硬件设计又该如何?

分析:(超过65536,必须考虑用两个通道级连)即将第一级的OUT输出作为第二级的CLK输入,取第二级的OUT输出为最后结果,超过

二级,依次类推。此时只需将计算出的N分别为N1、N2、…作为

各级的计数初值即可。如本例可分解成。

程序从略。

【习题与思考】

1.8253芯片共有几种工作方式?每种方式各有什么特点?

2.某系统中8253芯片的通道0~2和控制端口地址分别为

FFF0H~FFF3H。定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1kHz的速率波;定义通道l工作在方式CLK l输入外部计数事件,每计满100个向CPU发出中断请求。试写出8253通道0和通道1的初始化程序。

3.试编写一程序,使IBM PC机系统板上的发声电路发出200Hz至900Hz 频率连续变化

的报警声。

4.已知:PC/XT微机系统中用作定时及计数的8253芯片的通道为40H,其主频率为1.19MH z,请参阅P239~240,对三个通道进行初始化设置。(CNT2的输出方波频率设为2kH z).

5.设8253的通道2工作在计数方式,外部事件从CLK2引入,通道2每计500个脉冲向CPU发出中断请求,CPU响应这一中断后继续

写入计数值,重新开始计数,保持每1秒钟向CPU发出中断请

求。假设条件如下:

① 8253的通道2工作在方式4;

②外部计数事件频率为1kHz;

③中断类型号为54H;

④ 8253各端口地址如上题;

⑤用8212芯片产生中断类型号;(注:8212为带8位输入锁存器和8位输出缓冲器的总线接口电路)。

试编写程序完成以上任务,并画出硬件连接图。

6. 试说明定时和计数在实际系统中的应用?这两者之间有和联系和差别?

7. 定时和计数有哪几种实现方法?各有什么特点?

8. 试说明定时/计数器芯片Intel8253的内部结构。

9. 定时/计数器芯片Intel8253占用几个端口地址?各个端口分别对应什么?

定时器、计数器操作与应用实验报告

实验三 定时器、计数器操作与应用实验报告 、实验目的 1、 了解和熟悉FX 系列可编程序控制器的结构和外 部接线方法; 2、 了解 和熟 悉 GX Developer Version 7.0 软件的 使用 方法 ; 3、 掌握 可编 程序 控制器 梯形 图程 序的 编制 与调 试。 二、实验要求 仔 细阅 读实 验指 导书 中关 于编 程软 件的 说明 ,复习 教材 中有 关内 容 , 分 析程 序运 行结 果。 三、实验设备 2 、 开关 量输 入 / 输出 实验 箱 3、 计算 机 4、 编程 电缆 注 意: 1) 开关量输入/输出实验 箱内的钮子开关用来产生模拟的 开关量输入 信 号; 2) 开关量输入/输出实验箱内的LED 用来指示开关 量输出信号; 3) 编程电缆在连接PLC 与计算机时请注意方向。 四、实验内容 1 、梯形图 1 、 FX 系列可 编程 序控 制器 一只 一套 5、 GX Developer Version 7.0 软件 一套

2、梯形图程序 0LD xooo 1OUT YOOO X001 2LD 3OR¥001 4AN I X002 5OUT Y001 6OUT TO K50 9MPS 10AHI TO 11OUT Y002 12MPP 13ASD TO 14OUT¥003 15LD X003 16RST CO 18LD X004 19OUT CO K5 22LD CO 23OUT Y004 24END 3、时序图

r 时序10 □ ?Si 正在进荷囲1SL 金冃勖厂手祜r XI广X3厂X5厂K1Q拧应C 40 J2fl MIB -380 .360 '340 -33 MW 脚 M 创Q,220,200,13Q -1?-14D ,1如■!? 如也 40 如厂「 五、实验步骤 1、程序的编辑、检查和修改; 2、程序的变换; 3、程序的离线虚拟设备仿真测试; 4、程序写入PLC; 5、用PLC运行程序; 6、比较程序的分析结果与实际运行结果。 六、实验报告 1、实验梯形图程序的编写; 2、梯形图程序的理论分析与结果; 3、梯形图程序的实际运行结果; 4、结论。 七、实验心得 通过这样一次实验,我对GX Developer Version 7.0 软件的使用方 法更加的熟悉了,也了解到在实验中需要我们集中精力,仔细认真地完成■XDU "Tlr-.Ll-t-1!- D LJ D-IT--1 z?E I4J 一 — Ti ll IL — 」 ill-t-ll-r — 1

定时计数器练习题

定时/计数器练习题 一、填空题 1.当使用慢速外设时,最佳的传输方式是(中断)。 2.MCS-51单片机有(5 )个中断源,有(2 )个中断优先级,优先级由软件填写特 殊功能寄存器(IP )加以选择。 3.MCS-51单片机中,T0中断服务程序入口地址为(000BH )。 4.外部中断请求标志位是(IE0 )和(IE1 )。 5.MCS-51单片机晶振频率为12MH Z ,相应单重中断的最短时间是(3 μs),最长时间 是(8μs)。 6.MCS-51单片机外部中断有(2 )种中断信号触发方式,若选用外部中断0为边沿 触发方式,则需要指令(SETB IT0 )。 7.MCS-51单片机中断系统选用外部中断1和定时器/计数器T1中断为高优先级,则中断 优先级控制字(IP)= (0CH )。 8.对采用电平触发方式的外部中断,必须在中断返回前(撤销中断请求信号)。 9.(RETI )指令以及任何访问(IE )和(IP )寄存器的指令执行完后,CPU不 能马上相应中断。 10.MCS-51单片机有(2 )个16位可编程定时器/计数器,有( 4 )种工作方式。 11.MCS-51单片机的最大计数值为(65536 ),此时工作于方式(1 )。 12.若定时器/计数器工作于方式0时,为(13 )位的定时器/计数器,TL的低(5 ) 位计满溢出时,向高(8 )位的TH进位。 13.当定时器/计数器T0工作在方式3时,要占用定时器/计数器T1的(TR1 )和(TF1 ) 两个控制位。 14.当把定时器/计数器T0定义为一个可自动重新装入初值的8位定时器/计数器时, (TL0 )作为8位计数器,(TH0 )为常数寄存器。 15.使用定时器T1设置串行通信的波特率时,应把定时器T1设定为工作方式2,即(自 动重装载)。 16.在定时器/计数器T0工作方式3下,TH0溢出时,(TF1 )标志将被硬件置1去请求 中断。 17.T0和T1两引脚也可作为外部中断输入引脚,这时TMOD寄存器中的C/T位应为(1 )。 若MO、M1两位置成10B,则计数初值应当是TH=TL=( 0FFH或255 )。 18.欲使T1停止工作,应执行一条指令(CLR TR1 ),在工作方式3下,欲使TH0开始 工作,应执行一条指令(SETB TR1 )。 19.串行口中断的中断标志位是由(硬件)产生,由(软件)清零。 20.进行串行通信,通信双方需具有相同的(数据格式)和(速率)。 21.要串行口工作为10位异步串行通信方式,工作方式应选为(方式1 )。 22.用串行口扩展并行口时,串行口工作方式应选为(方式0 )。 23.按照数据传送方向,串行通信分为(单工)、(半双工)和(全双工)。 24.计算机通信主要有两种方式:(并行通信)和(串行通信)。 25.异步串行数据通信的帧格式由(起始位)、(数据位)、(奇偶校验位)和(停止位)组 成。 26.在串行通信中,按照传送的帧的格式,分为(异步串行通信)和(同步串行通信)。 27.串行口启动发送过程是通过执行指令(MOV SBUF )实现,而接收过程是在接收控 制器检测到RXD端的(负跳变)时启动的。 一、选择题

定时器计数器工作方式寄存器TMOD

TMOD 在内存 RAM 中位于特殊功能寄存器区的 89H 处,其高 4 位用于设置定时 器/计数器T1 的工作方式,低 4 位用于设置定时器/计数器 T0 的工作方式。由于 T0 和 T1 的用法很相似,所以,在此只结合 TMOD 的低 4 位讲解定时器/计数器 T0 的用法。 1、 GATE 当 GATE=0 时,定时器/计数器开始工作或停止工作不受 GATE 位的控制,而只受TCON寄存器中的 TR0 位控制,TR0=0 时定时器/计数器 T0 停止工作,而当 TR0=1 时定时器/计数器 T0 开始工作。 当 GATE=1 时,定时器/计数器 T0 工作的起停除了受 TCON 寄存器中的 TR0 位 控制外,还受单片机外部引脚 P3.2 的控制,只有该引脚为高电平且 TR0=1 这两个条 件同时满足时,定时器/计数器才开始工作,一般这种用法通常用来测量 P3.2 引脚上 正脉冲的宽度。对于控制T1 方式字段中的 GATE 位和 T0 中的用法完全一样,只是当GATE 位为 1 时受单片机外部引脚P3.3 和 TCON 中 TR1 的控制。 2、 C/T C/T 位决定 T0 工作在定时方式还是计数方式。当 C/T=0 时,T0 工作在定时方式,此时由 TH0 和 TL0 组成的 16 位计数容器,这个容器会对晶振产生的脉冲再 12 分频后的脉冲进行计数,如果单片机外部接的是 12M 晶振,则 TH0 和 TL0 组成的 16 位 计数容器中的数据就会每隔 1 微妙自动加 1; 当 C/T=1 时,T0 工作在计数方式,由 TH0 和 TL0 组成的 16 位计数容器会对从单片机外部引脚 P3.4 输入单片机的脉冲进行计数,每输入一个脉冲,则 TH0 和 TL0 组成的 16 位计数容器中的数据会自动加 1。如果 TMOD 高 4 位中的 C/T=0,表示 T1 工作在定时方式,而当 C/T=1表示 T1 工作在计数方式,计的是来自单片机外部引脚 P3.5 传入单片机的脉冲数。 当然无论是在 C/T=0 时定时器/计数器工作在定时方式,还是在 C/T=1 时定时器/计数器工作在计数方式,要想让 T0 开始工作,必须将 TCON 中的 TR0 设置为 1,如果想让 T0 停止工作,必须将 TCON 中的 TR0 设置为 0,即 TCON 中的 TR0 是控制定时器/计数器开始工作和停止工作的。

定时器计数器答案

定时器/计数器 6·1 80C51单片机内部有几个定时器/计数器?它们是由哪些专用寄存器组成? 答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)和定时 器l(Tl)。在定时器/计数器中的两个16位的计数器是由两个8位专用寄存器TH0、TL0,THl、TLl组成。 6·2 80C51单片机的定时器/计数器有哪几种工作方式?各有什么特点? 答:80C51单片机的定时器/计数器有4种工作方式。下面介绍4种工作方式的特点。 方式0是一个13位的定时器/计数器。当TL0的低5位溢出时向TH0进位,而TH0溢出时向中断标志TF0进位(称硬件置位TF0),并申请中断。定时器0计数溢出与否,可通过查询TF0是否置位或产生定时器0中断。 在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别是:定时器是以全16位二进制数参与操作。 方式2是能重置初值的8位定时器/计数器。其具有自动恢复初值(初值自动再装人)功;能,非常适合用做较精确的定时脉冲信号发生器。 方式3 只适用于定时器T0。定时器T0在方式3T被拆成两个独立的8位计数器TL0: 和TH0。其中TL0用原T0的控制位、引脚和中断源,即:C/T、GATE、TR0、TF0和T0 (P3.4)引脚、INTO(P3.2)引脚。除了仅用8位寄存器TL0外,其功能和操作与方式0、方式1 完全相同,可定时亦可计数。此时TH0只可用做简单的内部定时功能。它占用原定时器Tl 的控制位TRl和TFl,同时占用Tl的中断源,其启动和关闭仅受TRl置1和清0控制。6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制? 答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。 6·4 当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭? 答:定时器T0用做方式3时,由于TRl位己被T0占用,此时通过控制位C/T切换其定时器或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送入一个设置定时器1为方式3的方式字。

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数, 每计满100个脉冲,则取反P1.0口线状态。 汇编程序: START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }

8253计数器定时器接口实验

微机原理实验报告 实验五 8253计数器/定时器接口实验 1.实验目的 1)学会通过PC总线、驱动器、译码器等在PC机外部扩充为新的芯片; 2)了解8253计数器/定时器的工作原理; 3)掌握8253初始化的程序设计; 4)掌握8253方式0的计数方式的使用方法和方式3方波产生的方法。 2.实验内容 将实验装置上的1片8253定时器/计数器接入系统,具体做两个内容的实验。 1)实验一:将8253的计数器0设置为工作于方式0,设定一个计数初值,用手 动逐个输入单脉冲,观察OUT0的电平变化。 硬件连接:断开电源,按图2-1将8253接入系统。具体包括: (1)将8253的CS接I/O地址输出端280H-287H; (2)将8253的计数器0的CLK0与单脉冲信号相连,以用来对单脉冲进行计数; (3)将8253的GATE0用专用导线接向+5V,以允许计数器0工作; (4)将8253的OUT0接到LED发光二极管,以显示8253计数器0的输出OUT0的 状态。 图2-1 8253实验一的连线图 2)实验二:将8253的计数器0、1均设置为工作于方式3(方波),按图2-2重 新接线。要求是当CLK0接1MHz时,OUT1输出1Hz的方波,OUT的输出由LED 显示出来。将计数器0与计数器1串联使用,计数器0的输出脉冲OUT0作为计数器1的时钟输入CLK1。

图2-2 8253实验二的连线图3.程序及框图 1)程序框图 图4-1给出了8253实验一的流程图。 图4-1 程序流程图 图4-2给出了8253实验二的流程图。 2)程序代码 实验一程序代码: CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT

定时器计数器

定时器/计数器 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0(由TH0和TL0组成)和定时器T1(由TH1和TL1组成),它们既可用作定时器定时,又可用作计数器记录外部脉冲个数,其工作方式、定时时间、启动、停止等均用指令设定。 定时器/计数器的结构 1.定时器/计数器的工作原理 定时器/计数器T0和T1的工作方式通过八位寄存器TMOD设定,T0和T1 的启动、停止由八位寄存器TCON控制。工作前需先装入初值,利用传送指令将初值装入加1计数器TH0和TL0或TH1和TL1,高位数装入TH0或TH1,低位数装入TL0或TL1。当发出启动命令后,加1计数器开始加1计数,加到满值(各位全1)后,再加1就会产生溢出,系统将初值寄存器清0。如果需要继续计数或定时,则需要重新赋计数初值。 2.定时器的方式寄存器TMOD 特殊功能寄存器TMOD为定时器的方式控制寄存器。TMOD是用来设定定时器的工作方式,其格式如下: 各位功能如下: (1)GATE控制定时器的两种启动方式 当GATE=0时,只要TR0或TR1置1,定时器启动。 当GATE=1时,除TR0或TR1置1外,还必须等待外部脉冲输入端(P3.3)或(P3.2)高电平到,定时器才能启动。若外部输入低电平则定时器关闭,这样可实现由外部控制定时器的启动、停止,故该位被称为门控位。定时器1类同。 (2)定时/计数方式选择位 当该位为0时,T0或T1为定时方式;当该位为1时,T0或T1为计数方式。(3)方式选择位M1、M0 M1、M0两位可组合成4种状态,控制4种工作方式。每种方式的功能如表5-1。 表5-1 M1、M0控制的工作方式 M1 M0 工作方式说明 0 0 0 1 1 0 1 1 0 1 2 3 13位计数器 16位计数器 可再装入8位计数器

实验三定时器计数器应用实验一

定时器/计数器应用实验一 设计性试验 2012年11月14日星期三第三四节课 一、实验目的 1、掌握定时器/计数器定时功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P 1.1口线上接示波器观察波形。 三、电路原理图

四、实验程序流程框图和程序清单及实验结果 /********* 设计要求:(a)单片机的定时器/计数器以查询方式工作, 在P1.0口线上产生周期为200us的连续方波 编写:吕小洋 说明:用定时器1的方式1以查询方式工作 时间:2012年11月10日 ***************/ ORG 0000H 开始 系统初始化

START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH CLR EA ;关总中断 CLR ET1 ;禁止定时器1中断 MOV TMOD, #00010000B ;设置定时器1为工作方式1 MOV TH1, #0FFH ;设置计数初值 MOV TL1, #9CH SETB TR1 ;启动定时器 LOOP: JNB TF1, LOOP ;查询计数是否溢出 MOV TH1, #0FFH ;重置计数初值 MOV TL1, #9CH CLR TF1 ;清除计数溢出标志 CPL P1.0 ;输出取反 LJMP LOOP ;重复取反 END

接口定时器与计数器实验定时器实验

同组同学学号:同组同学姓名:

实验框图: 主程序框图 源程序及分析: CONTROL equ 0c003h ;设置命令寄存器 COUNT0 equ 0c000h ;设置计数器0 COUNT1 equ 0c001h ;设置计数器1 COUNT2 equ 0c002h ;设置计数器2 code segment assume cs:code start proc near ;第一次定时器设定: mov al, 36h; ; 计数器0,16位,方式3,二进制(00110110B=36h) mov dx, CONTROL out dx, al mov ax, 1000

实验电路及连线: 连线连接孔1 连接孔2 1 8253_CS CS0 2 8253_OUT0L0 3 8253_GATE0VCC 4 8253_CLK0单脉冲 实验说明: 本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT脚输出一个高电平。实验时,可以将OUT0 接到LED上,观察计数器是否工作。 实验框图: 主程序框图 源程序及分析: CONTROL equ 08003h COUNT0 equ 08000h COUNT1 equ 08001h COUNT2 equ 08002h code segment assume cs:code start proc near mov al, 30h ; 通道0,方式0 mov dx, CONTROL out dx, al mov al, 5 ; 计数器初始值。

微机接口定时器 计数器(8255)

实验报告 课程名称 : 微机接口与原理 实验项目 : 可编程计数器\定时器8253 实验仪器 : 计算机 系别:光电学院 专业:电子信息工程 班级/学号: 学生姓名: 实验日期:2012年月 成绩: ________________ _ 指导教师:__________________

●实验目的 掌握定时器/计数器8253的基本原理和编程方法,用示波器观察不同方式下的波形。实验仪器 计算机,实验工作箱,电源,导线。 实验环境 北京信息科技大学健翔桥校区教三307实验室 ●实验内容 1、按下图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。 2、按下图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。 ●编程提示 8253控制寄存器地址283H 计数器0地址280H 计数器1地址281H

程序代码 code segment assume cs:code start: mov al,16h ;设置8253通道0为工作方式2,二进制计数mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,04h out dx,al lll: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21h disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否<=9 jle num ;若是则为'0'-'9',ASCII码加30H add dl,7 ;否则为'A'-'F',ASCII码加37H num: add dl,30h

4实验四_定时器计数器

PIC单片机定时器实验 课程名称微机原理与单片机技术 学院自动化学院 专业班级电子信息科学与技术(2)班 学号 3214001426 姓名林玫妮 2016年 11月 7日

一、实验目的 熟练掌握在 PIC16F877 的定时器 TMR0 的工作原理配置方式,会使用定时器查 询、中断方式,以及计数器模式。 二、实验内容和要求 在MPLAB环境中建立工程,实现对PIC单片机的定时器TMR0的初始 化,分别实现查询方式和中断方式定时,对比中断及查询方式的差异。实现对 PIC单片机的计数器的初始化,掌握计数器脉冲的输入硬件电路。 三、实验主要仪器设备和材料 计算机,MPLAB 软件,PIC 单片机实验板 HL-K18 四、实验方法、步骤及结果测试 1,熟悉电路板,熟悉相关电路原理图(要求使用 4M 晶振进行编程)。 2,任务1,分别采用定时器查询和定时器中断的方式,实现蜂鸣器按0.5秒周期鸣叫,即一秒鸣叫2次。比较查询与中断响应的区别。在MPLAB环境中 建立工程,按要求编写如下程序,并加载到工程中,编译并下载到单片机实 验板中观察实验结果。 例程1定时器查询方式 主程序 计算初值,实现蜂鸣 器按0.5s周期鸣叫

例程 2 定时器中断方式计算初值,实现蜂鸣器按0.5s周 期鸣叫 主程序 中断服务程序

例程3计数器模式 五、实验报告要求 1,对例程 1、2、3 的每一句程序进行注释。描述如何改变寄存器及其对 IO 的影

响。 (1)例子1: (2)例子2:

(3)例子3: 2,详细写出任务 1 中定时器初值的计算过程。 任务 1 中定时器初值的计算过程如下: 3,画出例程 2 的程序流程图。 4,讨论定时器查询方式和中断方式的差异和优缺点。 (1)中断方式不占用CPU资源,定时时间到会自动进入中断程序,准确度高。自动调用对应的函数。 (2)查询方式需要一直占用CPU资源(需要一直扫描标志位),定时时间到后需要程序查询到才能判断时间到,稍微有点误差。在需要的地方,需要手动调用对应函数 六、思考题 编写中断服务程序,实现蜂鸣器0.25秒周期鸣叫,同时LED数码管前两位按照100 毫秒周期从 10 开始倒数。

单片机实验-定时器计数器应用实验二

定时器/计数器应用实验二 一、实验目的和要求 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、实验内容或原理 1、利用单片机的定时器/计数器以查询方式计数外 部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波。 2、利用单片机的定时器/计数器以中断方式计数外 部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波。 三、设计要求 1、用Proteus软件画出电路原理图,单片机的定时 器/计数器以查询方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满100 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时 器/计数器以中断方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满200 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、电路原理图。 4、实验程序流程框图和程序清单。 5、实验结果(波形图)。 6、实验总结。 7、思考题。 五、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续 方波,利用定时器1,对P1.0口线上波形进行计数,满 50个,则取反P1.1口线状态,在P 1.1口线上接示波器 观察波形。 原理图:

程序清单: /*功能:用计数器1以工作方式2实现计数(查询方式)每计满100个脉冲,则取反P1.0口线状态*/ ORG 0000H START:MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH MOV IE,#00H SETB TR1 LOOP:JBC TF1,LOOP1 AJMP LOOP LOOP1:CPL P1.0

8253定时器计数器接口实验

计算机与通信工程学院 试 验 报 告 书 课程名称:微机原理及应用 设计题目:8253定时器/计数器接口实验实验类型:验证性 授课老师: 实验日期:2013.11.12 班级:通信1102(移动方向) 学号: 姓名: 成绩:

一、实验目的 (1)掌握8253定时器的编程原理及其工作原理. (2)掌握编写中断服务程序是的方法 (3)掌握初始化中断向量的方法 二、实验设备 MUT—III型实验箱、8086CPU、示波器 三、实验内容 8253计数器0、1、2工作于方波方式,观察其输出波形. 四、实验原理介绍 本实验用到两部分电路:脉冲产生电路,8253定时器/计数器电路五、实验程序框图 六、实验步骤 (1)实验接线 CS0?CS8253 OUTO?8253CLK2 OUT2?LED1

示波器?OUT1 CLK3?8253CLK0 CLK3?8253CLK1 (2)编译调试程序 (3)全速运行程序,拨动某一电平开关,观察LED的亮灭情况。 七、实验提示 (1)、8253是计算机系统中经常使用的可编程定时器/计数器.其内部有三个相互独立的计数器,分别成为T0,T1,T2,8253有多种工作方式,其中方式3为方波方式. (2)、当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一般输出低电平. (3)、实验中, T0,T1的时钟由CLK3提供,其频率为750KHZ.程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3/1000000=0.05s.). (4)、T2采用OUT0的输出为时钟,则在T2中设置初始值为n时,则OUT2输出方波周期为n*-0.05s.n的最大值为FFFFH,所以OUT2呼出方波最大周期为3276.75s(=54.6分钟)。 (5)、可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在控制中时非常有用的。 八、实验源程序: assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器 mov ax,36h ;计数器0,方式3 out dx,ax mov dx,04a0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax ;计数值927Ch mov dx,04a6h mov ax,76h ;计数器1,方式3 out dx,ax

定时器与计数器

四川工程职业技术学院 单片机应用技术课程电子教案 Copyright ? https://www.doczj.com/doc/b09291100.html, 第 讲 15 定时器/计数器基础

本讲主要内容: 15-1.实现定时的方法 15-2.定时器/计数器的结构和工作原理15-3.定时器/计数器的控制 15-4.定时器/计数器的工作方式 15-5.定时器/计数器应用

15-1.实现定时的方法 软件定时 ? 软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用 率。例如延时程序。 采用时基电路定时 ?例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬 件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件 进行控制和修改,即不可编程,且定时时间容易漂移。 可编程定时器定时 ?最方便的办法是利用单片机内部的定时器/计数器。结合了软件定时 精确和硬件定时电路独立的特点。 定时器/计数器 如何使用呢?

定时器/计数器的结构 定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD 是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 G A T E C /T M 1 M 0 G A T E C /T M 1 M 0 TH1TL1TH0TL0 T1方式T0方式 T1引脚 T0引脚 机器周期脉冲 内部总线 TMOD TCON 外部中断相关位 T F 1 T R 1 T F 0 T R 0 T1计数器 T0计数器 控制单元

定时器/计数器的工作原理 ?计数器输入的计数脉冲源 系统的时钟振荡器输出脉冲经12分频后产生; T0或T1引脚输入的外部脉冲源。 ?计数过程 每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断 请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表 示定时时间已到;如果工作于计数模式,则表示计数值已满。

实验2 定时器/计数器接口扩展设计

实验2 定时器/计数器接口扩展设计 一、实验目的 1、学习8088/86与8253的连接方法。 2、学习8088/86对8253的控制方法。 3、学习8253多级串联实现大时间常数的定时方法。 二、实验原理 利用8088/86外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。用8253对标准脉冲信号进行计数,就可以实现定时功能。 三、实验仪器 LAB 6000实验系统,PC 机 四、实验内容 计数器: 本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT 脚输出一个高电平。实验时,可以将OUT0接到LED 上,观察计数器是否工作。 根据以下程序流程图编写完整的实验程序并调试。 参考程序: CONTROL equ 08003h COUNT0 equ 08000h COUNT1 equ 08001h COUNT2 equ 08002h code segment assume cs:code

start proc near mov al, 30h ; 通道0,方式0 mov dx, CONTROL out dx, al mov al, 5 ; 计数器初始值。 mov dx, COUNT0 out dx, al ; 低八位 mov al, 0 out dx, al ; 高八位 Again: mov al, 00000000B ; 锁存计数器值 mov dx, CONTROL out dx, al mov dx, COUNT0 in al, dx ; 读入计数值低八位 mov bl, al in al, dx ; 读入计数值高八位 mov ah, al mov al, bl jmp Again start endp code ends end start 1、定时器: 工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。 由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0的输出接到LED0。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。 根据以下程序流程图编写完整的实验程序并调试。 参考程序: CONTROL equ 0c003h COUNT0 equ 0c000h COUNT1 equ 0c001h COUNT2 equ 0c002h code segment assume cs:code start proc near mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制

实验三单片机定时计数器实验

实验三单片机定时/计数器实验 1、实验目的 1、学习计数器的使用方法。 2、学习计数器程序的编写。 3、学习定时器的使用方法。 4、学习定时器程序的编写。 5、熟悉汇编语言 2、实验说明 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 3、实验仪器和条件 计算机 伟福实验箱(lab2000P) 4、实验内容 1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个统统的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转 4、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD

用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 5、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 五、思考题 1、使用其他方式实现本实验功能; 2、改为门控方式外部启动计数; 3、如果改为定时间隔为200us,如何改动程序; 4、使用其他方式实现本实验功能,例如使用方式1,定时间隔为10ms,如何改动程序。 六、源程序修改原理及其仿真结果 思考题一:使用其他方式实现本实验功能 方法一: movTMOD, #00000100b;方式0,记数器 movTH0, #0 movTL0, #0 setbTR0;开始记数;由于方式0的特点是计数时使用TL0的低五位和八位 TH0,故用加法器a用“与”(ANL)取TL0的低五位,再用yiwei子程序实现TH0的低三位变为高三位与TL0相加,这样赋给P1时就是八位计数的结果。 Loop: mova,TL0 anla,#1fh

第八章定时器计数器和多功能接口芯片

第八章定时器/计数器和多功能接口芯片 【回顾】可编程芯片的概念,端口的概念。 【本讲重点】定时与计数的基本概念及其意义,定时/计数器芯片Intel8253的性能概述,内、外部结构及其与CPU的连接。 8.1 定时与计数 1.定时与计数 在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。 2.定时与计数的实现方法 (1) 硬件法 专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。 (2) 软件法 利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。 (3) 软、硬件结合法 即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。 8.2 定时/计数器芯片Intel8253 Intel8253是8086微机系统常用的定时/计数器芯片,它具有定时与计数两大功能。 一、8253的一般性能概述 1.每个8253芯片有3个独立的16位计数器通道; 2.每个计数器通道都可以按照二进制或二—十进制(BCD码)计数;3.每个计数器的计数速率可以高达2MHz; 4.每个通道有6种工作方式,可以由程序设定和改变; 5.所有的输入、输出电平都与TTL兼容。 二、8253内部结构 8253的内部结构如图8-1所示,它主要包括以下几个主要部分:

接口 定时器与计数器实验(8253)-- 8253定时器实验

同组同学学号: 同组同学姓名: 实验日期:2012 年 3月 26日交报告日期:2012 年 5月 30日实验(No. 1_1 )题目:定时器与计数器实验(8253)-- 8253定时器实验 实验目的及要求: 实验目的: 1、学习8253可编程定时器/计数器定时方法。 2、学习8253多级串联实现大时间常数的定时方法。 3、学习8088/86控制8253可编程定时器的方法。 实验要求: 用8253对标准脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。 实验电路及连线: 连线连接孔1 连接孔2 1 8253_CS CS4 2 8253_OUT0L0 3 8253_GATE0VCC 4 8253_CLK08253_OUT1 5 8253_GATE1VCC 6 8253_CLK1F/4(1M) 7 4MHz Fin 实验说明: 1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。 2、由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0 的输出接到LED0。

实验框图: 主程序框图 源程序及分析: CONTROL equ 0c003h ;设置命令寄存器 COUNT0 equ 0c000h ;设置计数器0 COUNT1 equ 0c001h ;设置计数器1 COUNT2 equ 0c002h ;设置计数器2 code segment assume cs:code start proc near ;第一次定时器设定: mov al, 36h; ; 计数器0,16位,方式3,二进制(00110110B=36h) mov dx, CONTROL out dx, al mov ax, 1000 mov dx, COUNT0

实验三_8253定时器计数器实器

实验三 8253定时器/计数器实验 一、实验目的 1. 学会8253 芯片与微机接口的原理和方法。 2. 掌握8253 定时器/计数器的工作原理和编程方法。 二、实验内容 编写程序,将8253的计数器0设置为方式2 (频率发生器),计数器1设置为方式3 (方 波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。 1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。 2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。 3.上面计数方式选用的是 16 进制,现若改用 BCD 码,试修改程序中的二个计数初值,使 LED 的闪亮频率仍为1Hz。 三、电路图

CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1; GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz; 四、流程图及编程指南 8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz用+5V 单电源供电。8253 的六种工作方式: ⑴方式0:计数结束中断⑷方式3:方波频率发生器 ⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号 ⑶方式2:频率发生器⑹方式5:硬件触发的选通信号8253 初始化编程 1. 8253 初始化编程 8253 的控制寄存器和 3 个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个计数器以及执行什么操作。因此8255 在初始化编程时,并没有严格的顺序规定,但在编程时,必须遵守两条原则: ①在对某个计数器设置初值之前,必须先写入控制字; ②在设置计数器初始值时,要符合控制字的规定,即只写低位字节,还是只写高位字节,还是高、低位字节都写(分两次写,先低字节后高字节)。

定时器计数器应用实验一

一、实验目的和要求 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作, 设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100 个脉冲, 则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作, 设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲, 则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图如下所示:

四:实验程序流程框图和程序清单 查询法流程框图: 中断法流程框图: 开始定时器初始化开定时器 清零TF0结束 TF0=0 P1.0取反N 开始堆栈初始化 定时器 中断初始化 开定时器进行中断 P1.1取反结束 程序清单: 查询法汇编: ORG 0000H MAIN: MOV TMOD, #02H MOV TH0, #9CH MOV TL0, #9CH MOV IE, #00H SETB TR0 LOOP: JBC TF0, LOOP1 LJMP LOOP LOOP1: CPL P1.0 LJMP LOOP END

查询法C语言:#include sbit cha=P1^0; void main() { TMOD=0x02; IE=0x00; TH0=0x9c; TL0=0x9c; TR0=1; while(1) { while(!TF0); TF0=0; cha=!cha; } } 中断法汇编:ORG 0000H MAIN: MOV IE, #82H MOV TMOD, #02H MOV TH0, #88H MOV TL0, #88H SETB TR0 HERE: LJMP HERE LOOP1: CPL P1.1 RETI END

相关主题
文本预览
相关文档 最新文档