8254计数器实验报告.docx

上传人:b****5 文档编号:4821029 上传时间:2022-12-09 格式:DOCX 页数:6 大小:19.95KB
下载 相关 举报
8254计数器实验报告.docx_第1页
第1页 / 共6页
8254计数器实验报告.docx_第2页
第2页 / 共6页
8254计数器实验报告.docx_第3页
第3页 / 共6页
8254计数器实验报告.docx_第4页
第4页 / 共6页
8254计数器实验报告.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

8254计数器实验报告.docx

《8254计数器实验报告.docx》由会员分享,可在线阅读,更多相关《8254计数器实验报告.docx(6页珍藏版)》请在冰豆网上搜索。

8254计数器实验报告.docx

8254计数器实验报告

 

微机原理实验报告

 

学院名称

实验名称

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)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数器的初值公式为n=

其中

是输入时钟脉冲的频率,

是输出波形的频率。

8254的工作方式如下:

方式0——计数到0结束输出正跃变信号(可作为中断请求信号)

方式1——硬件可触发单稳方式(形成负脉冲,宽度=N×CLK脉冲周期)

方式2——频率发生器方式(输出固定频率的脉冲)

方式3——方波发生器

方式4——软件触发选通方式(输出负脉冲,宽度为一个CLK周期)

方式5——硬件触发选通方式(输出负脉冲,宽度为一个CLK周期)

控制字有两个:

一个是:

用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。

两个控制字共用一个地址,由标志位来区分。

读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。

8254的方式控制字格式:

D7

D6

D5

D4

D3

D2

D1

D0

计数器选择

读/写格式选择

000-方式0

计数码制选择

00-计数器0

01-计数器1

10-计数器2

11-输出控制字标志

00-锁存计数器

01-读/写低8位

10-读/写高8位

11-先读/写低8位再读/写低8位

001-方式1

0-二进制

1-十进制

010-方式2

011-方式3

100-方式4

101-方式5

8254读出控制字格式

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0-锁存计数值

0-锁存状态信息

计数器选择(同方法控制字)

0

状态字格式

D7

D6

D5

D4

D3

D2

D1

D0

OUT引脚现行状态0-高电平1-低电平

计数初值是否装入1-无效计数0-计数有效

计数器方式(同方式控制字)

源程序:

PC8254_COUNT0EQU1440H;计数器0的I/O地址

PC8254_COUNT1EQU1441H;计数器1的I/O地址

PC8254_COUNT2EQU1442H;计数器2的I/O地址

PC8254_MODEEQU1443H;计数器控制器的I/O地址

DATASEGMENT

OBUFDB8DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

CDBMACRO;将二进制转换成十进制的宏

LOCALLOOP1

MOVBX,OFFSETOBUF+7

MOVBYTEPTR[BX],'$'

DECBX

MOVBYTEPTR[BX],10

DECBX

MOVBYTEPTR[BX],13

MOVCX,10

LOOP1:

MOVDX,0

DIVCX

ADDDL,30H

DECBX

MOV[BX],DL

ORAX,AX

JNZLOOP1

MOVDX,BX

MOVAH,09H

INT21H

ENDM

MOVDX,PC8254_MODE;向控制器写控制字,这里设的是计数器0、方式0、先低后高两个字节读/写

MOVAL,30H

OUTDX,AL

MOVAX,03H;设置计数值

MOVDX,PC8254_COUNT0;向计数器0写计数值,先低后高两个字节写

OUTDX,AL

MOVAL,AH

OUTDX,AL

READC0:

;读计数器值,存于AX中

MOVDX,PC8254_MODE

MOVAL,0

OUTDX,AL

MOVDX,PC8254_COUNT0

INAL,DX

MOVAH,AL

INAL,DX

XCHGAL,AH

CDB;将计数值显示出来

MOVCX,0FFFFH;延迟

LOOP2:

DECCX

CMPCX,0

JNELOOP2

MOVAH,06H;是否有键盘输入,有则退出

MOVDL,0FFH

INT21H

JEREADC0

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

【实验结果】

初值为65535,按动单次脉冲单元,屏幕上显示计数器当前计数的值依次递减,直到计数值为0。

【实验分析与心得体会】

通过此次实验,使我初步学会了实验电路箱的用法,更好的了解了8254及其实验箱电路连接方法,更好的把理论和实验相结合,认识到编程中还有很多不足,在今后的学习中需要改进。

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1