8253定时/计数器应用实验
一.实验目的
1.熟悉8253在系统中的典型接法.
2.掌握8253的工作方式及应用编程.
二. 实验设备
TDN86/51教学实验系统一台
三. 实验内容及实验设备
8253的初始化编程如下图:
中断矢量地址与中断号之间关系如下表:
|
(二)8253计数器应用实验.
1.设定8253的2#通道工作方式为方式0,用于事件计数,当计数值为5时,发出中断请求信号,显示'M'实验线路
如图
CODE SEGMENT
ASSUME CS:CODE
START: IN AL,21H
AND AL,7fH
OUT 21H,AL ;写入操作命令字OCW1,设置中断屏蔽寄存器IMR,开7号中断,屏蔽其余中断
MOV AL,90H
OUT 43H,AL ;送控制字到8253的控制寄存器
A1: MOV al,05h
OUT 42h,al ;送时间常数到2号通道
HLT
STI
JMP A1
A2 PROC
MOV AX,014dh;
INT 10H ;显示字符M
MOV AX,010DH;
INT 10H;光标换行
MOV AL,20H
OUT 20h,AL;定义OCW2,普通EOI结束方式
IRET
A2 ENDP
CODE ENDS
END START
实验步骤:
(1)按图接线
(2)汇编,连接后装入系统
(3)在0000:003CH单元填入IRQ7中断矢量,0000:003C 12 20 00 00;送入中断服务程序A2的偏移地址
方法:E 0000:003c(参考实验设备运行汇编程序步骤之调试命令)
然后逐单元填入,每填入一字节以SPACE键继续,填完后以ENTER结束
(4)运行程序,按动kk键6次,屏幕上显示M字符
注:7号中断矢量地址为003C-003FH
代码段起始地址为0000:2000H
2.利用8253的0#通道来定时中断(IRQ0),循环显示0-9十个数,线路如图
CODE SEGMENT
ASSUME CS:CODE
START:
CLI ;关中断,以避免系统中断干扰8253,8259的初始化
PUSH DS
MOV AX,0
MOV DS,AX
MOV AX,OFFSET IRQ7 ;中断服务程序偏移地址置入中断矢量表
ADD AX,2000H
MOV SI,003CH
MOV [SI],AX
MOV AX,0
MOV SI,003EH
MOV [SI],AX
POP DS
MOV AL,7FH
OUT 21H,AL ;初始化8259
MOV AL,0B4H ;初始化8253
OUT 43H,AL
MOV AL,11H
OUT 42H,AL
OUT 42H,AL
A1: STI ;开中断,并等待中断
JMP A1
IRQ7 PROC
MOV DL,30H
MOV AH,01H
MOV AL,DL
MOV CX,10
A2:INT 10H
INC AL
LOOP A2
MOV AL,0DH
INT 10H
MOV AL,20H
OUT 20h,AL;定义OCW2,普通EOI结束方式
IRET
IRQ7 ENDP
CODE ENDS
END START
实验步骤:
(1)输入程序并检查无误,经汇编,连接后装入系统
(2)运行程序,显示屏上应连续逐行显示0-9十个数,直到用RESET复位开关来中断
3.电子发声实验
系统的OPCLK作为音乐节拍,由表格查出每个音符对应的时常送给计数器2(工作在方式3:方波发生器),以确定
音调,驱动扬声器产生音乐,实验线路如图:
实验程序(略)
(三)思考题
(1)实验一中为何要按动KK键六次才能在屏幕上显示字符'M'?
(2)实验二中8253采用方式2,实现自动循环显示(自动重装时常),那么若改用方式0,如何实现自动循环显示?
四 技术支持:
(一) 系统中的8253芯片8253是可编程序间隔定时器/计数器,8254是8253的改进型。主要特点是:1.有3个独立的16位计数器;每个计数器都可以按照二进制或者二-十进制计数;2.每个计数器输入频率最高可达2MHz;3.每个计数器都可以由程序确定按照6种不同的方式工作;4.所有的输入输出都与TTL兼容。
8253的工作方式:(1)方式0:计数结束中断
(2)方式1:可编程频率发生器
(3)方式2:频率发生器
(4)方式3:方波频率发生器
(5)方式4:软件触发的选通信号
(6)方式5:硬件触发的选通信号
8253的内部结构图
8253的引脚图