8254定时/计数器应用实验
一、实验目的
1.掌握 8254 的工作方式及其应用编程。 2.掌握 8254 典型应用电路的接法。
二、实验设备
PC机一台,TD—PITE实验装置或TD-PITC实验装置一套,示波器一台。
三、实验内容
1.计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。
2.定时应用实验。编写程序,应用8254的定时功能,产生一个1ms的方波。
四、实验原理
8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:
(1)有3个独立的16位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于6种不同工作方式。
(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 (5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还
可以读出状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式
为:n=fCLKi/fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
图4.27是8254的内部结构框图和引脚图,它是由于CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:
(1)方式0:计数到0结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。
(5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。
数据总线缓冲器内部总线CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2
D[7:0]RDWRA0A1CS计数器0R/W逻辑电路控制寄存器计数器1计数器2图4.27 8254的内部接口和引脚
8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制器。这两个控制字共用一个地址,由标志位来区分。控制字格式如表4.3-4.5所示。
1
表4.3 8254的方式控制字格式D7 D6 D5 D4 D3 D2 D1 D0计数器选择读写格式选择 00 -计数器001 -计数器110 -计数器211 -读出控制字标志00锁存计数值01读/写低8位10读/写高8位11先读/写低8位,再读写高8位计数码制选择工作方式选择000 方式0001 方式1010 方式2011 方式3100 方式4101 方式50-二进制数1-十进制数表4.4 8254读出控制字格式D7 D6 D5 D4 D3 D2 D1 D01 1 0-锁存计数值 0-锁存状态信息 计数器选择 0表4.5 8254状态字格式D7 D6 D5 D4 D3 D2 D1 D0OUT引脚现行状态计数初值是否装入1高电平 0低电平1无效计数 0计数有效8254实验单元电路图如下所示:
D0D1D2D3D4D5D6D7CSRDWRA0A1D0 OUT0D1 GATE0D2 CLK0D3D4D5D6 OUT1D7 GATE1CLK1CSRDWROUT2A0 GATE2A1 8254 CLK2OUT0VCCCLK0 计数器方式(同方式控制字)
OUT1GATE1CLK1OUT2GATE2CLK2
五、实验步骤 1.计数器应用实验
2
编写程序,将8254的计数器0设置为方式0,计数值为十进制数4,单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”。
实验步骤:
(1)实验连接如图4.29所示。
(2)编写实验程序,经编译、链接无误后装入系统。
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。 (4)改变计数值,验证8254的计数功能。
XD0...XD7D0.. GATE0.D7 CLK0A0A1 OUT0WRRDCS 8254单元VCCCLK系统总线波形输出示波器测量系统总线XA1XA2IOW#IOR#IOY3图4.29 8254计数应用实验接线图
实验程序清单(A82541.ASM)
;========================================================= ; 文件名: A82541.ASM
; 功能描述: 通过对计数器0进行计数,计数初值为4, ; 当计数满后,产生正跳变触发中断,中断 ; 程序显示M(每按5次输出一个M)
;=========================================================
A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H
SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK START: PUSH DS
MOV AX, 0000H
3
MOV DS, AX
MOV AX, OFFSET IRQ7 ;取中断入口地址 MOV SI, 003CH MOV [SI], AX MOV AX, CS MOV SI, 003EH
MOV [SI], AX CLI POP DS
;初始化主片8259 MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 01H OUT 21H, AL
MOV AL, 6FH OUT 21H, AL
;8254
MOV DX, CON8254 MOV AL, 10H OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL STI AA1: NOP JMP AA1
IRQ7: MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 014DH
INT 10H MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL IRET
;中断矢量地址
;填IRQ7的偏移矢量 ;段地址 ;填IRQ7的段地址矢量 ;ICW1 ;ICW2 ;ICW3 ;ICW4 ;OCW1 ;计数器0,方式0 ;显示字符M ;中断结束命令 4
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库8254定时计数器实验报告在线全文阅读。
相关推荐: