8254定时计数器
- 格式:doc
- 大小:46.00 KB
- 文档页数:5
8254 定时/ 计数器应用实验学院:计算机学院专业:网络工程年级:2012级班级:120615姓名:梁国栋学号:1206151091 实验目的1. 掌握8254 的工作方式及应用编程。
2. 掌握8254 典型应用电路的接法。
2 实验设备PC 机一台,TD-PITE 实验装臵一套。
3 实验内容1. 计数应用实验。
编写程序,应用8254 的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5 次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。
2. 定时应用实验。
编写程序,应用8254 的定时功能,产生一个1s 的方波。
4 实验原理8254 是Intel 公司生产的可编程间隔定时器。
是8253 的改进型,比8253 具有更优良的性能。
8254 具有以下基本功能:(1)有3 个独立的16 位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于 6 种不同工作方式。
(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。
(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=f CLKi ÷f OUTi、其中f CLKi 是输入时钟脉冲的频率,f OUTi 是输出波形的频率。
图 4.27 是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。
8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
8254 的控制字有两个:一个用来设臵计数器的工作方式,称为方式控制字;另一个用来设臵读回命令,称为读回控制字。
XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下2个子实验:(1)计数应用实验:编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’;(2)定时应用实验:编写程序,应用8254的定时功能,产生一个1s的方波,并用本装置的示波器功能来观察。
1.2 实验要求本次实验中2个子实验的实验要求如下:(1)计数应用实验:将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”;(2)定时应用实验:将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。
二、实验原理与硬件连线2.1 实验原理8254是Intel公司生产的可编程间隔定时器。
是8253的改进型,比8253具有更优良的性能。
8254具有以下基本功能:(1)有三个地理的16位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于6种不同的工作方式。
(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。
(5)8254有读回命令(8253,没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=f CLKi÷f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。
图2-1是8254的内部结构框图和引脚图,它是由与CPU的接口,内部控制电路和三个计数器组成。
8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
计算机硬件技术基础8254定时器/计数器设计实验—电子发声设计航空航天 083614 孙诚骁 083605 李嘉骞一、实验目的学习用8254定时/计数器是扬声器发声的编程方法。
二、实验设备PC 微机一台、TD-PIT 实验系统一套。
三、实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
接线方法如下:四、实验所用芯片8254是Intel 公司生产的可编程间隔定时器。
它具有以下基本功能:(1)有3个独立的16位计数器;(2)每个计数器可接二进制或十进制(BCD )计数;(3)每个计数器可编程工作于6种不同工作方式;(4)8254每个计数器允许的最高频率为10MHZ ;(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为n=f(clki)/f(outi),其中f(clki)是输入时钟脉冲的频率,f(outi)是输出波形的频率。
8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
CLK0 CLK0五、实验说明及步骤一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。
音符与频率对照关系见下表所示。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以发出这段乐曲的声音。
音符与频率对照表(单位:HZ)利用8254的方式三—“方波发生器”,将相应一种频率的计数初值写入计数器,就可以产生对应频率的方波。
计数初值的计算如下:计数初值=输入时钟÷输出频率例如输入时钟采用系统总线上CLK(1.04166MHZ),要得到800HZ的频率,计数初值即为104166/800.对于每一个音符的演奏时间,可以通过软件延时来处理。
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=f CLKi/f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。
图4.27是8254的内部结构框图和引脚图,它是由于CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
GATE0 A0OUT2图4.27 8254的内部接口和引脚8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制器。
这两个控制字共用一个地址,由标志位来区分。
控制字格式如表4.3-4.5所示。
8254定时/计数器应用实验1、实验目的a)掌握8254的工作方式及应用编程;b)掌握8254的典型应用电路接法;c)学习8254在PC系统中的典型应用方法。
2、实验设备PC机一台,TD-PIT/TD-PIT-B实验装置一套。
3、关于8254定时应用程序的说明a)在PC/XT机中8254端口的偏移地址为40H~43H。
由于8254是减法计数,因此计数的最大初始值为0,而不是FFFFH或9999;b)编程包括两部分:写计数器的控制字和设置计数初值;初始化步骤:写入方式控制字-写入计数值低8位-写入计数值高8位。
c)计数脉冲可以是有规律的,也可以是随机信号。
计数初值公式为:n=fCLKi/fOUTi。
fCLKi是输入时钟脉冲的频率,fOUTi是输出波型的频率。
d)本实验使用的是PCI板卡申请的第三个I/O空间BASE2,和前面的偏移地址相加即可。
e)运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序。
f)使用Compile菜单中的bulidall完成汇编和链接。
g)使用Rmrun菜单中的Run运行程序,观察运行结果,或使用Rmrun菜单中的Debug调试程序,观察调试过程中指令执行后各寄存器及数据区的内容。
4、实验内容a)电子发声实验。
编写程序让PC机和实验装置上的扬声器唱歌。
PC机中8254的时钟信号为1.19318MHz,采用计数器2的方式3,实验装置采用信号源1MHZ作为扬声器发声基准时钟,计数器0工作方式设置为3。
程序:assume cs:code,ds:data,ss:stack stack segmentdw 512 dup (0)stack endsdata segmentdw256,288,320,341,384,426,480,512,0 data endscode segmentstart:next1: mov cx,08hmov ax,datamov ds,axmov si,0next:call soundadd si,2mov ax,[si]loop nextjmp next1in al,61hand al,0fchout 61h,alsound:push cx push sipush axmov al,10110110b out 43h,almov dx,000fh mov ax,4240h mov di,[si] div diout 42h,al mov al,ahout 42h,alin al,61hor al,03hout 61h,alcall delay call breakpop axpop sipop cxretdelay:push ax push cxmov cx,05fffhd1:mov ax,0ffffhd2:dec axjnz d2loop d1pop cxpop axretexit:mov ax,4c00hint 21hbreak proc nearmov ah,06hmov dl,0ffhint 21hje returnmov ax,4c00hint 21hreturn:retbreak endpcode endsend startb)时钟显示实验。
简述8254的一种读出方式8254的一种读出方式:计数器模式一、引言8254是一种常见的计时器/计数器芯片,广泛应用于计算机硬件系统中。
它具有多种工作模式,其中一种常见的方式是计数器模式。
本文将详细介绍8254计数器模式的读出方式及其原理。
二、8254计数器模式的概述计数器模式是8254芯片的一种工作模式,它可以实现计数功能。
8254芯片内部有三个独立的计数器,分别称为计数器0、计数器1和计数器2。
每个计数器都可以工作在不同的模式下,计数范围从0到65535。
三、计数器模式的读出方式在计数器模式下,8254芯片可以实现不同的计数功能。
其中,一种常见的读出方式是周期性地读取计数器的值。
1. 设置8254芯片的工作模式在进行读出操作之前,需要首先设置8254芯片的工作模式。
通过向8254芯片的控制寄存器写入相应的值,可以选择计数器模式、计数方向、计数源等。
2. 读取计数器的值在设置好工作模式后,可以通过读取相应的计数器寄存器来获取计数器的值。
每个计数器都有一个16位的计数器寄存器,用于存储当前的计数值。
通过读取计数器寄存器,可以获取计数器的当前值。
3. 处理溢出情况由于计数器的范围是有限的,当计数器的值达到最大值时(65535),会发生溢出。
为了处理溢出情况,可以使用8254芯片的中断功能。
当计数器的值溢出时,会触发中断信号,可以通过相应的中断处理程序来处理溢出情况。
四、计数器模式的应用计数器模式广泛应用于计算机硬件系统中的定时、计数、测速等功能。
比如,在操作系统中,可以使用计数器模式来实现时钟中断,从而实现时间片轮转调度算法;在实时控制系统中,可以使用计数器模式来实现定时触发任务等。
五、结论8254芯片的计数器模式是一种常见的读出方式,通过设置工作模式、读取计数器的值和处理溢出情况,可以实现对计数器的读出操作。
计数器模式在计算机硬件系统中具有广泛的应用,为实现各种计数、定时、测速等功能提供了便利。
8254定时/计数器实验学生:孔令宇班级:计科10级1006班任课教师:吴为民一、实验目的熟悉8254在系统中的电路接法,掌握8254的工作方式及应用编程。
二、实验内容使用8254定时/计数器的两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各0.5秒。
三、实验原理图四、实验流程五、实验代码.Model small.386data segment ;定于数据段,计数器0和计数器1 i8254_0 EQU 200Hi8254_1 EQU 201Hdata endscode segment ;代码段assume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,203Hmov al,36h ;计数器0方式3,以BCD码计数out dx,almov ax,1000 ;写入循环初值1000mov dx,i8254_0 ;计数器0初始化out dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov dx,203Hmov al,76h ;计数器1方式3,以BCD码计数out dx,almov ax,1000 ;写入循环初值1000mov dx,i8254_1 ;计数器1初始化ddd: out dx,al ;循环体:先写低字节mov al,ahout dx,al ;后写高字节nopjmp dddmov ah,4chint 21hcode endsend start六、实验数据七、实验现象将实验前编写好的1.asm文件在“386EX微机实验集成开发环境中”编译生成1.exe后,在“386EX微机实验集成开发环境中”全速运行程序后,看到实验箱上L6周期性的点亮和熄灭,间隔为1S。
八、实验体会通过本次实验,我对8254定时/计数器的功能和初始化有了更进一步的认识。
本次实验要求使用计数器0的3方式,先写低字节,再写高字节进行工作,采用BCD计数码制,所以我把初始化命令设置为00110110B,转为十六进制为36h。
深 圳 大 学 实 验 报 告
课程名称: 微机原理
实验项目名称: 8254定时计数器实验
学院: 信息工程学院
专业: 电子
指导教师: 张力
报告人:林泽杭 学号:2009130340班级: 电子4
实验时间: 2011.5.30
实验报告提交时间: 2011.6.15
教务处制
一·实验目的与要求
:
1. 掌握8254的工作方式及应用编程。
2. 掌握8254典型应用电路的接法。
二·方法、步骤:
1. 计数应用实验
编写程序,将8254的计数器0设置为方式0,计数值为十进制数4,用单次
脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,
在屏幕上显示字符“M”。
(1)实验接线如图1所示。
(2)编写实验程序,经编译、链接无误后装入系统。
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。
(4)改变计数值,验证8254的计数功能。
D0D7...WRRDCSXD0
XD7
.
.
.
IOW#
IOR#
IOY3
系
统
总
线
8254单元
A0A1XA1
XA2
单次脉冲单元
MIR7
GATE0
CLK0OUT0VCCKK1+
4.7K
图1 8254计数应用实验接线图
2. 定时应用实验
编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,
OUT0为波形输出1ms方波。
(1)接线图如图2所示。
(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统。
(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。
D0D7...WRRDCSXD0
XD7
.
.
.
IOW#
IOR#
IOY3
系
统
总
线
8254单元
A0A1XA1
XA2
系统总线
GATE0
CLK0OUT0VCCCLK
波形输出
示波器测量
4.7K
图2 8254定时应用实验接线图
实验过程和内容:
1. 计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,
使每当按动„KK1+‟5次后,产生一次计数中断,并在屏幕上显示一个字符„M‟。
2. 定时应用实验。编写程序,应用8254的定时功能,产生一个1ms的方波。
数据处理分析:
一、计数应用实验的流程图
主程序 子程序
中断子程序有
关量的初始化
设置计数器、方式
和计初值数
STI开中断
主程序其它工作处理
(AA1的循环 延时)
恢复原中断向量
发中断结束命令EOI
恢复现场
IRET中断返回
设置新的中断向
开始
保存原中断向量
CLI关中断
返回DOS
结束
开始
保护现场
显示字符M
二、计算定时应用实验中8254计数器0的计数初值,要求写出公式和计算结
果。
答:
定时常数=要求定时的时间/时钟脉冲的周期
N=1ms/(1/1MHz)=1000
三、 给定时应用实验程序加上注释。
实验程序清单(A82542.ASM)
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
START: MOV DX, CON8254 ;8254
MOV AL, 36H ;计数器0,先低后高读写,方式3,
BCD
OUT DX, AL ;写计数器0的控制字
MOV DX, A8254
MOV AL, 0E8H ;写计数器0的低8位初值
OUT DX, AL
MOV AL, 03H ;写计数器0的高8位初值
OUT DX, AL
AA1: JMP AA1 ; 延时
CODE ENDS
END START
指导教师批阅意见:
成绩评定:
指导教师签字:
年 月 日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。