8254计数器 实验报告.docx
微机原理实验报告8254计数器应用学院名称:实验名称:班级:学生姓名:学号(班内序号):【实验名称】8254计数器应用【实验目的】(1)熟悉8254的工作方式及应用编程;(2)掌握8254的典型应用电路接法;(3)学习8254在PC系统中的典型应用方法。【实验内容】8254通过实验箱提供的单次脉冲单元,按动微动开关向计数器依次发出单脉 冲,观察每来一个脉冲时计数器当前计数值的变化情况。【实验原理】8254是Intel公司生产的可编程间隔定时器,是8253的改进型,比8253具有 更优良的性能。8254具有以下基本功能:(1)有三个独立的16位计数器;(2)每个计数器可按二进制或十进制(BCD)计数;(3)每个计数器可编程工作于6种不同工作方式;(4) 8254每个计数器允许的最高计数频率为10MHz (8253为2MHz);(5) 8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还 可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数器的初值公式为him其中Qju是输入时钟脉冲的频率,Ge是输 出波形的频率。8254的工作方式如下:方式0计数到0结束输出正跃变信号(可作为中断请求信号)方式1硬件可触发单稳方式(形成负脉冲,宽度=NXCLK脉冲周期) 方式2频率发生器方式(输出固定频率的脉冲) 方式3方波发生器方式4软件触发选通方式(输出负脉冲,宽度为一个CLK周期) 方式5硬件触发选通方式(输出负脉冲,宽度为一个CLK周期) 控制字有两个:一个是:用来设置计数器的工作方式,称为方式控制 字;另一个用来设置读回命令,称为读回控制字。两个控制字共用一个 地址,由标志位来区分。读回控制字的D4位为。时,由该读回控制字 D1D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。8254的方式控制字格式:D7D6D5D4D3D2D1DO计数器选择读/写格式选择000-方式0计数码制选择00-计数器001-计数器110-计数器211-输出控制字 标志00-锁存计数器 01-读/写低8位 10-读/写高8位11-先读/写低8位 再读/写低8位001-方式10-二进制1-十进制010-方式2011-方式3100-方式4101-方式58254读出控制字格式D7D6D5D4D3D2D1D0110-锁存计数 值0-锁存状态信 息计数器选择(同方法控 制字)0状态字格式D7D6D5D4D3D2D1D0OUT引脚现行 状态0-高电 平1-低电平计数初值是否 装入1-无效计 数0-计数有效计数器方式(同方式控制字)源程序:PC8254_C0UNT0 EQU1440HPC8254 COUNT1EQU1441HPC8254 C0UNT2EQU1442HPC8254_M0DEEQU 1443H;计数器0的I/O地址;计数器1的I/O地址;计数器2的I/O地址;计数器控制器的I/O地址DATA SEGMENTOBUF DB 8 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXCDB MACRO ;将二进制转换成十进制的宏LOCAL LOOP1MOV BX, OFFSET OBUF+7MOV BYTE PTRBX/$,DEC BXMOV BYTE PTRBX, 10DEC BXMOV BYTE PTRBX, 13MOV CX, 10L00P1: MOV DX, 0DIV CXADD DL, 30HDEC BXMOV BX, DLOR AX, AXJNZ L00P1MOV DX, BXMOV AH, 09HINT 21HENDMMOV DX, PC8254J1ODE ;向控制器写控制字,这里设的是计数器0、方式 o、先低后高两个字节读7写MOV AL,30HOUT DX, ALMOV AX, 03H;设置计数值MOV DX, PC8254_C0UNT0 ;向计数器。写计数值,先低后高两个字节写OUT DX, ALMOV AL, AHOUT DX, ALREADCO:;读计数器值,存于AX中MOV DX, PC8254JIODEMOV AL, 0OUT DX, ALMOV DX,PC8254_C0UNT0IN AL, DXMOV AH, ALIN AL, DXXCHG AL, AHCDB ;将计数值显示出来MOV CX, OFFFFH ;延迟L00P2: DEC CXCMP CX, 0JNE LOOP2MOV AH, 06H;是否有键盘输入,有则退出MOV DL, OFFHINT 21HJE READCOMOV AH, 4CHINT 21HCODE ENDSEND START【实验结果】初值为65535,按动单次脉冲单元,屏幕上显示计数器当前计数的值依次 递减,直到计数值为0。【实验分析与心得体会】通过此次实验,使我初步学会了实验电路箱的用法,更好的了解了 8254及 其实验箱电路连接方法,更好的把理论和实验相结合,认识到编程中还有很多不 足,在今后的学习中需要改进。