第七章 8253应用举例_2012
8253工作方式以及应用举例

第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。
8253应用举例

Y2#
A8 A9 A6 A074源自S138 G1 G2A# G2B#
3)
3
MOV AL,00110111B;T/C0 , ; OUT 96H,AL 96H, MOV AX, 8000H OUT 90H,AL 90H, MOV AL, AH OUT 90H,AL 90H, MOV AL,01110111B;T/C1 , ; MOV AX, 9H OUT 92H,AL 92H, MOV AL, AH OUT 92H,AL 92H,
7
六、 8253应用举例 应用举例
例1:现有一个高精密晶体振荡电路,输 现有一个高精密晶体振荡电路, 出信号是脉冲波,频率为1MHz 1MHz。 出信号是脉冲波,频率为1MHz。要求利用 8253做一个秒信号发生器 做一个秒信号发生器, 8253做一个秒信号发生器,其输出接一发 光二极管, 0.5秒点亮 0.5秒熄灭的方 秒点亮, 光二极管,以0.5秒点亮,0.5秒熄灭的方 式闪烁指示。 8253的通道地址为80H~ 的通道地址为80H 式闪烁指示。设8253的通道地址为80H~ 86H(偶地址) 86H(偶地址)
1.分频器设计 1.分频器设计
8253应用举例 8253应用举例
地址40H~43H)将5MHz的脉冲变为 的脉冲变为1Hz的脉冲。 的脉冲。 用8253(地址 地址 将 的脉冲变为 的脉冲 初值=f 初值 CLK/fOUT=5×106>65536,怎么办? × ,怎么办? 需要2个 级联, 采用方式3产生连续分频方波 产生连续分频方波, 需要 个T/C级联,T/C0采用方式 产生连续分频方波, 级联 采用方式2产生 产生1Hz脉冲。两个 脉冲。 做T/C1的CLK,T/C1 采用方式 产生 , 脉冲 , ; T/C的GATE统一控制。 MOV AL,00110111B;T/C0 统一控制。 的 统一控制
第七章定时_计数器8253

4
3
2
1
3
2
1
GATE=1 4 0 3 2
本章首页
7.2 定时/计数器8253-5/8254-2(续) 定时/计数器8253-5/82544)3方式——周期性方波输出 方式——周期性方波输出 ——
与方式2一样具有自动重新装载计 自动重新装载计 数初值的功能,与方式2的区别仅 数初值 触发方式: 触发 触发方式:写入初值后,WR= 在于输出波形不同 输出波形: 输出波形:输出占空比为1:1或近似1:1的方波。初值为偶数时,前半周为高电 平,后半周为低电平;初值为奇数时,前一半加1的计数过程中为高电平 GATE作用 作用: ,停止,= ,重新开始 GATE作用:=1,允许;=0,禁止;= 计数过程中写入新初值: 计数过程中写入新初值:计数器回零,输出完整的方波后,再开始新过程
A1A0 选中通道 0 0 0 1 1 0 1 1 T0 T1 T2 T3
A0~A1:端口选择线,接收CPU的低位地址,用于8253被选中时,选择内部端口 GATE0~GATE2:T0~T2的门控信号,对计数过程进行控制,具体作用视方式而定 CLK0~CLK2:T0~T2的脉冲输入,允许计数时,8253的Ti对CLKi输入的脉冲进行减 1计数 OUT0~OUT2:T0~T2的输出信号,Ti减为0,OUTi输出有效,输出波形视方式而定
16位计数初值寄存器 装入/读出初值 LSB MSB 通道的内部结构
本章首页
7.2 定时/计数器8253-5/8254-2(续) 定时/计数器8253-5/8254读写控制逻辑: 读写控制逻辑:接收CPU的地址、读/写信号,选中一个端口并确定传送方向
2. 计数初值 操作 WR RD A1 A0 PC机 实验台 逆 减 0 1 0 0 加载T0(向T0写入初值) 40H 304H 8253/8254是逆计数器(减1 0 1 0 1 加载T1(向T1写入初值) 41H 305H 计数器),减1计数器减为0 时输出有效 0 1 1 0 加载T2(向T2写入初值) 42H 306H
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定时功能的应用例子

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应用课程名称微机原理及应用||专业班级:自动化1202 学生姓名:屈言雪学号: 201202020222 成绩:指导教师:程海燕实验日期: 2014/12/16一、实验目的及要求:实验目的:(1) 学习可编程定时/计数器8253的工作原理及工作方式;(2)掌握使用8253的应用编程方法,并设计出相应电路在实验箱上正确连接;(3)熟练掌握WAVE6000实验系统的使用实验要求:1、基本要求:利用8253输出周期为1秒的方波。
2、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。
每来一个上升沿,申请中断一次,CPU响应后通过输出接口74LS273使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,…… 第8次中断,LED7亮,中断8次后结束。
二、实验设备1.计算机b6000微机实验箱3.导线若干三、实验内容1、基本要求:利用8253输出周期为1秒的方波。
2、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。
每来一个上升沿,申请中断一次,CPU响应后通过输出接口74LS273使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,…… 第8次中断,LED7亮,中断8次后结束。
四、实验步骤1、Proteus中的设计:(1)连接好8086与74LS373,如图:(2)设置38译码器译码:根据74LS273地址为8000H,知A15-A0只有A15为1、其余全为0时,即Y0有效时选中273;8259的地址为9000H,Y1有效时选中8259;8253的地址为A000H,Y2有效时选中8253;将38译码器的A、B、C端口分别接地址A12、A13、A14,使能端E1接A15,E2、E3都接地,如图:(3)连线8259,注意8259的A0要连接8086的A1,因为8259的数据端连接8084的低八位数据线,即偶存储体,因此8086的A0一直为0,若用8259的A0连8086的A0,则不能选中8259的奇地址端口;但在实验室中,由于使用的是只有8位的8088,用8088的A0连接8259的A0即可;使能端连接Y1,8259的地址为9000H,即A15-A12分别为1001,38译码器Y1有效选中8259;8259IR2端接8253的OUT1,表示将方波信号送入IR2申请中断,相当于开关的作用;如图:273,MR接电源的原因:MR只有接电源时,273才具有锁存功能。
微机原理与接口技术_第7章8253

§7-1 8253的工作原理 ——8253的内部结构和引脚信号
然后,开始递减计数。即每输入一个时钟脉冲,计数
器的值减1,当计数器的值减为0时,便从OUT引脚输出 一个信号。输出信号的波形主要由工作方式决定,同 时还受到从外部加到GATE引脚上的门控信号控制,它 决定是否允许计数。 当用8253作外部事件计数器时,在CLK脚上所加的计 数脉冲是由外部事件产生的,这些脉冲的间隔可以是 不相等的。 如果要用它作定时器,则CLK引脚上应输入精确的时 钟脉冲。这时,8253所能实现的定时时间,决定于计 数脉冲的频率和计数器的初值,即 定时时间=时钟脉冲周期tc×预臵的计数初值n
16
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 ③引脚 8253的3个计数器都各有3个引脚,它们是:
CLK0~CLK2:计数器0~2的输入时钟脉冲从这里输
入。频率不能大于2MHz。
OUT0~OUT2:计数器0~2的输出端。
GATE0~GATE2:计数器0~2的门控脉冲输入端。
4
第七章 可编程计数器/定时器8253及其应用 ——概述 2. 不可编程的硬件定时 555芯片是一种常用的不可编程器件,加上外接电阻和电 容就能构成定时电路。这种定时电路结构简单,价格 便宜,通过改变电阻或电容值,可以在一定的定时范 围内改变定时时间。但这种电路在硬件已连接好的情 况下,定时时间和范围就不能由程序来控制和改变, 而且定时精度也不高。 3. 可编程的硬件定时 ①可编程定时器/计数器电路利用硬件电路和中断 方法控制定时,定时时间和范围完全由软件来确 定和改变,并由微处理器的时钟信号提供时间基 准,这种时钟信号由晶体振荡器产生,故计时精
12
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 8253输入信号组合的功能表
8253与8255的应用举例

;发长音 LOP: MOV BL,LONG1 CALL SSP
;查ESC键,停止发声 程序3/4 MOV AH,0BH INT 21H CMP AL,00H JE CONTINUE1;无键按下,发短音 MOV AH,08H;等待从键盘输入一个字符 INT 21H CMP AL,1BH;是ESC,停止发声 JE QUIT ;发短音 CONTINUE1:MOV BL,SHORT1 CALL SSP JMP LOP ;关闭扬声器,并退出 QUIT:IN AL,61H AND AL,0FCH OUT 61H,AL MOV AL,AH OUT 61H,AL
程序2/4
;关闭扬声器 IN AL,61H;读入8255 PB口原输出值 AND AL,0FCH;置PB0和PB1为0,关闭GATE2和与门 OUT 61H,AL
;查任意键,启动发声器 WAIT1:MOV AH,0BH;判断是否有任意键按下? INT 21H CMP AL,00H JE WAIT1;无键,则等待;否则发长音。
结果利用发光二极管显示,与 82538253 片选信号从译码器 的CLK2已接好 Y1 1.19MHZ 引入, 8253的 304 out 信号 ~ 信号连接 307H
工作方式? 用到几个通道?初始值? 硬件连线? 编程?
8253与8255的应用举例
1.要求 利用定时/计数器8253发600Hz的长/短音。按任意键,开启 发声;按ESC键,停止发声。8253的输入时钟CLK的频率为 1.9318MHz. 2. 分析 根据题意,有两个工作要做,一是声音的频率应满足 600Hz,二是发声持续的长短的控制。 (1)计数初值的确定: C=1.19318X106Hz/600= 1983 (2)长/短音的控制:设置延时常数寄存器BL,改变它,可以改 变延时时间; (3)扬声器的开/关控制:设置一个与门,利用8255A PB0,PB1引脚分别控制8253-GATE和与门的开关。 3.设计 (1)硬件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV AL, 01000000B
OUT 43H, AL ; 发锁存读的命令
IN
AL, 41H ;先读低8位
MOV AH, AL
IN
AL, 41H ;后读高8位
XCHG AH, AL
8253应用举例
1、硬件电路设计
➢ 地址译码电路设计 例1
➢ 地址译码电路设计 例2
2、“定时波形产生电路” 设计举例(做补充作 业)
➢ 硬件电路(1ms定时中断) 注:图中地址译码电路设计有误,重新修改。
➢ 编程: (1)8253初始化(1ms定时中断) :
通道1:方式3 (或方式2 ),2进制计数 输入时钟1.193MHz,输出方波1kHz 计数初值:1.193MHz / 1kHz = 1193
初始化程序:
MOV OUT MOV OUT MOV OUT
键按下时,发声;键松开时,停止发声。 用BIOS中断:INT 16H AH=0
判得到的AH(键盘扫描码)的b7位
AL, 01110110B 43H, AL AX, 1193 41H, AL AL, AH 41H, AL
(2)设置中断向量:
CLI
MOV
AX, SEG IR2_SUB
MOV
DS, AX
MOV
DX, OFFSET IR2_SUB
MOV
AL, 72H
MOV
AH, 25H
INT
21H
STI
(3)设置中断屏蔽字:
某8086系统中,8253的口地址为40h~43h,8259的 口地址为20h~21h,中断类型码为70h~77h。8253计数 器1的输入时钟为1.193MHz,定时输出中断请求信号至 8259的IR2。在中断服务程序中对中断次数计数,存在 IR2_COUNT单元中。要求: 1)设计硬件电路 (分1ms和1s定时中断两种情况); 2)编写8253初始化程序(分1ms和1s定时中断两种情况); 3)编程设置中断向量,设置中断屏蔽字; 4)编写中断服务程序。
➢ 硬件电路图
➢ 地址译码电路
➢ 8253通道0初始化程序 通道0:方式3,2进制计数 输入时钟2MHz,输出方波2KHz
计数初值:2MHz / 2KHz = 1000
初始化程序:
MOV OUT MOV OUT MOV OUT
AL, 00110110B 43H, AL AX, 1000 40H, AL AL, AH 40H, AL
1个计数器不够计数,怎么办?
→ 2个计数器级联 补充作业:做“1s定时中断”的情况
4、8253在PC机中的应用
PB1PB0=11时,计数器2输出的方波信 号才能送到扬声器,扬声器才能发声。
➢ 编程举例——产生频率为f的通用发声程序
思考:
用键盘模拟“电子琴” 1)将电子琴发声的各频率对应的计数值做成表 2)根据键盘输入的数字查表得到计数值 3)设置8253计数器2的计数初值 4)设置8255的PB0PB1,控制扬声器发声
8253编程方法
➢ 8253初始化程序 通道1:方式3,BCD码计数 计数初值:1250
初始化程序:
MOV
AL, 01110111B
OUT
43H, AL
MOV
AX, 1250H
OUT
41H, AL
MOV
AL, AH
OUT
41H, AL
如果是二进制计数,计数初值如何设置?
➢ 读取计数值程序 要先锁存,才能读到稳定的计数值。
➢ 8253通道1初始化程序
通道1:方式2,2进制计数 输入时钟2MHz,输出负脉冲40KHz
计数初值:2MHz / 40KHz = 50
初始化程序:
MOV OUT MOV OUT
AL, 01010100B 43H, AL AL, 50 41H, AL
➢ 8253通道2初始化程序 通道2:方式1,BCD码计数
IN
AL, 21H
AND
AL, 11111011B
OUT
21H, AL
(4)中断服H
INC
MOV
OUT
POP
IRET
AX IR2_COUNT AL, 20H 20H,AL AX
思考:
定时1s中断,计数值= 1.193MHz / 1Hz = 1193000>65536
输入时钟2MHz (0.5us), 输出500us宽度的单脉冲。
计数初值:500us / 0.5us = 1000
初始化程序:
MOV OUT MOV OUT MOV OUT
AL, 10110011B 43H, AL AX, 1000H 42H, AL AL, AH 42H, AL
3、“计数电路” 设计举例(做补充作业 )