8253定时和计数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8253
定时计数器
例2:若用8253计数器1,工作在方式1,按二-十进制计数,计数 初值为2010H,口地址口地址为40H- 43H ,试编写初始化程序。 解:计数器控制字为01110011=73H 计数初值高8位为20H, 低8位为10H MOV AL, 33H OUT 4BH, AL MOV AL, 10H OUT 49H, AL MOV AL, 20H OUT 49H, AL ;写计数器1控制字 ;写计数器1计数初值低8位 ;写计数器1计数初值高8位
在IBM-PC/AT以上的机器中用2片8259A级联管理 15级外中断,主片8259A中的IRQ2联到从片8259A, 从片8259A的中断请求为IRQ8~IRQ15,端口地址为 A0H、A1H,中断类型码为70H~77H
例:设计一个中断处理程序。要求:中断请求信 号以跳变方式由IR2引入(可为任一定时脉冲 信号),当CPU相应IR2请求时,输出显示字 符串:“8259A INTERRUPT!”,中断10次程序 退出(设8259A的端口地址为20H和21H,中 断类型号为40H)。
INT-P
PROC ; 中断服务程序 PUSH DS ;保护现场 PUSH AX PUSH DX STI ;开中断 MOV AX, DATA ;中断处理,输 出给定字符串
MOV DS, AX MOV DX ,OFFSET MESS MOV AH,09H INT 21H DEC COUNT ;控制10次循环 JNZ NEXT IN AL, 21H OR AL, 04H OUT 21H, AL ;读IMR ;屏蔽IR2请求
MAIN: MOV AL,13H ; 8259A 初始化 OUT 20H,AL ; 单片,边沿触发 MOV AL,40H ;中断类型号40H OUT 21H,AL ; MOV AL, 01H; 非自动结束 OUT 21H,AL MOV AX,SEG INT-P ;设置中断向量 MOV DS, AX ; 中断服务程序入口段基址送DS MOV DX,OFFSET INT-P;中断服务程序入口偏送DS MOV AL,42H ;IR2的中断类型号42H送AL
8253
定时计数器
3、初始化编程顺序 对于每个计数器进行初始化时,必须先写入控制字,然后写入计 数初值。这是因为计数初值的写入格式是由控制字的D5和D4两位 编码决定的。写入计数初值时,必须按控制字规定的格式写入。 例1:若用8253的计数器1,工作在方式0,按8位二进制计数, 初值为128,试编写初始化程序,设口地址为40H- 43H。 解:控制字为01010000=50H, 8位计数初值为80H mov al, 50H ;设置计数器1控制字 out 43H, al mov al, 80H ;写计数器1计数初值,只写低 out 41H, al ;8位
8259举例
8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用在 什么场合? 答:1.全嵌套工作方式,只有更高级的中断请求来到时,才会 进行嵌套。而特殊全嵌套方式则能被同级和高级的中断请求所 嵌套。 2.全嵌套方式用于单片8259A的场合。特殊全嵌套方式用于多 片8259A系统。
8259举例
NEXT : CLI ;关中断 MOV AL,20H ;写OCW2,送中断结束命令EOI OUT 20H,AL CODE ENDS POP DX ;恢复现场 END MAIN POT AX POP DS
IRET ;中断返回
可编程计数器/定时器8253
定时与计数
控制系统与计算机中,常常需要有定时信号,以实现定时 或延时控制。如定时中断,动态存储器的定时刷新等。此外, 还需要有计数功能,以实现对外部事件的计数,当外部事件 发生的次数达到规定值后,向计算机发出中断请求,进而实 现相应的控制或处理。 定时的本质就是计数,当计数信号是周期信号时,计数就 可以用于定时。例如以秒为单位计数,则计数60次就是1分, 计满60分就是1小时,计满24小时就是1天。
答:在优先级特殊循环方式中,一开始的最低优先级是由编程 确定的,从而最高优先级也由此而定。而优先级自动循环方式 初始优先级队列为IR0~IR7。
8259举例
8259A的中断屏蔽寄存器IMR和8086/8088CPU的中断允许标志 IF有什么差别?在中断响应过程中,它们怎样配合起来工作?
答:1.若IMR的某位为0则该位对应的引腿上的中断请求未加屏 蔽,让它通过而进入中断优先级裁决器作裁决。若IMR的某位 为1则屏蔽该位对应的引腿上的中断请求,不让它进入中断优 先级裁决器。而8086/8088CPU的中断允许标志IF为1则允许 INTR引腿进入的中断,IF为0则屏蔽INTR引腿进入的中断。与 8259A的IMR位为0为1正好相反。 2.在中断响应过程中,IMR用于对外设向8259A发中断申请的 允许/屏蔽,而CPU的IF用于对8259A由INT向CPU的INTR引腿 发中断申请的允许/屏蔽。
程序段: PUSH DS;保护数据段
MOV AX,0;
MOV
MOV
DS,AX;中断向量从00000H开始
AX,SEG INT-PRN;取段地址
MOV
MOV
[002AH],AX;置入段地址
AX,OFFSET INT-PRN;取偏移地址
MOV
POPHale Waihona Puke Baidu
[0028H],AX;置入偏移地址
DS;恢复DS
8259A在80286以上机中的使用
8259举例
4,中断向量表的设置方法
(1)用DOS功能调用INT 21H指令置入法
格式:MOV AH,25H;
INT 21H; 说明:25H为DOS调用的功能号; 入口参数:AL←中断类型码;
DS:DX←中断向量;
例如:将类型码为0AH,名为INT-PRN的中断
服务程序的中断向量置入中断向量表中。
(3)在CLK的上升沿时,计数器对门控信号GATE进 行采样,来决定工作状态(计数、触发、停止、重新 置初值);
(4)在CLK的下降沿时,计数器执行部件从初值开始 作减1计数;其中0是最大初值,1是最小初值; 若以二进制数制计数,则0相当于216=65536 若以BCD(十进制)数制计数,则0相当于104=10000
数制选择 0:二进制 1:十进制 工作方式选择 000:方式 0 001:方式 1 ×10:方式 2 ×11:方式 3 100:方式 4 101:方式 5
2,8253初始化规则 (1)对计数器设置初值前必须先写入控制字,此 时, 全部控制逻辑电路复位,输出OUT为初始状态(高电 平或低电平); (2)初值写入后,要经过1个时钟CLK的上升沿和1 个下降沿后,计数执行部件才开始计数;
8253的内部结构
数据总线 D7~D0 RD 地址线 译 码 器 CS 减 1 计数器 (CE) 高8 A1 A0 低8 输出锁存器 CLK 1 GATE1 OUT1 CLK 2 GATE2 OUT2 (OL) 计数器 1 计数器 2 WR 控制寄存器 计数器 0 高8 低8 计数初值寄存器 (CR) 高8 低8 CLK 0 GATE0 OUT0 VCC Gnd +5V
8253的编程——向8253写入控制字 1,控制字格式:
A1 A0 1 1 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD (地址 43H)
计数器选择 00:计数器 0 01:计数器 1 10:计数器 2 11:非法 读/写指示位 00:计数器锁存 01:只读/写低字节 10;只读/写高字节 11:先读/写低字节 后读/写高字节
程序段:
PUSH MOV MOV DS; AX,SEG INT-PRN; DS,AX; 保护数据段 取段地址
MOV DX,OFFSET INT-PRN;取偏移地址
MOV AX,250AH; 取类型码和功能号
INT
POP
21H;
DS;
DOS功能调用
恢复DS
(2),直接置入法
0AH类型中断的向量地址为0AH×4=0028H~002BH
MOV AH,25H ; 25H功能调用 INT 21H
IN AL, 21H ;读IMR AND AL, 0FBH ;允许IR2请求中断 OUT 21H,AL ;写中断屏蔽字OCW1 WAIT: STI ;开中断 CMP COUNT ,0 ;判断10次中断是否结束 JNZ WAIT ;未结束,等待 MOV AX,4C00H ;结束,返回DOS INT 21H
实现定时和计数的三种方法 软件方法:采用软件定时,让计算机执行一个专门 的指令序列,由执行指令序列中各条指令所花费的 时间构成一个固定的时间间隔,从而达到定时或延 时的目的。 不可编程的硬件定时:采用电子器件构成定时或延 时电路,通过调整电路中定时元件的数值,可实现 调整定时或延时的数值和范围。 可编程的硬件定时:在微机系统中采用软硬件结合 的方法,即采用可编程定时的电路器件实现定时。 如:Intel 8253/8254,Zilog CTC,MC6840等。 8253-5(5MHz)和8254-2(10MHz)的引脚和 功能都是兼容的。
8259举例
8259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之处? 特殊屏蔽方式一般用在什么场合?
答:1.在特殊屏蔽方式中用OCW1对屏蔽寄存器中某一位进行置 位时,就会同时使ISR中的对应位自动清0。而普通屏蔽方式对 OCW1的操作不影响ISR中各位的状态。 2.特殊屏蔽方式用于中断处理程序中,以开放比本身的优先级较 低的中断请求。
怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?又怎样撤销这 一禁止命令?设8259A的端口地址为90H、92H。
答:1.
2.
CLI IN AL,92H ;(AL)←(IMR) OR AL,28H ;禁止IR3和IR5引腿上的中断请求 OUT 92H,AL ;OCW1送奇地址端口 STI CLI IN AL,92H ;(AL)←(IMR) AND AL,0D7H ;允许IR3和IR5引腿上的中断请求 OUT 92H,AL ; OCW1送奇地址端口 STI
8253
定时计数器
1,有三个独立的计数/定时通道——计数器0,计数 器1,计数器2。每个计数器的结构为: (1)16位计数初值寄存器(CR)——存放计数的初 值(预置); (2)16位的计数执行部件(CE)——16位减1计数 器; (3)16位输出锁存器(OL)——跟随CE变化,但 可以锁存,便于CPU读取。
8259举例
8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用 在什么场合?
答:1.全嵌套工作方式,只有更高级的中断请求来到时,才会 进行嵌套。而特殊全嵌套方式则能被同级和高级的中断请求所 嵌套。 2.全嵌套方式用于单片8259A的场合。特殊全嵌套方式用于多 片8259A系统。
8259A的优先级循环方式和优先级特殊循环方式有什么差别?
8253
定时计数器
4,计数器时钟输入CLK0~CLK2——计数/定时的 基值信号 8253:0~2MHz 8254-2:0~10MHz 5,计数器门控输入信号GATE0~GATE2——启动或 控制计数/定时信号; 6,计数器输出信号OUT0~OUT2——计数结束、定 时到输出信号或分频输出信号。
2,控制寄存器——存放CPU送来的控制字,控制 8253的工作方式。
8253 定时计数器 二,8253的引脚功能 1,数据线D7~D0——8位,双向、三态,用于8253与 CPU之间的数据传送。包括:向8253写控制字,送计 数初值及读计数器的现行值。 2,读写控制信号RD,WR 3,片选及地址线CS,A1,A0——用于芯片及内部寄 存器、计数器的寻址。 在IBM-PC机中,A9A8A7A6A5=00010选中 (CS=0),A4A3A2未用,A1A0接8253的A1A0。
中断处理程序如下:
DATA SEGMENT MESS DB ‘8259A INTERRUPT!’,0AH,0DH,’$‘ COUNT DB 10 DATA ENDS STACK SEGMENT STACK DB 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA, SS:STACK