8253工作方式以及应用举例

合集下载

微机第9章8253

微机第9章8253

0 0----选计数器0
0 1----选计数器1 1 0----选计数器2 1 1----无意义
写入控制口,地址A1A0=11
2、计数初值的写入
若规定只写低8位,则写入的为计数值的低8位, 高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位, 低8位自动置0; 若是16位计数值,则分两次写入,先写低8位, 再写入高8位。
计数值写入计数器各自的 计数通道(端口地址)
注: ① 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个 正脉冲后才能被真正装入指定通道(若在此CLK下降 沿之前读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次 在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计 数。
④ 当GATE变为低电平时计数 停止,再变为高电平时计数继 续进行。 ⑤若计数过程中重新送入初值, 则按新值重新计数。
(2)方式1——可重复触发单稳触发器
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 方式1时序图 CW N=3
③计数过程中,再次给通道写入时间 ①写入CW后OUT变为高电平, GATE 常数,不影响现行操作过程,GATE再 上升沿触发后,OUT变为低并开始计数, 次触发后才按新的时间常数操作。 归零时OUT变为高电平。 ④计数过程中,GATE触发沿提前到来, ②GATE再来一次上升沿使OUT为低, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先 计数器以初值重新计数。 设定的计数值加宽。 可重复触发——当计数归零后,不用再次送计数值,只要给它触发脉冲,即 可产生一个同样宽度的单稳脉冲输出。

微机原理 可编程计数器定时器8253及应用

微机原理  可编程计数器定时器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

MOV AL,0B5H; OUT 07H,AL; MOV AL,00H; OUT 06H,AL; MOV AL,05H; OUT 06H,AL;
精品资料
方式(fāngshì) 3 —— 方波发生器
• 方式3与方式2的工作类似,输出(shūchū)固定频率的 脉冲。 • 计数器具有“初值自动重装”的功能。 • 工作特点如下: • 当计数值为 偶数 时,则输出(shūchū)对称方波。 • 前 N/2 计数期间 输出(shūchū)高电平,即 OUT = 1; • 后 N / 2 计数期间输出(shūchū)低电平,即OUT = 0; • 当计数值为 奇数 时,前 (N+1) / 2 计数期间, • 输出(shūchū)高电平,即 OUT = 1, • 后(N-1) / 2 计数期间输出(shūchū)低电平,即 OUT = 0 。
精品资料
方式0 —— 工作(gōngzuò)方式的特点
1、写入控制字后,OUT= 0 为低电平,只有当 GATE = 1 时, CLK 端来一个计数脉冲,计数器才进行减一计数。 当计数值减为 0 时,计数全过程结束,计数器停止计数, OUT =1为高电平。
2、如果使计数器重新开始计数,需再次写入计数字值,当新计数值 写入后, OUT 端电平才能由高变低。

OUT =1 不变。

当计数值减为1 时,OUT = 0 ,经过一个 CLK时钟

周期后, 计数器自动启动,继续重复计数过程。
• OUT =0 的时间是一个 CLK 周期。
精品资料
方式(fāngshì)2 ——频率发生器
2、在计数过程中,可以改变计数值。如果在计数过程中, 重新写入某一计数值,在写入新计数值后,不影响正在 进行的计数过程,待计数过程完成后,在下一个计数过 程开始时,按新的计数值,重新开始作减一计数。

8253及其应用

8253及其应用
可编程定时/计数器8253 第八章 可编程定时/计数器8253
实现定时或延时控制有三种方法: 实现定时或延时控制有三种方法: 软件定时:即让CPU执行一段不完成任何其他功能的程序段, 软件定时:即让CPU执行一段不完成任何其他功能的程序段, CPU执行一段不完成任何其他功能的程序段 由于执行每条指令都需要时间, 由于执行每条指令都需要时间,则执行一个程序段就需要一定 的时间, 的时间,通过改变指令执行的循环次数来控制定时时间 不可编程硬件定时器:采用中小规模器件,外接定时元件 不可编程硬件定时器:采用中小规模器件,外接定时元件— —电阻和电容构成。 电阻和电容构成。 电阻和电容构成 可编程硬件定时器:就是其工作方式、 可编程硬件定时器:就是其工作方式、定时值和定时范围可 以很容易由软件来确定和改变。计数器一旦开始工作后, 以很容易由软件来确定和改变。计数器一旦开始工作后,CPU 就可以去做别的工作了,等计数器计到预定时间, 就可以去做别的工作了,等计数器计到预定时间,便自动形成 一个输出信号,用来向CPU提出中断请求。 CPU提出中断请求 一个输出信号,用来向CPU提出中断请求。这种方法不但显著 提高了CPU的利用率,而且定时时间由软件设置, CPU的利用率 提高了CPU的利用率,而且定时时间由软件设置,使用十分灵 加上定时时间精确,使用十分广泛。 活,加上定时时间精确,使用十分广泛。
可编程定时器/计数器8253
8253可编程定时器 计数器的主要性能: 可编程定时器/计数器的主要性能 可编程定时器 计数器的主要性能: 个独立的16位计数器 有3个独立的 位计数器 个独立的 工作方式可编程控制 计数脉冲频率0~2MHz 计数脉冲频率 可以按二进制或BCD码计数 可以按二进制或BCD码计数 使用单一+5V电源 电源 使用单一

8253、8255应用举例

8253、8255应用举例

8255应用举例
8255A在IBM PC/XT上的应用
1.打印机接口的信号与时序 主机把数据送给引脚DATA0~DATA7 同时送出数据选通信号STROBE* 打印机在BUSY信号线上发出忙信号 打印机处理好输入的数据时 撤消忙信号 同时又送出一个响应信号ACK*
2.用8255A方式0与打印机接口
;从PC7送出控制低脉冲 ;置STROBE*=0 ;产生一定宽度的低电平 ;置=1 ;最终,STROBE*产生低脉 冲信号
;打印子程序:返回 pop dx pop ax ret printc endp
3.用8255A方式1与打印机接口
8255A方式1与打印机接口时序配合
8255A的初始化 mov dx,0f003h mov al,0a0h out dx,al mov al,0ch out dx,al …… mov cx,counter mov bx,offset buffer call prints ;打印子程序:输出 prints proc push ax push dx print1: mov al,[bx] mov dx,0f000h out dx,al
;检测(PC7)为1否? ;为0,说明打印机没有响应,继续检测 ;为1,说明打印机已接受数据 ;准备取下一个数据输出 ;打印结束,恢复寄存器 ;返回
;使INTEA(PC6)为0,禁止中断
;打印字节数送CX ;取字符串首地址 ;调用打印子程序
;保护寄存器ov dx,0f002h print2: in al,dx test al,80h jz print2 ;打印子程序:返回 inc bx loop print1 pop dx pop ax ret prints endp
扬声器开 speakon

8253定时功能的应用例子

8253定时功能的应用例子
8253最大初值65536clk2mhz可实现最大时间间隔6553621032769ms所以需要两个计数器串联一个计数器的输出作为另一个计数器的输入五8253的应用以2mhz输入8253实现每5秒定时中断设8253端口地址40h43h分析
8.2.1 8253定时功能的应用例子 1、用8253产生各种定时波形 在某个以8086为CPU的系统中使用了一块8253芯片,通道
的基地址为310H,所用的时钟脉冲频率为1MHZ,要求三个计
数通道分别完成: (1)通道0工作于方式3,输出频率为2KHZ的方波; (2) 通道1产生宽度为480µ s的单脉冲; (3)通道2用硬件方式触发,输出单脉冲,时间常数为26。
图8.11 8253定时波形产生电路
各通道时间常数确定 通道0:=1MHZ/2KHZ=500 通道1:=480US/1US=480 通道2:=26
五、8253的应用
3. 以2MHz输入8253,实现每5秒定时中断(设8253端口地址 40H~43H) 分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔
65536/(2106)=32.769ms
所以需要两个计数器串联,一个计数器的输出作为另一个计数 器的输入
五、8253的应用
AL, 04H
;写低8位
0F2H, AL
;写高8位
8253应用讲解
五、8253的应用
3. 以2MHz输入8253,实现每5秒定时中断(设8253端口地址 40H~43H) 分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔
65536/(2106)=32.769ms
所以需要两个计数器串联,一个计数器的输出作为另一个计数 器的输入
MOV AL,80H OUT 83H,AL

微机原理课_8253

微机原理课_8253
第八章 可编程定时/计数器8253 本章学习的知识点: 1)掌握8253的基本功能 2)掌握8253的6种工作方式的特点和用法 3)掌握8253的硬软件设计方法 本章学习的难点: 1)掌握8253的6种工作方式的特点和用法 2)掌握8253的硬软件设计方法
8.1 概述
1、应用场合
在微机系统中,要求对外部信号进行计数 或要求对时间进行精确定时----计数/定时器. 计数由外部脉冲信号提供,当达到设定的计数 值时,输出一个电平信号,告知外部设备已经计 满。定时时间基准由8086内部时钟源提供,经 定时钟分频后得到所需的时间信号,当定时时 间到后也输出一个电平信号,告知外部设备定 时时间到。
8253初始化编程要求
1、8253三个端口有各自独立的地址,控制字分别对
各端口的工作方式进行设置。 2、对某一个端口设置初值时,先设置控制字 3、设置初值时,要符合D5、D4的规定,分别输入计 数值。(16位计数值要用两条指令写入计数值) 4、锁存(D5D4=00)的目的是:在CPU读取计数值前 先用锁存命令锁存减1计数器的当前值,否则得不到 正确的结果,CPU取走数据后,锁存功能自动失锁 5、编程顺序:先写入控制字到控制寄存器,然后写 入计数初值到所确定的计数器端口!!!
2、定时与计数的三种方式
1) 软件定时: 利用 CPU 每执行一条指令都需要几个固定的 指令周期的原理,因此执行一个程序段就需要一 定的时间,运用软件编程的方式,通过改变指令 执行的循环次数就可以控制定时时间,由于它占 用了CPU,因而降低了CPU的利用率。 例: MOV CX,1000H DEALY: MOV BX,1000H LOOP DEALY
15 14 13
CLK1 GATE 1 OUT1
计数器

8253应用(音乐程序)

8253应用(音乐程序)

8253应用(键盘演奏音乐程序)PC 机中,8253 定时器2,工作于方式3(输出方波),输入频率fin 、输出频率fout 及计数初值之间的关系: f o u tf i n 初值 (fin=1193200 =1234F0H ),(也可用533H*896H=123280H ) 例如:给定fout 在DI 寄存器中,DX 和AX 存放1.1932MHz 的十六进制值1234F0H ,则产生 fout 输出的计数初值的程序段:(初值存于AX 中)MOV DX, 12HMOV AX, 34F0H ; DX 和AX 存放 finDIV DI ;DI 存放fout 结果在AX 中10ms 秒软件延时程序: MOV CX , 2801DELAY : LOOP DELAY要得到10ms 秒的整数倍时间,可在BX 寄存器中放入倍数控制外循环次数,如产生1秒的程序: MOV BX, 100W AIT : MOV CX , 2801DELAY : LOOP DELAYDEC BXJNZ WAITdata segmentfreq dw 262,294,330,349,392l,440,494data endscode segmentassume ds:data, cs:codemain proc farstart : push dsmov ax,0push axmov ax,datamov ds,axmov al,10110111h ;8253定时器2初始化out 43h, alin al,61h ;读pb 口or al,03hout 61h,al ;pb0, pb1=’1’, 打开声音again : mov ah, 1 ;dos 功能调用,键盘输入并回显int 21h ;按键(键入的ascii 码值在al 中) cmp al,1bh ; ‘Esc ’退出jz exitlea si, freqand ax,0fh ;ax 中得到按键值1~7。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第27课 8253工作方式以及应用举例
8253的六种工作方式,8253的实际应用举例。

本课主题:
教学目的:掌握8253六种工作方式的特点以及使用方法,通过实际应用举例强化8253的使用方法。

教学重点:8253的硬件连接和软件初始化方法。

教学难点:8253的在系统中的应用。

授课内容:
8253的每个通道都有6种不同的工作方式,下面分别进行介绍。

1.方式0--计数结束中断方式(Interrupt on Terminal Count)
2.方式1--可编程单稳态输出方式(Programmable One-short)
3.方式2--比率发生器(Rate Generator)
4.方式3--方波发生器(Square Wave Generator)
5.方式4--软件触发选通(Software Triggered Strobe)
6.方式5--硬件触发选通(Hardware Triggered Strobe)
由上面的讨论可知,6种工作方式各有特点,因而适用的场合也不一样。

现将各种方式的主要特点概括如下:
对于方式0,在写入控制字后,输出端即变低,计数结束后,输出端由低变高,常用该输出信号作为中断源。

其余5种方式写入控制字后,输出均变高。

方式0可用来实现定时或对外部事件进行计数。

方式1用来产生单脉冲。

方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲的周期相同。

方式3用于产生连续的方波。

方式2和方式3都实现对时钟脉冲进行n分频。

方式4和方式5的波形相同,都在计数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。

但方式4由软件(设置计数值)触发计数,而方式5由硬件(门控信号GATE)触发计数。

这6种工作方式中,方式0、1和4,计数初值装进计数器后,仅一次有效。

如果要通道再次按此方式工作,必须重新装入计数值。

对于方式2、3和5,在减1计数到0值后,8253会自动将计数值重装进计数器。

8.2 8253的应用举例
一、8253定时功能的应用例子
1(用8253产生各种定时波形
在某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。

要求3个计数通道分别完成以下功能:
(1)通道0工作于方式3,输出频率为2kHz的方波;
(2)通道l产生宽度为480us的单脉冲;
(3)通道2用硬件方式触发,输出单脉冲,时间常数为26。

2.控制LED的点亮或熄灭
用8253来控制一个LED发光二极管的点亮和熄灭的例子,要求点亮10秒钟后再让它熄灭10秒钟,并重复上述过程。

假设这是一个8086系统,8253的各端口地址为81H、83H、85H和87H。

二、8253计数功能的应用例子
1.硬件电路设计
2.初始化编程
MOV AL, 01110001B ;控制字
OUT 0F6H, AL
MOV AL, 99H
OUT 0F2H, AL ;计数值低字节送计数器1 MOV AL, 04H
OUT 0F2H, AL ;计数值高字节送计数器1 3.计数值的读取
在读计数器现行值时,计数过程仍在进行,而且不受CPU的控制。

因此,在CPU读取计数器的输出值时,可能计数器的输出正在发生改变,即数值不稳定,可能导致错误的读数。

为了防止这种情况发生,必须在读数前设法终止计数或将计数器输出端的现行值锁存。

这可以采用下面两种方法:
一种方法是在读数前用外部硬件切断计数脉冲信号,或者使门控信号变为低电平,迫使8253停止计数。

这种方法的缺点是需要硬件电路配合。

此外,由于外部事件源被切断或正常的计数过程被禁止,干扰了实际的计数过程。

因此,这不是一种好的方法,在我们这个例子里,就不宜采用这种读数方法。

另一种方法是先用计数器锁存命令锁存现行计数值,然后将它读出。

上例中,在要读取箱子中的现行工件数时,可执行下面的程序段:
MOV AL, 01000000B ;锁存计数器1命令
MOV DX, 0F6H ;控制口
OUT DX, AL ;发锁存命令
MOV DX, 0F2H ;计数器1
1N AL, DX ;读取计数器1的低8位数
MOV AH, AL ;保存低8位数
IN AL, DX ;读取计数器1的高8位数
XCHG AH, AL ;将计数值置于AX中
在计数器的锁存命令发出后,锁存的计数值将保持不变,直至被读出为止。

计数值从锁存器读出后,数值锁存状态即被自动解除,输出锁存器的值又将随计数器的值而变化。

4.8254的读回功能
当利用8254的读回(Read Back)命令功能,向8254的控制字寄存器写入一个读回命令字时,每次可锁存1,3个通道的计数值。

此外,利用8254的读回功能,还可锁存1,3个计数通道的状态字,供CPU读取。

8254的读回命令的格式如图所示:
用户通过读取状态信息,可核查所选中通道的计数值、工作方式、输出引脚OUT的现行状态及计数器是否已写入计数通道等信息。

状态字的格式如图所示:。

相关文档
最新文档