计算机8253定时器-计数器
OUT
5 4 3 2 1 5 4 3 2 1 5 暂停计数 4
启动计数
再次启动计数
方式4 WR启动,自动重复计数 写入初值,启动计数; 计数完成,经过1CLK又重新从初值
开始计数; GATE=0,停止计数。
GATE=1,从初值开始计数
MOV AL,00011000B OUT 43H,AL MOV AL,4 OUT 40H,AL
试分析8253的工作情况。
控制字分析: 00 11 011 0 B
设置计数器0 写入16位初值
初值为二进制数 方式3,方波发生
初值分析: 0000H ,写入后,减1得0FFFFH,再减65535次才输出一次方波。 方波周期:高、低电平期均为32768次CLK, CLK的周期=1/(1.19 ×106) 秒
∴方波周期=65536×CLK的周期=55.072毫秒≈55毫秒
例2 已知PC机中,8253的OUT0接到8259的IRQ0,即:每 55ms发出
一次中断。 试编程,截取此中断,得到一个秒计数器。
注: IRQ0的中断类型号为9.
启动计数
再次启动计数
方式3 WR启动,自动重复方波计数
写入初值,启动计数;
MOV AL,00010110B
计数完成,又重新从初值开始计数,
OUT MOV
43H,AL AL,5
计数期间,前半期OUT=1,后半
OUT 40H,AL
期OUT=0;
计数期间,GATE=0暂停计数
CLK
WR N=5 GATE
第2节 8253定时/计数器
一 定时/计数器的基本概念 什么是定时器计数器? 定时器: 事先设定一个时间长度,当“定时时间到”时,向 CPU输出触发信号。 计数器:统计某事件发生的次数。当累计的次数达到事先设 定的次数时,输出触发信号。 PC机中,用一片集成电路(Intel8253)来完成定时/计 数工作。如: 每隔一定的时间间隔对DRAM刷新、以一定的速率驱动 磁盘马达运转、产生周期性方波使蜂鸣器发出鸣叫提示, 等等。
至DRAM刷新
+5V
蜂鸣器
放 大
CKL0 CKL1 CKL2
WR
来自一个
RD
控制电路
1.19MHz
I/O地址: 控制寄存器
43H
计数器0~2#的初值寄存器 40H~42H
三 8253的工作方式 控制寄存器
SC1 SCO RL1 RL0 M2 M1 M0 BCD
要设置哪个通道? 00 计数器0 01 计数器1 10 计数器2 11 非法
工作前,CPU先将一个初值写入;
工作时,每来一个CLKx脉冲,对应的计数值 -1 ;
当计数值减到0时,OUTx发出信号脉冲。
控制字寄存器
8253的各计数通道都可按6种方式工作;
控制字用于选择工作方式,初始化时由CPU写入;
地址
A1 A0
寄存器
操作说明
00
计数器0# 读、写初值
01
计数器1# 读、写初值
54321
启动计数
再次启动计数
方式2 WR启动,自动重复计数
写入初值,启动计数;
MOV AL,00010100B
计数完成,又重新从初值开始计数;
OUT MOV
43H,AL AL,5
GATE=0,暂停计数
OUT 40H,AL
CLK
WR N=5 GATE
OUT
54 321543
21
5 暂停计数 4
10
计数器2# 读、写初值
1 1 控制寄存器 写控制字
(2) PC/XT机中8253与8088的连接
8088 CPU D7~D0
A0 A1
A2~A9
IO/M IOW IOR
8253
D7~D0
A0 A1
40H~43H
地址 译码
CS
OUT0 GATE0
OUT1 GATE1
OUT2 GATE2
55ms方波 至8259的IRQ0 +5V
二 8253的内部结构
DB7~DB0
A0 A1 WR RD CS
与CPU接口 的信号
数据缓冲 读/写逻辑
控制字 寄存器
内部总线
计数器 0# 计数器 1# 计数器 2#
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1
CLK2 GATE2 OUT2
(1)8253的内部寄存器
计数器
825有3个计数通道,每个通道有一个16位计数器;
GATE=1, 恢复计数
方式1 GATE启动,单次计数 写入初值,由GATE=1启动计数; 计数期间,GATE=0不会停止; GATE上升沿,从初值开始重新计数
MOV AL,00010010B OUT 43H,AL MOV AL,5 OUT 40H,AL
CLK WR N=5 GATE
OUT
5 4 3 2 10
设置格式 00 计数锁存 01 仅低8位 10 仅高8位 11 先低8位,
后高8位
计数方式 000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5
计数进制 0 二进制 1 十进制
方式0 WR启动,单次计数 写入初值,立即开始计数; 计数期间,GATE=0暂停; 再次写入初值又开始计数。
WR N=4 GATE
MOV AL,00011010B OUT 43H,AL MOV AL,4 OUT 40H,AL
OUT
4 3 2 1 0 4 3 2 43 21 0 4 3
启动计数 再次启动计数
加载计数
再次启动计数
四 应用举例
例1 PC机在启动时,对8253的设置程序如下: MOV AL,00110110B OUT 43H,AL MOV AL,O OUT 40H,AL OUT 40H,AL
MOV AL,00010001B OUT 43H,AL MOV AL,5 OUT 40H,AL …… MOV AL,4 OUT 40H,AL
CLK
GATE
WR N=5
OUT
5 4 3 2 1 0 =4 4 3
WR的上升沿 启动计数
计数完成, 再次启动 停止计数 计数
GATE=0, 暂停计数
2 10
CLK
WR N=4 GATE
OUT
4 3 2 1 0 4 暂停计数
3 21 0 4 3
启动计数
再次启动计数
再次启动计数
方式5 GATE启动,自动重复计数 写入初值,暂不计数; GATE=1,启动计数;
GATE=0,计数不会停止。 计数完成,经过1CLK又重新从初
值 开始计数; 计数期间,由GATE上升沿加载初 CLK值
8253定时-计数器
1.3 8253的控制字和工作方式
1.3 8253的控制字和工作方式
方式3
1) 当计数初值N为偶数时,输出端的高低电平持续时间相等,各为N/2个 CLK脉冲周期,当计数初值N为奇数时,输出端的高电平持续时间比 低电平持续时间多一个脉冲周期,即高电平持续(N+1)/2个脉冲周 期,低电平持续(N-1)/2个脉冲周期。例如N=5,则输出高电平持 续3个脉冲周期,低电平持续2
1.3 8253的控制字和工作方式
2.8253
可编程定时/计数器8253有两个基本功能,即定时和计 数。除此之外,还可以作为频率发生器、分频器、实时时钟、 单脉冲发生器等。这些功能是通过对8253编程,写入方式 控制字来完成的,8253为每个计数通道提供6种工作方式。
(1)方式0——
0控制
字CW后,计数器输出端OUT立即变成低电平。当写入计数
3) 在计数过程中,可由门控信号GATE控制暂停。当GATE为0时,计 数器暂停计数;当GATE变为1
4) 方式0的OUT信号在计数到0时由低变高,可作为中断请求信号。
1.3 8253的控制字和工作方式
(2)方式1—— 在设定工作方式1和写入计数初值后,OUT输出高电平,
此时并不开始计数。当门控信号GATE变为高电平时,启动计 数,OUT输出变低电平。在整个计数过程中,OUT都维持为 低电平,直到计数到0时,输出变为高电平。因此,输出为一 单脉冲,其低电平的维持时间由装入的计数初值来决定。图所 示为8253工作方式1的时序图。
6)方式5—— 在这种方式下,当写入控制字后,输出端出现高电平 作为初始电平。在写入计数初值后,计数器并不立即开始 计数,而是要由门控脉冲的上升沿来启动计数,这称为硬 件触发。当计数到0时,输出变低电平,又经过一个CLK 脉冲,输出恢复为高电平,这样在输出端得到一个负脉冲 选通信号。计数器停止计数后要等到下次门控脉冲的触发, 才能再进行计数。8253工作方式5的时序如图所示。
8253定时计数器
一、实验目的
1、掌握8253的基本工作原理和编程方法;
2、使用Байду номын сангаас辑笔来观察8253的工作状态。
二、实验内容
编写实验程序,利用实验台上8253定时/计数器对 1MHz时钟脉冲进行分频,产生频率为1Hz的方波信号, 并用逻辑笔观察OUT1引脚输出电平的变化。
三、8253工作方式
硬件接线提示
+5V电压
方式0-----计数结束中断 方式1-----硬件触发单拍脉冲 方式2-----频率发生器 方式 0 方式 1
方式 2 方式 3 方式 4
方式 5
方式3-----方波发生器
方式4-----软件触发选通 方式5-----硬件触发选通
四、实验提示
1、8253初始化 对8253定时/计数器进行初始化操作,必须遵守两个 原则:
模式选择 000:模式0 001:模式1 010:模式2 011:模式3 100:模式4 101:模式5
0:二进制 1:BCD
3、8253的地址
片选地址:280~287H
8253控制寄存器地址:0C403H 计数器0的地址:0C400H 计数器1的地址:0C401H
4
五、实验重点或难点
1、8253控制字的定义。 2、8253各工作方式的特点。 3、8253级连时接线方法。
(1)首先要写入工作方式控制字,再写入计数初值;
(2)初始值的设置应与控制字中规定的格式相一致。
2、8253控制字表
SC1 SC0 RW2 RW1 M2 M1 M0
数制选择
计数器选择 00:计数器0 01:计数器1 10:计数器2 11:非法
读/写指示 00:锁存 01:只读/写低8位 10:只读/写高8位 11:先读/写低8位 再读/写高8位
8253bcd计数和二进制计数
8253bcd计数和二进制计数8253BCD计数和二进制计数是计算机中常见的两种数码计数方式。
这两种计数方式在数字电路、计算机控制、数字信号处理等领域中被广泛使用。
本文将详细介绍8253BCD计数和二进制计数的相关知识。
一、8253BCD计数8253是一种通用计数器/定时器,其中的BCD计数器可用于二进制编码十进制(BCD)计数。
BCD计数是一种十进制计数方式,它将数字按照其各个位的十进制值进行编码,并在一个字节中存储。
例如,数字5在BCD编码中表示为0101,数字12在BCD编码中表示为00010010。
在8253计数器中,BCD计数器有三个独立的计数通道,分别称为通道0、通道1和通道2。
每个通道都有一个可编程的单稳态器和一个可编程的分频器。
分频器可以将输入时钟信号分频到较低的频率,以控制计数器的计数速度。
单稳态器可以产生一个脉冲,并在设置数量的计数后自动重置。
除了BCD计数器,8253还包括两个二进制计数器,分别称为计数器0和计数器2。
这两个计数器可以进行二进制计数,将二进制数字编码为二进制数,并在8位二进制计数之后自动重置。
计数器2可以用来产生系统时钟信号,计数器0则可用于定时器,产生触发信号等。
二、二进制计数二进制计数是一种将数字编为二进制数并进行计数的方式。
在二进制计数中,每个数字的取值只有0和1,因此可以使用较小的位数来存储较大的数字。
例如,数字5在二进制计数中表示为0101,数字12在二进制计数中表示为1100。
在计算机中,二进制计数被广泛使用。
所有的数字和字符都可以被编码为二进制数,并在计算机内部存储和处理。
二进制数的位数越多,可以表示的数字就越大。
计算机的时钟频率也是二进制计数的基础,它用来控制CPU的运行速度。
在计算机中,二进制计数通常使用硬件电路来实现。
例如,CPU 中的计数器可以对时钟信号进行计数,并在达到一定的计数值后触发中断。
在数字信号处理中,二进制计数器也可以用来对数字信号进行采样和处理。
实验三 8253定时 计数器实验
实验三8253定时/计数器实验一.实验目的了解8253的硬件连接方法,掌握8253的各种方式的编程及其原理。
二.实验要求编写程序,将8253的计数器0设置为方式3(方波),计数器1设置为方式2(分频),计数器2设置为方式2(分频);计数器0的输出作为计数器1的输入,计数器1的输出作为计数器2的输入;计数器2的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1. 编程时用程序框图中的三个计数初值,计算OUT2的输出频率,用手表观察LED,进行核对。
2. 修改程序中的三个计数初值,使OUT2的输出频率为1Hz,用手表观察LED,进行核对。
3. 上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的三个计数初值,使LED的闪亮频率仍为1Hz。
三.实验电路及连线GATE0~GATE2连至电源+5V,从波特率开关边的f插孔用线连至CLK0,OUT0用线连至CLK1,OUT1用线连至CLK2,OUT2用线连至一个发光管(DL1),8253片选孔CS 用线连至译码处228~22FH插孔。
四.实验说明8253工作频率为0~2MHZ,所以输入的时钟频率必须在2MHZ之下。
实验板上的晶振为4.9152MHZ,需经74LS393(16分频),由Q3输出307200HZ到CLK0(将波特率开关拨至9600)。
五.实验内容(一)程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,18HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率:f=307200HZ/(200H*18H*0AH)=2HZ修改后程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,30H ;初值30HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率1HZ(二)OUT1----LED1:点亮0.5s,熄灭0.5sOUT2----LED2:点亮1s,熄灭3s程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111B ;OUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110111BOUT DX,ALMOV DX,229HMOV AL,35H ;35H 58hOUT DX,ALMOV AL,15H ;15H 02hOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110100BOUT DX,ALMOV DX,22AHMOV AL,04H ;04hOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START。
8253定时计数器实验
8253定时器/计数器实验一、实验目的:1、进一步了解可编程定时/计数器8253的特点与功能;2、掌握8253定时/计数器的应用、编程方法。
二、实验设备:MUT—Ⅲ型实验箱、8086CPU模块、示波器。
三、实验内容:用定时/计数器8253的计数器0、计数器1级联实现1秒的定时。
使OUT1端所接发光二极管每隔1S闪烁一次,模拟电子秒表或信号报警器。
两个计数器皆工作于方式3(输出方波),CLK0端接频率为750KHz的时钟。
四、实验电路:本实验用到两部分电路:时钟脉冲发生器(脉冲产生电路)(见附录)、8253定时器/计数器(1片)。
电路原理图如图1所示。
图1:8253定时/计数器实验电路五、实验步骤:(1)实验连线:CS0连CS8253,8253CLK0连时钟脉冲发生电路的CLK3,OUT0连8253CLK1,OUT1连LED1。
如图2所示。
注意:GATE信号线、数据线、地址线、读写控制信号线均已接好。
图2:线路连接示意图(2)输入以下程序,编译、链接后,全速运行,观察实验结果。
;8253初始化参考程序CODE SEGMENTASSUME CS:CODEORG 0100HSTART:MOV DX,04A6H ;控制寄存器地址MOV AL,00110110B ;计数器0控制字:方式3,二进制计数OUT DX,ALMOV DX,04A0H ;计数器0的口地址MOV AL,0EEH ;写计数初值低8位OUT DX,ALMOV AL,02H ;写计数初值高8位OUT DX,ALMOV DX,04A6H ;控制寄存器地址MOV AL,01110110B ;计数器1控制字:方式3,二进制计数OUT DX,ALMOV DX,04A2H ;计数器1的口地址MOV AL,0E8H ;计数初值低8位OUT DX,ALMOV AL,03H ;计数值高8位OUT DX,ALNEXT: NOPJMP NEXT ;CPU在此循环执行空操作,说明8253独立工作。
8253可编程计数器定时器
8253的工作原理简介8253可编程计数器/定时器的工作频率为0~2MHz,它有3个独立编程的计数器,每个计数器有三个引脚,分别为时钟CLK、门控GATE、计数器和计时结束输出OUT;每个计数器分别有6种工作方式。
下面针对使用到的两种工作方式——方式1和方式2的工作原理[1]进行简述。
方式1:可编程单稳,即由外部硬件产生的门控信号GATE触发8253而输出单稳脉冲。
计数器装入计数初值后,在门控信号GATE由低电平变高电平并保持时,计数器开始计数,此时输出端变成低电平并开始单稳过程。
当计数结束时,输出端OUT转变成高电平,单稳过程结束,在OUT端输出一个单稳脉冲。
硬件再次触发,OUT 端可再次输出一个同样的单稳脉冲。
单稳脉冲的宽度由装入计数器的计数初值决定。
在WR 信号的上升沿(CPU写控制字之后),输出端OUT保持高电平(若OUT原为低电平则变为高电平)。
CPU写入计数值后,计数器并不马上开始计数,而要等到门控信号GATE启动之后的下一个CLK的下降沿才开始。
在整个计数过程中,输出端OUT保持低电平,直至计数值至0,OUT变为高电平为止。
方式2:速率发生器,其功能如同一个N分频计数器。
其输出是将输入时钟按照N计数值分频后得到的一个连续脉冲。
在该方式下,当计数器装入初始值开始工作后,输出端OUT将不断地输出负脉冲,其宽度为一个时钟周期的时间,而两个负脉冲间的时间脉冲个数等于计数器装入的计数初值。
若计数初值为N,则每N个输入脉冲输出一个脉冲。
当CPU写完控制字后,输出端OUT转变成高电平,计数器将立即自动开始对输入CLK时钟计数。
在计数过程中,OUT端始终保持高电平,直至计数器的计数值减到1时,OUT 端才变为低电平,其保持的宽度为一个输入CLK时钟周期的时间,然后输出端OUT恢复高电平,计数器重新开始计数。
8253控制字格式为:其中:SC1 SC0为计数器选择位;RL1 RL0为计数器读写操作选择位,以确定计数器进行装入或读出是单字节还是双字节;M2 M1 M0为计数器工作方式选择位;BCD表示计数器计数方式选择位。
计数器和定时器电路(8253a)
– 系统时钟 – DRAM刷新定时 – 定时采样 – 实时控制 – 脉冲的计数 – 。。。
➢软件方法:用一段程序实现延时
• 利用程序循环延迟指定的时间 • 缺点:CPU占用率?延时精度?兼容?
➢硬件方法:定时/计数器电路
• 利用脉冲计数在设定的时间输出定时信号
;令 PB0=PB1=1 ;打开与门,使能 8253 计数器 2 ;延时程序段。控制发声时间长度
;关闭与门,切断脉冲信号源停止发声
➢一、计算机钢琴程序
1、设计要求:
利用8253定时器的作用,通过控制计算机内部的 扬声器,当键盘输入为数字键1~8的时候,依次发 出1~8八个音调。当键盘输入为CTRL+C时推出“钢 琴”状态
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
1 BCD码计数
计数器选择:
读写操作
方式选择
0 2进制计数
00 计数器0
01 计数器1 10 计数器2 1 1 无效 00 计数器锁存,供CPU读
000 方式 0 001 方式 1 10 方式 2 11 方式 3
01只读/写计数器低字节
100 方式 4
SING:MOV AH,01H
INT 21H
;接收键入字符
CMP AL,03H
;是CTRL+C键?
JZ DONE
;是则结束
SUB AL,31H
SHL AL,01
;转化为查表偏移量(每一表项占两字节)
MOV BL,AL
MOV AX,0000H
MOV DX,12H
MOV BH,00
DIV WORD PTR [TABLE+BX] ;相除求得频率值
第八章-计数器定时器8253
1、硬件串联
CLK0 GATE0 OUT0
+5V CLK1
GATE1 OUT1
2、软件计数,开辟内存单元
例4 利用8253提供可编程的采样信号 (P322) C/T0,时钟频率F, 初值L,模式2 C/T1,时钟频率? ,初值M,模式1 C/T2,时钟频率F ,初值N,模式3
第8章:8.2 8253在IBM PC系列机上的应用 8253
§8.2 可编程计数器/定时器8253
§8.2 可编程计数器/定时器8253 一、8253的结构和工作原理
8254是8253的改进型
§8.2 可编程计数器/定时器8253
D7~D0
数据总线 缓冲器
内
RD
部
WR
读写控制
A0
逻辑
数
A1
据
CS
总
控制字
寄存器
线
计数器0 计数器1 计数器2
CLK 0 GATE 0 OUT 0
01 计数器101 只读写低字节001 方式1
10 11
计数器2 10 非法 11
只读写高字节010 先后读读写写低高字字节节011100101
方式2 方式3 方式4 方式5
0 二进制 1 十进制
控制字写入控制字I/O地址(A1A0=11)
示例
第8章:2. 写入计数值
选择二进制时
计数值范围:0000H~FFFFH 0000H是最大值,代表65536
器(方式3),要求输出为10个时钟周期的方 波,写出所需的命令字。
设8253的地址:0060H~0066H
MOV AL, 01010111B OUT 66H, AL MOV AL, 10H OUT 62H, AL
8253的内部结构与工作方式
8253的内部结构与工作方式8253是一种通用计数器/定时器芯片,由Intel公司于1975年研发。
它在计算机系统中主要用于计时、定时和频率发生的应用。
8253的内部结构和工作方式如下:1.内部结构:8253由一个16位计数器和三个16位计数器/分频器组成。
其中,计数器0和计数器2可以用作定时器,计数器1可以用作计数器或分频器。
-计数器0(工作于16位模式):它可以生成一个周期性的方波信号。
它的输入时钟源可以是外部引脚CLK0或者是计数器2的输出CLK2、计数器0还可以分为两个8位计数器,其下方8位由计数器1的输出加法器控制。
-计数器1(工作于16位模式):它可以将计数器0的输出值与一个可编程的初始计数值进行相加或相减。
它的输出可以用作计数器或分频器。
-计数器2(工作于8位模式):它通常用于分频器功能。
它可以接收来自外部引脚CLK2的时钟输入,并将其分频为不同的输出频率。
2.工作方式:- 定时器模式:8253可以工作在三种不同的定时器模式:比率发生器模式(Mode 0)、硬件单触发模式(Mode 1)和软件可编程单脉冲模式(Mode 2)。
在这些模式下,计数器的工作频率和输出信号的脉冲宽度都可以通过编程来设定。
-计数器模式:计数器1可以通过读取或写入操作来读取或设置计数器的值。
当计数器溢出时,可以触发中断。
-分频器模式:计数器2可以工作为一个分频器,将输入时钟分频为指定的输出频率。
在应用方面,8253的工作方式与内部结构密切相关。
通过编程设置不同的计数器模式和计数器值,可以实现各种计时和频率发生的功能。
例如,可以使用8253来测量时间间隔、生成周期性信号、控制器件的定时操作等。
总结起来,8253的内部结构由三个计数器模块组成,分别用于不同的定时和计数功能。
通过设置不同的模式和计数值,可以实现各种计时和频率发生的应用。
可编程定时器、计数器8253
通道 (计数器)
工作方式
方式选择控制字
计数初值
0
0(计数结束 中断方式)
ModCr0= 00 01, 000 0B
(=10H)
n0=100
1
3(方波发生 器)
ModCr1= 001 11, 011 0B
(=76H)
n1 =
TOUT1 TCLK1
=
fCLK1 fOUT1
=
2.5 *106 1000
= 2500
4、8253的工作方式
8253提供6种工作方式,遵循以下基本原则: (1)控制字写入计数器8253的控制字寄存器,所有的
控制逻辑电路复位,输出端进入初始状态; (2)初始计数值写入后,经过一个CLK脉冲后,才在
输入脉冲的CLK的下降沿,计数器作减1计数。
定时与计数 本质上是一回事:
不管是定时,还是计数,计数器都是对C3——方波发生器
例: 设8253的端口地址是80H~83H。欲使计数器1输出频率为1KHz 的方波, 从CLK1端输入2.5MHz的时钟脉冲. 试编写初始化程序.
8253使用前,需初始化: 先写入工作方式控制字,再写入计数初值: 方式控制字规定某个通道的工作方式。将控制字写入控制寄存器端口.
2
0(计数结束 中断方式)
ModCr2= 010 11, 000 1B
(=B1H)
n2
=
TOUT2 TCLK 2
=
1 TCLK 2
= fCLK2
= 1000
由图9-23(a), n1 * TCLK1 = TOUT1
其它内容自学
附图:8253的工作方式控制字
控制字——规定某个计数器/通道的工作方式。
