可编程计时器8253应用
可编程定时计数器8253在扬声器中的应用
定时/计数器都有定时或对外部事件计数的功能。
通常,定时/计数器归纳起来一般有3种类型:硬件计数器可在简单软件控制下计数,特点是成本低,使用方便,但是专用性强,使用不广泛。
软件定时/计数器特点是几乎没有硬件费用,但他占用CPU的运行时间,降低了CPU的工作效率。
可编程定时/计数器特点是工作灵活,而且不占用CPU的运行时问,缺点是成本较高。
其中可编程定时/计数器8253是一种使用较为普遍的可编程定时/计数器。
可编程定时/计数器8253通过软件设定,可以产生各种时间延迟信号,他的使用非常广泛,通常被用于定时控制、延时、计数等场合,如定时刷新RAM、系统时钟的计时、扬声器的发音长短的控制。
在使用的时候,需要进行严密的计算和精确的测试,以满足不同的要求。
l 可编程定时/计数器8253的工作原理可编程定时/计数器8253是N MOS工艺制成的大规模集成电路,通过简单编程可实现不同的功能,图1为可编程定时/计数器8253的基本原理图。
从图1可以看出,芯片内有3个独立的计数器,分别为计数器0,计数器1,计数器2,每一个计数器都是16位的,可以分别对他们设定工作方式(通过控制字设定)。
图2为封装后的8253引脚图。
可编程定时/计数器8253可以应用在两种情况下:定时、计数。
当用作定时器时,可以循环计数,信号来源一般为系统本身;当用作计数器时,信号来源一般为系统文件。
在扬声器驱动系统中,可编程定时/计数器8253是作定时器来使用的。
图2中对应引脚的含义如下:CLK0,CLK1,CLK2:对应计数器的时钟输入。
GATE0,GATE1,GATE2:对应计数器输出信号。
OUT0,OUT1,OUT2:对应计数器输出信号。
RD:读信号。
低电平有效,读出计数器的计数值送入缓冲器。
WR:写信号。
低电平有效,接收由缓冲器送来的数据。
CS:片选信号。
低电平有效。
只有在CS信号低电平时8253才能产生读写操作,否则不会读写。
A1~A0:对3个计数器和1个控制寄存器端口进行寻址。
第九章可编程计数器定时器8253及其应用(精)
一、计数/定时的工作原理
CLK是计数输入信号,计数器对CLK端出现的脉冲个数 进行计数 •CLK端可以输入外部事件 •CLK端可以接入固定频率的时钟信号,从而实现 计时 OUT信号在计数结束时发生变化 •可将OUT作为外部设备的控制信号 •可将OUT作为向CPU申请中断的信号
CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令
边界
写入初值
三、8253的编程命令
•初始化
1)写入控制字 2)按控制字要求写入计数初值
计数器初值计算:N=fCLK/fOUT
例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制 寄存器端口地址73H。计数器0,工作模式2,CR/OL仅使用低8 位,初值为100,计数值使用二进制 MOV AL, 14H OUT 73H, AL MOV AL, 64H OUT 70H, AL
例如输入脉冲频率为2MHz,那么计数2106
计时1秒
因此,使用同一个芯片,既能计数,又能计时——计时器/计数器
一、计数/定时的工作原理
组成:
控制寄存器——决定工作模式 状态寄存器——反应工作状态 初值寄存器——计数的初值 计数输出寄存器——CPU从中 读当前计数值 计数器——执行计数操作, CPU不能访问
定时和计数器
对不同信号的计数 定时器
对时钟信号进行计数 周期性 对外部脉冲进行计数 周期性、非周期性
计数器
8253计数/定时器
可编程(工作方式/计数值) 三个独立的计数器通道 对初值进行减一计数 二进制/BCD计数初值 计数对象的最高频率为2MHz
可编程计数器定时器8253及其应用
一、8253的内部结构和引脚信号
• 注意: • 8088为CPU连接,地址总线高位参与译码;低位用于 各芯片内部端口寻址。 • 若8253的端口基地址为40H • 通道0地址40H • 通道1地址41H • 通道2地址42H • 控制字寄存器端口地址43H
一、8253的内部结构和引脚信号
可以被CPU 访问
8-1 可编程计数器/定时器的工作原理
• 控制寄存器可以用来控制工作模式。 • 计数器/定时器的工作模式就是指时钟脉冲和门脉冲怎样配合来产 生输出。 • 归纳起来,计数器/定时器可以有下面几种工作模式: • (1)门脉冲控制时钟输入。当门脉冲来到时,时钟有效;门脉冲结 束时,时钟无效。 • (2)用门脉冲来重新启动计数。 • (3)用门脉冲停止计数。即原来在不停地计数,当门脉冲到来时, 计数停止,并使输出端OUT进入高电平。 • (4)单一计数。这种情况下和门脉冲没有关系,只要门脉冲端为有 效电平就行了。计数器进行计数时不断输出信号,计数到达“0” 时,输出停止。 • (5)循环计数。每当计数值到达“0”时,给出一个输出信号,然后 又从初始值寄存器获得计数初值,开始新的计数过程。
微型计算机原理与接口技术
第八章
可编程计数器/定时器8253及其应用
• 8-1 可编程计数器/定时器的工作原理 • 8-2 8253的工作原理 • 8-3 8253的应用举例
8-1 可编程计数器/定时器的工作原理
• 计算机系统中经常要用到定时信号,如动态存储器的 刷新定时、系统日历时钟的计时以及喇叭的声源等都 是用定时信号来产生的。 • 一般,定时信号可以用软件和硬件两种方法获得。 • 软件方法:根据所需的时间常数设计一个延迟子程序 优点:节省硬件;缺点:执行延迟程序期间,CPU一 直被占用,降低CPU效率。 • 硬件方法:使用计数器/定时器。主要思想根据需要定 时时间,用指令对计数器/定时器设置定时常数,启动 计数器/定时器,计到确定值时,自动产生一个定时输 出。 优点:计数时不占用CPU的时间;利用其产生中断信 号,可建立多作业环境。
微机原理 可编程计数器定时器8253及应用
第八章 可编程计数器/定时器8253及应用 8-1 8253工作原理
一、8253的内部结构与引脚信号 二、8253的初始化编程
三、8253的工作方式
四、8253与系统的连接
8-2 8253的应用举例
一、8253定时功能举例 二、8253计数功能举例
1
第八章
定时/计数技术概述
计算机中常用到定时功能,如:动态RAM刷新、
第八章
二、8253的初始化编程
8253的初始化编程按顺序分两步完成:
1、写入控制字
2、写入计数初值
初始化编程的几点说明: 对3个计数通道的初始化编程没有先后顺序
若是16位数,必须用两条OUT指令来完成,且先送低8
位数据,后送高8位数据。 若计数初值为0时,要分成两次写入。0在二进制计数
18
第八章
8253方式3
4、方式3——方波发生器
时序图
计数初值为偶数时的波形
CW=16H WR CR=4 CLK GATE LSB=4
OUT
CRCE 4
CRCE 2
19
CRCE
2 4
CRCE 2 4
CRCE 2 4
4
第八章
8253方式3 计数初值为奇数时的波形
CW=16H WR
LSB=5 CR=5
CLK GATE
OUT CRCE 5 4 CRCE 2 5 CRCE CRCE 4 2 5
2
5
20
第八章
8253方式4
5、方式4——软件触发选通
时序图
CW=18H WR
LSB=2 CR=2
LSB=2 CR=2
CLK GATE OUT CRCE 2 1 CRCE 0 2 1 0 0
8253可编程定时计数器应用实验
8253可编程定时计数器应用实验一、实验要求:按照电路图连接好电路,利用8253定时计数器0产生500Hz,250Hz,125Hz 的方波信号,显示在示波器上;然后用8253定时计数器1制作一个频率计以检测4060和定时计数器0输出方波的频率。
二、实验目的:1、了解如何利用计数器(以4060为例)制作分频器2、熟悉8253在系统中的典型接法。
3、掌握8253的工作方式及应用编程。
三、实验电路及连线:输入时钟产生模块YQNQLQJQIQHQGQFQEQD图1,分频器4060就是一个纯粹的计数器,当作分频用,QD-DN就是对输入频率的4分频-8192分频,直接接到8253相应的定时器计数器时钟输入端口即可8253接口模块X图2,定时器计数器8位数据线和单片机的P0口相连;片选信号CS和P1.0相连;WR/RD分别和单片机相应的WR/RD相连;A0,A1分别和单片机的P3.4、P3.5相连;CLK0直接和4060的QD时钟输出相连;OUT0接示波器和CLK1。
四、实验说明:8253是一款拥有3个完全相同的16位定时器计数器的定时器计数器芯片,三个通道完全独立,其引脚功能为D0-D7:8位数据双向I/O口WR/RD:写/读信号,低电平有效CS:片选信号,低电平有效GATE0-2:三个定时器计数器的门信号CLK0-2:三个定时器计数器的时钟输入信号OUT0-2:三个定时器计数器的输出信号A0,A1:定时器计数器读写地址选择,00 定时器计数器0;01定时器计数器1;10 定时器计数器2;11 控制寄存器定时器计数器采用倒计数,即每输入一个时钟脉冲自减1,当计数寄存器减为0时OUT输出一个脉冲信号,但输出受工作方式和GATE引脚控制。
定时时间=时钟脉冲周期×预置的计数初值8253的定时器计数器有6种工作模式,具体工作模式由状态寄存器决定,如下SC1,SC0:计数器选择 00:选择计数器001:选择计数器110:选择计数器2RW1,RW0:读/写指示 00:计数器锁存命令01:只读/写低 8位10:只读/写高 8位11:先读/写低8位,再读/写高 8位M2,M1,M0:定时器计数器工作方式选择:000-101,方式0-5BCD:计数寄存器数制选择,1:BCD码;0:二进制码8253每个定时器计数器都有6种工作方式,具体如下所述方式0:计数结果中断方式8253工作于方式0时,在写入初始值n后,GATE为高电平时开始计数,OUT 为输出低电平,直到计数器为0,OUT变为高电平直到下次计数开始再变为低电平。
实验四 8253定时计数器应用
实验四8253定时/计数器应用1.实验目的掌握8253命令字的设置及初始化和8253的工作方式及应用编程2.实验内容8253是INTEL公司生产的通用外围接口芯片之一,它有3个独立的16位计数器,计数频率范围为0-2MHZ。
它所有的计数方式和操作方式都可通过编程控制。
其功能是延时终端、可编程频率发生器、事件计数器、倍频器、实时时钟、数字单稳和复杂的电机控制器。
3.实训步骤实现方式0的电路图。
设8253端口地址为:40H-43H要求:设定8253的计数器2工作方式为0 ,用于事件计数,当计数值为5时,发出中断请求信号,8088响应中断在监视设备上显示M。
本实训利用KK1作为CLK输入,故初值设为5时,需按动KK1键6次,可显示一个M.实验七 8253定时/计数器应用实验一.实验目的1.熟悉8253在系统中的典型接法。
2.掌握8253的工作方式及应用编程。
二.实验设备TDN86/88教学实验系统一台三.实验内容(一)系统中的8253芯片图7-1 8253的内部结构及引脚1. 8253可编程定时/计数器介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。
它有3个独立的十六位计数器,计数频率范围为0-2MHz。
它所有的计数方式和操作方式都通过编程的控制。
8253的功能是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253的工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253的内部结构及引脚如图7-1所示,8253的控制字格式如图7-2所示。
图7-2 8253的控制字8253的初始化编程如下图:2. 系统中的8253芯片系统中装有一片8253芯片,其线路如图7-3所示。
DW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: IN AL,21HAND AL,7FHOUT 21H,ALMOV AL,____HOUT 43H,AL ;8253控制口地址A1: MOV AL,____HOUT 42H,ALHLTSTIJMP A1HLTSTIJMP A1MOV AX,014DHINT 10H ;显示’M’MOV AX,0120HINT 10H ;显示空格MOV AL,20HOUT 20H,ALIRETCODE ENDSEND START实验步骤(1)按图接线。
8253的工作方式.doc
8253的工作方式.doc8253是一种可编程定时计数器,也称为PIT(可编程间隔计数器),主要用于定时、计数、脉冲宽度测量、触发信号生成等应用。
8253集成了三个内部计数器,并且具有多种工作模式,因此在实际应用中非常灵活。
这篇文章将介绍8253的工作方式。
一、8253的基本特点1. 集成了三个计数器:8253集成了三个16位的计数器,可以同时实现多种定时任务。
2. 可编程:8253可以通过编程输入控制字来设置工作模式、计数器初始值和计数方式等,大大提高了系统的灵活性。
3. 多种工作模式:8253具有多种工作模式,可以应用于定时、计数、脉冲宽度测量等各种应用场景。
4. 高可靠性:8253工作稳定可靠,在各种工作条件下都能保持准确的计数。
8253的工作模式通常分为三类:1. 方波发生器:8253可以通过设定适当的计数器初值和控制字来生成指定频率和占空比的方波信号。
这种工作模式一般应用于调制、解调和数字时钟等领域。
2. 计数器:8253可以将外部的脉冲信号作为计数器输入,并根据设定的计数器初值和控制字来实现计数。
这种工作模式主要应用于计数器、计时器和数据采集等领域。
3. 脉冲宽度调制:8253可以通过改变计数器初始值和脉冲输出方式来实现脉冲宽度调制。
这种工作模式广泛应用于伺服控制、PWM调光等领域。
三、8253的编程方法编程8253的主要步骤如下:1. 定义计数器模式:根据实际需求,定义相应的计数器模式。
8253的计数器模式主要包括16位计数器、8位计数器、比率发生器、方波发生器和脉冲宽度调制等。
2. 计数器初值设定:根据计数器模式和实际需求,设置相应的计数器初值。
计数器初值是计数器的初始计数值,也可以理解为计数器开始计数的起点。
3. 控制字设定:通过编写控制字,控制8253的各种功能和工作模式。
控制字通常由两个字节组成,其中第一个字节设定8253的工作模式和计数器选择,第二个字节设定计数器初值和扩展功能等。
8253及其应用
8253工作方式特点: 8253工作方式特点: 工作方式特点
方式0 在写入控制字后,输出端即变低,计数结束后, 方式0,在写入控制字后,输出端即变低,计数结束后,输 出端由低变高,常用该输出信号作为中断源。 出端由低变高,常用该输出信号作为中断源。 方式1 用来产生单脉冲。 方式1,用来产生单脉冲。 方式2 用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 方式2,用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 CLK 的周期相同。 的周期相同。 方式3 用来产生连续的方波。方式2和方式3 方式3,用来产生连续的方波。方式2和方式3都实现对时钟 脉冲进行n分频。 脉冲进行n分频。 方式4和方式5 波形相同,都在计数器回0 方式4和方式5的波形相同,都在计数器回0后,从OUT端输出 OUT端输出 一个负脉冲,其宽度等于一个时钟周期。 一个负脉冲,其宽度等于一个时钟周期。 方式0 方式0、1和4,计数初值装进计数器后,仅一次有效。方式2,3 计数初值装进计数器后,仅一次有效。方式2 在减1计数到0值后,8253会自动将计数值重装进计数器 会自动将计数值重装进计数器。 和5,在减1计数到0值后,8253会自动将计数值重装进计数器。
例
方式1: 方式1:可重复触发的单稳态触发器
CLK
WR
GATE OUT
(n=4)
4 3 2 1 单脉冲宽度
0
(m=5)
5
4 3 2 5 4 3 2 1 单脉冲宽度
0
方式1的工作特点:
可重复触发。计数到零后,不用再次送计数值,只要给它触发脉冲,即可产生一个同样宽 度的单稳脉冲。 计数过程中,若装入新的计数初值,则当前输出不受影响。只有再次触发后,计数才开始 按新值输出脉冲宽度。 计数过程中,外部的GATE触发沿提前到来,则下一个CLK脉冲下降沿,计数器开始重新计 数,这将使输出单稳脉冲比原先设定的计数值加宽了。
8253计数器的应用
RD WR
COUNTER (CE) ELEMENT
CE M (8)
L
READY
OL
M
(8)
OL L (8) OUTPUT LATCH (OL) CLK 1 GATE1 OUT1 CLK 2 GATE2 OUT2
IO/ M ADDR -BUS
ADDRESS DECODER
CS A1 A0
COUNTER#1
COUNTER#2
4. 8253操作与编址 8253操作与编址
CS RD WR A1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 X 1 0 0 0 0 1 1 1 1 X 1 0 0 1 1 0 0 1 1 X X
A0 0 1 0 1 0 1 0 1 X X LOAD COUNTER N0.0 LOAD COUNTER N0.1 LOAD COUNTER N0.2 WRITE MODE WORD READ COUNTER N0.0 READ COUNTER N0.1 READ COUNTER N0.2 N0-OPERATION 3-STATE DISABLE, 3-STATE N0-OPERATION 3-STATE
OUTPUT
0(3) OUTPUT
3
2
1
0(3) 2
1
0(3)
2
1
0
GATE (RESET)
8253工作方式 6. 8253工作方式 (6种)
• 方式3 方式3:方波发生器
(MODE 3) CLOCK OUTPUT n=4 OUTPUT n=5 4 3 n=4 0(5) 4 3 2 1 0(5) 4 3 2 2 1 0(4) 3 2 1 0(4) 3 2 1 0
8253计数器的应用
8253计数器的应用intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz) 8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。
顺便提一下,CR、CE 和OL都是16位寄存器,但是也可以作8位寄存器来用。
在微型机应用系统中,往往要求有一些外部实时时钟,以实现定时或延时控制,也往往要求能对外部事件进行计数控制的计数器。
有3种常用实现定时延时的控制方法:软件延时,不可编程硬件定时和可编程的硬件定时。
软件定时是用汇编语言编写的循环程序来实现,定时较准确,但在定时过程中,CPU 不能执行其它程序,浪费了CPU的时间。
不可编程硬件定时由定时器件来实现,如定时器555。
也可利用计数直接对系统时钟脉冲计数。
这种方式不占用CPU的时间,且很容易产生确定宽度的单脉冲或固定频率的连续脉冲,但一旦硬件电路确定后,定时特性不易改变。
可编程的硬件定时器是直接对系统时钟脉冲或某一固定频率的时钟脉冲进行计数的,计数多少则由编程确定。
当计数到预定的脉冲数时给出定时时间信号,从而得到所需要的定时时间间隔。
大部分可编程定时器都兼有计数功能,不仅可对系统时钟脉冲计数,也可对非周期性的外部事件进行计数。
可编程定时计数器8253的方式控制字及应用
第,期
周祥萍, 等: 可编程定时 ! 计数器 *+,- 的方式控制字及应用
・ ・ 9C
在计算机系统中使用的定时 ! 计数器归纳起来 有三大类: 软件定时 ! 计数器、 硬件定时 ! 计数器及可 编程定时 ! 计数器。软件定时 ! 计数器是实现系统定 时控制或延时控制的最简单的方法, 不需要外加硬 件电路并且定时精确, 但是 "#$ 开销大, 而且不能 响应中断, 否则定时不准确。硬件定时 ! 计数器是指 由硬件电路来实现的定时与计数, 对于较长时间的 定时一般用硬件电路来完成, 成本低, 使用方便, 缺 点是一旦元件设定就不能改变, 电路调试比较麻烦, 电阻电容长期工作, 会造成电路老化, 影响定时准确 度和稳定性。可编程定时 ! 计数器是一种软硬件结 合的定时 ! 计数器, 将定时 ! 计数器电路集成到一个 芯片上, 由 "#$ 通过程序设置其工作方式和计数初 值。 %&’() 公司的 *+,- 就是一种常用的可编程定时 ! 计数器。
$
引言
电力网的线损, 除与电源布局、 网络结构、 负荷分 布有关外, 更与运行管理有着直接关系。因此, 线损 率是衡量电力系统完善化程度和运行管理水平高低 的一项综合性技术经济指标。近年来随着管理水平 的提高和节能意识的增强, 如何利用无功补偿降低配 电线路损耗一直作为一个课题被广泛地进行研究。
!
无功功率补偿的必要性
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (!) 确定计数初值。根据设计要求扫描键盘的 &>0 *A, !#4 动作周期为 !$ 23, 则频率为 $ . !/45。 >?% !)4, *A , 即 , &>0 *A =#4 ! 6 " 78/$ 9 " :;<$ 6 !$ 9 $ . ! 6 !$$ =#4 (-) 选择工作方式。由于系统每隔 !$ 23 完成 ! >?% !$4, *A 次动作, 则扫描键盘的动作频率为 !$$45, 可选用方 在这段程序中, 先向 +-") 的控制口 (口地址为 式 - 来实现。当 +-") 定时器工作在方式 - 时, 在写 输出方式控制字, 然后将通道 $ 的计数 初 值 !)4) 写入口地址为 的通道 入控制字与计数初值后, 定时器就启动工作, 每到 =#4 !$4 $ 计数器中。这样, 每隔 !$ 23, 即计数器减到 ! 时, 输出端 >?%$ 输出 从 !$ 23 时间, >?%$ 的输出就向 @C? 申请 ! 次中断, 一个 @AB 周期的低电平, 向 @C? 申请中断, 完成键 而实现了应用的需求。 盘扫描, 同时按原设定值重新开始计数, 实现了计数 - 结束语 值的自动重装。 根据上述要求, 可确定 +-") 定时器的控制字为 可编程定时 9 计数器 +-") 在计算机系统中, 尤 其是在工业测控系统中有着广泛的应用。在应用 , 即 。该控制字表示选择 定时器 $$$!$!$$D !#4 +-") 中, 重点是根据应用的要求, 合理选择工作方式, 计 的通道 $; 读写格式为先低字节, 后高字节; 工作方 算初值, 并编写初始化程序段。 式 -; 选用二进制计数。 ()) 程序实现。+-") 的初始化程序段如下:
第7章可编程计数器8253
方式0 计数结束中断
① ② ④ 4 ⑤ ⑥
WR CLK GATE
方式0
4 3 2 1
0
OUT
④ ② ① ⑥ ⑤ 计 数 设 设 计 计 值 定 定 数 数 送 计 工 结 过 入 数 作 束 程 计 初 方 数 值 式 器
8253方式0的GATE作用时序
8253方式0 计数期间写入新的计数值的时序
8253工作方式2—比率发生器
(1) 结果特点:产生连续的负脉冲信号,负脉冲宽度等于一 个时钟周期,脉冲周期可由软件设定,脉冲周期=计数值× 时钟周期 (2)过程特点: ①控制字写入:OUT=1 ②计数值写入:OUT=1 ③启动方式:两种。一是硬件启动:GATE上调沿启动。二 是软件启动:写入计数值启动。(此时GATE=1) ④计数期间:OUT为高电平(OUT=1),但在CE由1减到 0的计数中,OUT输出一个负脉冲,宽度为一个时钟周期。 ⑤计数为0时:OUT变为高电平(OUT=1),开始下一个 周期的计数。
8253方式1—可编程单稳态输出方式
⑦GATE作用:GATE=0或=1时,不影响计数,但出
现上跳沿则重新启动计数器,按最新计数初值开始 计数,若在计数尚未结束时,就出现了上调沿,则 重新计数。因此,使输出负脉冲的宽度延长,这种 方式常用于工业控制系统中的干扰自动复位电路 ⑧计数值有效期限: 计数值多次有效,计数初值写入 CR 后,在没有新的计数值写入 CR 之前,原计数初 值在 CR 中保持不变,以后每触发一次, CR 中保存 的这个计数初值就装入CE一次。
8253工作方式4 —软件触发选通信号
⑥计数期间写入新的计数值:立即有效。写入新计 数值后,在下一个时钟周期时,新计数值被装入CE, 开始以新的计数值计数。如果写入的计数值是 2 个 字节,那么写入第一个字节时,计数不受影响,写 入第二个字节时的下个CLK时钟脉冲使CR的新值装 入CE,并以新的计数值开始重新计数。 ⑦GATE 作用: GATE=0 时,计数停止; GATE=1 时,允许计数,此时计数器从暂停的地方开始连续 计数。GATE信号不影响OUT的状态。 ⑧计数值有效期限:计数值一次有效。只有在输入 新的计数值后,才能开始。
第7章 可编程计数器定时器8253及其应用
计数器2
GAT E2
OUT2
A1A0=10 8253的内部结构
§7.1 8253的工作原理
一.8253的结构和功能
2. 8253的内部结构和引脚功能
② 计数器0~2
3个独立的计数器,构成3个通道ch0~ch2。
计数初值 寄存器CR
计数执行 单元CE
计数值锁 存单元LR
CLK
GATE
OUT
CPU DB
一.8253的结构和功能
2. 8253的内部结构和引脚功能
③ 控制字寄存器
8位寄存器,写入控制口(A1A0=11)。
CPU DB
D0 ~ D7
数据 总线 缓冲器 内 部 总 线 控制字 寄存器
CLK0
计数器0
GAT E0
OUT0
CLK1
在8253的初始化编程中, 由CPU向8253的控制字寄存器写 入一个控制字来设置8253的工 作方式。
§7.1 8253的工作原理
三.8253的工作方式
2. 方式1 可编程单稳态输出方式
N N
OUT
TCLK
写入控制字,OUT变高,写入初值,经 过一个CLK周期,初值到达计数执行单元。 无论GATE为何电平,都不工作。在GATE上 升沿作用下,并且OUT变低,开始计数,计 数到“0”,OUT变高,停止计数。
■ 通道管脚(9个)
8253有3个计数/定时通道。 ◇ 通道0有3个引脚:CLK0、GATE0、OUT0 ◇ 通道1有3个引脚:CLK1、GATE1、OUT1 ◇ 通道2有3个引脚:CLK2、GATE2、OUT2
8253
■ 与CPU连接的管脚(13个)
8253的工作原理及应用
8253的工作原理及应用一、工作原理8253是一种常见的计时/计数芯片,它能够完成各种定时和计数功能。
它采用了三个计数器,分别为计数器0、计数器1和计数器2。
每个计数器可以独立工作,同时也可以与其他计数器进行协同工作。
具体的工作原理如下:1.计数器的基本工作原理是将外部时钟信号分频后输出,根据计数器的工作模式,可以输出不同的周期信号。
2.8253有三个计数器,计数器0可以设置工作模式,计数器1和计数器2可以由计数器0通过控制字来选择工作模式。
3.通过控制字可以设置计数器的工作模式,比如设置为定时器工作模式、内部触发工作模式、软件触发工作模式等等。
4.计数器工作的时候,是通过输入控制字来设置计数器的初始值,然后按照设定的模式进行计数,当计数到达设定的值时,会触发相应的事件,例如输出一个脉冲信号或者产生一个中断。
二、应用领域8253芯片在计算机系统中有广泛的应用,主要包括以下几个方面:1.定时器功能:8253芯片可以实现定时器的功能,通过改变控制字设置的工作模式和初始值,可以产生定时脉冲信号,精确地控制计时间隔。
这在操作系统中非常常见,可以用于定时器中断、延时等。
此外,它还可以用于工业自动化领域中的精确控制和同步任务。
2.计数器功能:8253芯片也可以作为计数器使用。
例如,在测量系统中,可以通过外部输入信号的脉冲数量来进行计数,并配合计时功能实现测量和统计。
3.PWM信号生成:8253芯片可以实现PWM(脉宽调制)信号的生成。
通过改变初始值和周期,可以控制PWM信号的占空比,实现对电机速度、光强等参数的控制。
4.音频处理:8253芯片中的计数器可以用于实现音频处理。
通过设定计数器的频率,可以控制音频信号的采样率,从而实现音频的录制和播放。
5.高速脉冲生成:8253芯片可以产生高速脉冲,用于直流电机控制、步进电机控制等应用场景中。
三、优势与不足8253芯片具有以下几个优点:•多功能性:8253芯片具有丰富的工作模式,可以根据不同的需求灵活地配置和应用。
实验三 8253计数器定时器的应用
实验三 8253计数器/定时器的应用一、实验目的:学习掌握8253用作定时器的编程原理;二、8253应用小结I8253和I8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。
I8254是I8253的改进型。
1.微机系统定时器和实验箱定时器(1)微机系统使用的8254,其3个通道均有固定的用途:0号计数器为系统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态存储器的定时刷新控制;2号计数器为系统的发声源。
用户在使用微机系统的时候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。
(2)实验箱上的8253,其数据线D7—D0,地址线A1、A0和控制线RD、WR通过总线驱动卡和微机系统的三总线相连。
除此之外,三个计数器的引出段和片选端都是悬空的,这意味着实验箱上的8253的三个计数器都归用户使用,你可以单独使用其中的一个计数器,也可以串联使用其中的2个或3个计数器。
(3)8253计数器的输入信号,其频率不能超过2MHz,否则长时间使用,芯片过热,容易烧毁。
2.8253初始化使用8253前,要进行初始化编程。
初始化编程的步骤是:①向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。
②向使用的计数器端口写入计数初值。
3.8253控制字D7D6=00:使用0号计数器,D7D6=01:使用1号计数器D7D6=10:使用2号计数器,D7D6=11:无效D5D4=00:锁存当前计数值D5D4=01:只写低8位(高8位为0),读出时只读低8位D5D4=10:只写高8位(低8位为0),读出时只读高8位D5D4=11:先读/写低8位,后读/写高8位计数值D3D2D1=000:选择方式0,D3D2D1=001:选择方式1D3D2D1=X10:选择方式2,D3D2D1=X11:选择方式3D3D2D1=100:选择方式4,D3D2D1=101:选择方式5D0=0:计数初值为二进制,D0=1:计数初值为BCD码数三、实验电路蜂鸣器电路四、实验内容1.完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。
可编程定时计数器8253及其应用
CW=1A WR
LSB=3
CLK
GATE
OUT
3 2 3 2 1 0 FF
* 计数器只计数一次; * OUT是N+1个CLK后变低; * 在 计数过程中出现的GATE脉 冲, 将使 计数器重新开始计数,
对输出状态没有影响;
* 若在计数过程中改变计数值, 只要没有GATE信号触发,不影 响计数过程。有新的GATE信号 触发则按新的计数值开始计数。
在计数过程中,8253读计数器现行值的方法: (将计数值存入内部锁存器)
MOV OUT IN MOV IN MOV
AL,03H ;计数器0的锁存命令 0FBH,AL;写入控制寄存器 AL,0F8H ;读低8位 CL,AL ;存入CL中 AL,0F8H ;读高8位 CH,AL ;存入CH中
例2:用8253产生各种定时波形。
CW=16 WR
LSB=5
CLK GATE=1
OUT
5 42 5 2 5 4 2 52
*GATE信号控制计数过程;
*计数过程中写入新的计 数值将在半周期结束时装 入计数器。
例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数 脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。
1. 8253的端口地址为:80H,81H,82H,83H。
* 写入控制字OUT=1, 写入常数不计数;
* GATE启动计数, OUT=0;
CW=12 LSB=3 WR
CL二K . 8253-PIT的工作方式
GATE
* 计数到,OUT=1。
OUT
32
1 0 FF 3
CW=12 LSB=3
WR
CL二K . 8253-PIT的工作方式
第八章 可编程计数器定时器8253及其应用
习题 CH8 8253
答(续上题): 计数器1工作在方式2,即分频器的方式.输出波形的频 率f=fclk/N=2MHZ/3000=666.7HZ,其周期为1.5ms,输出负 脉冲的宽度等于CLK的周期为0.5s. 方式3,即方波发生器的方式.输出频率 f=2MHZ/1000=2000Hz的对称方波. 三个OUT的输出波形如下:
3kHz +5V
产品计数脉冲
+5V
装箱脉冲
1
习题 CH8 8253
1.写出相关定时/计数器的工作方式,并简述理由. 答:T0的工作方式为1,因为方式1需要外触发才能计数,并且 在计数过程中OUT端输出低电平(2分) T1的工作方式为0, 因为方式0下计数器计数结束后,输出一个上升沿.(2分) 2.计算相关定时/计数器的计数初值. 答:计数器0的初值等于2秒钟计数的个数,即6000.(1分) 计数器1的初值等于19.(1分)
5
习题 CH8 8253
设8253的计数器0,工作在方式1,计数初值为2050H; 计数器1,工作在方式2,计数初值为3000;计数器2,工 作在方式3,计数初值为1000.如果三个计数器的GATE都 接高电平,三个计数器的CLK都接2MHz时钟信号,试画出 OUT0,OUT1,OUT2的输出波形. 答:计数器0工作在方式1,即可编程单稳态方式.这种方 式下, GATE必须有个上升沿,计数器才能启动.而GATE 接了高电平,当方式控制字写入后OUT0变高,计数器无 法启动,所以OUT0一直为高电平.
2
习题 CH8 8253
3.编写8253的初始化程序片断(8253占用地址90H~93H). 答:
MOV AL,00110011B ;通道0,方式1,BCD OUT 93H,AL MOV AL,00H OUT 90H,AL MOV AL,60H OUT 90H,AL OUT 93H,AL MOV AL,19 OUT 91H,AL (1分)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机实验报告班级020083 学号02008333 姓名本次成绩日期20 10年12 月 2 日星期四时间10:45~12:00 实验地点516实验四可编程定时器/计数器8253的应用一、实验目的掌握8253方式1,2,3的工作原理及使用方法;掌握8253的硬件计数方法。
二、实验内容1.以实验仪上的1M Hz时钟信号作为输入,编程8253的T0,T1为分频器(方式3)串联使用,在OUT1引脚输出周期为1秒的方波,OUT1直接接发光二极管L0,以作直观指示;2. 进一步深化实验1内容,8253的T0,T1、T2联合使用,输出周期1秒,占空比1:4的波形,再观察发光二极管L0的状态。
3. 8253的T0为分频器,OUT0又接到CLK1串联使用,计数器T1输出为中断触发方式,每一秒产生电平变化,将OUT1接到8255的PC0,查询其状态,若1秒定时时间到,则PA口的流水灯移动一位。
4. 8253的T0编程为计数器,以单脉冲电路时钟信号,计数单脉冲按健的按下次数。
计数值以下列方法显示(任选其一):(a)主机屏幕数字显示;(b)利用数码管显示。
实验内容4的8253连线图实验提示:实验内容2:1MHz经过T0的1000分频后成为1KHz的方波信号(方式3);该信号经T1的4000分频(方式2),得到0.25Hz的周期信号,经过反相后,用于触发T2;T3工作在方式1,为单稳态触法器。
单稳态(低电平)时间由时钟(也取自OUT0,1KHz)周期和计数值确定。
程序请参考课堂笔记的内容,并作一定的修改。
程序初始化完成后,即可开始空循环,并在检测到有按键时退出。
运行期间观察L0发光二极管的状态。
实验内容4:该实验内容基本部分连线比较简单。
要求将T0初始化为计数方式,且初值为0。
建议采用只读写低8位,BCD码的设置。
实验时有00-99种计数已经足够体会该功能了。
计数进入主循环,也是检测到按键退出,但要手工按动实验箱上的单脉冲按键,实验才有意义。
在循环中,每次要读取T0的计数值,如果读到的数与上次的不同,就要将新的数字显示出来。
读出的BCD 码分高位和低位,分别转化为ASCII码,高位和低位连续存放,并且再尾随一个’$’,就可以用DOS的09h号功能打印到屏幕了。
如果要用数码管显示,就要利用上次实验的成果。
请参考上次的实验连线。
实验现象记录(思考题)1 实验内容1-2中,T0~T2各计数值是多少?如何调整周期和占空比?列出初始化部分的主要代码。
实验一中,T0计数值为1000,工作方式3,T1计数值为1000,工作方式3,T2未使用,CLK信号频率为1MHZ 初始化主要代码:MOV AL,00100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T08253OUT DX,ALMOV AL,01100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T18253OUT DX,AL实验二中,T0计数值为1000,工作方式3,T1计数值为200,工作方式3,T2计数值为5,工作方式2,CLK 信号频率为1MHZ初始化主要代码:MOV AL,00100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T08253OUT DX,ALMOV AL,01100111BMOV DX,CON8253OUT DX,ALMOV AL,02HMOV DX,T18253OUT DX,ALMOV AL,10010100BMOV DX,CON8253OUT DX,ALMOV AL,05HMOV DX,T28253通过改变T2的计数值,就可以改变占空比。
调整周期则是通过改变T0,T1,T2三者计数值乘积的大小,实现不同的分频。
2 实验内容4中,为什么我们建议用BCD码设置?如果8253内部用二进制计数,则显示时要注意什么?因为采用BCD码计数,是十进制计数,这样显示的时候,很方便,只需加上ASCII码,就行了。
采用二进制计数时,则需注意二进制转换为十进制时,会出现要显示字母的情况,需要辨别字母和数字,并分别加不同的ASCII码值,字母为37H,数字为30H,比较麻烦。
附源程序实验一:Base EQU 0EC00H - 280HT08253 EQU Base + 280HT18253 EQU Base + 281HT28253 EQU Base + 282HCON8253 EQU Base + 283HDATA SEGMENTMESS DB 'Press any key,return to DOS!',0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09HINT 21HMOV AL,00100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T08253OUT DX,ALMOV AL,01100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T18253NEXT: MOV AH,0BHINT 21HCMP AL,0FFHJE LASTJMP NEXTLAST: MOV AH,4CHINT 21HCODE ENDSEND START实验二:Base EQU 0EC00H - 280HT08253 EQU Base + 280HT18253 EQU Base + 281HT28253 EQU Base + 282HCON8253 EQU Base + 283HDATA SEGMENTMESS DB 'Press any key,return to DOS!',0AH,0DH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09HINT 21HMOV AL,00100111BMOV DX,CON8253OUT DX,ALMOV AL,10HMOV DX,T08253OUT DX,ALMOV AL,01100111BMOV DX,CON8253OUT DX,ALMOV AL,02HMOV DX,T18253OUT DX,ALMOV AL,10010100BMOV DX,CON8253OUT DX,ALMOV DX,T28253OUT DX,ALNEXT: MOV AH,0BHINT 21HCMP AL,0FFHJE LASTJMP NEXTLAST: MOV AH,4CHINT 21HCODE ENDSEND START实验三:Base1 EQU 0EC00H - 280HT08253 EQU Base1 + 280HT18253 EQU Base1 + 281HT28253 EQU Base1 + 282HCON8253 EQU Base1 + 283HBase2 EQU 0EC00H - 290HPa8255 EQU Base2 + 290HPc8255 EQU Base2 + 292HCon8255 EQU Base2 + 293HDATA SEGMENTMESS DB 'Press any key,return to DOS!',0AH,0DH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXLEA DX,MESSMOV AH,09HINT 21HNEXT: MOV AH,0BHINT 21HCMP AL,0FFHJE LASTMOV AL,27HMOV DX,CON8253OUT DX,ALMOV DX,T08253OUT DX,ALMOV AL,67HMOV DX,CON8253OUT DX,ALMOV DX,T18253MOV AL,10HOUT DX,ALMOV DX,Con8255MOV AL,81HOUT DX,ALMOV BL,80HMOV CL,01HMOV DX,Pa8255MOV AL,BLOUT DX,ALY1: MOV DX,Pc8255IN AL,DXCMP AL,CLJE X1JMP Y1X1: MOV AL,BLROR AL,1MOV BL,ALNOT CLAND CL,01HJMP NEXT LAST: MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND START注:实验三没有成功实验四:Base EQU 0EC00H - 280H T08253 EQU Base + 280H T18253 EQU Base + 281H T28253 EQU Base + 282H CON8253 EQU Base + 283HCODE SEGMENTASSUME CS:CODESTART: MOV AL,15HMOV DX,CON8253OUT DX,ALMOV DX,T08253MOV AL,09HOUT DX,ALNEXT: IN AL,DXCALL DISPPUSH DXMOV AH,06HMOV DL,0FFHINT 21HPOP DXJZ NEXTMOV AH,4CHINT 21HDISP PROC NEARPUSH DXAND AL,0FFHMOV DL,ALCMP DL,9JLE NUMADD DL,7NUM: ADD DL,30HMOV AH,02HINT 21HMOV DL,0DHINT 21HMOV DL,0AHINT 21HPOP DXRETDISP ENDPCODE ENDSEND START注:实验四,选择的主机屏幕数字显示指导教师(签字)。