基本接口技术实验—8254定时计数器应用实验

合集下载

8254定时计数器应用实验报告

8254定时计数器应用实验报告

XX 大学实验报告课程名称:实验项目名称:8254定时/计数器应用实验学院:信息工程学院专业:通信工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。

图(1)是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。

8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。

(2)方式1:硬件可重触发单稳方式。

(3)方式2:频率发生器方式。

(4)方式3:方波发生器。

(5)方式4:软件触发选通方式。

(6)方式5:硬件触发选通方式。

图(1)8254的内部借口和引脚8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。

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

控制字格式如表1所示。

表1 8254的方式控制字表2 8254 读出控制字格式表3 8254 状态字格式8254 实验单元电路图如下图所示:五、实验步骤及相应操作结果1. 计数应用实验编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。

实验步骤:(1)实验接线如图2所示。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。

(4)改变计数值,验证8254 的计数功能。

图2 8254 计数应用实验接线图实验程序清单A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART: PUSH DS运行结果如下:改变计数值MOV DX,CON8254MOV AL,10HOUT DX,AL六、实验结论:。

实验七 8254计数实验

实验七 8254计数实验

实验七8254定时/计数器应用实验一、实验目的(1) 掌握8254的工作方式及应用编程。

(2) 掌握8254的典型应用电路接法。

二、实验内容计数应用实验。

编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KK1+五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’。

三、实验原理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是输出波形的频率。

图1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。

8254的工作方式如下述:(1) 方式0:计数到0结束输出正跃变信号方式。

(2) 方式1:硬件可重触发单稳方式。

(3) 方式2:频率发生器方式。

(4) 方式3:方波发生器。

(5) 方式4:软件触发选通方式。

(6) 方式5:硬件触发选通方式。

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

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

控制字格式如表1所示。

读回控制字格式如表2所示。

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

状态字格式如表3所示。

四、计数应用实验说明及步骤编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1+作为CLK0时钟,OUT0连接INTR,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“5”。

8254定时计数器实验 实验报告

8254定时计数器实验 实验报告

8254定时计数器实验实验报告一、实验目的本次实验的主要目的是深入了解和掌握 8254 定时计数器的工作原理、编程方法以及在实际应用中的操作流程。

通过亲自动手实践,提高对计算机硬件接口技术的理解和应用能力。

二、实验设备1、计算机一台2、 8254 定时计数器实验箱三、实验原理8254 是一种可编程的定时/计数器芯片,它包含三个独立的 16 位计数器通道,分别称为计数器 0、计数器 1 和计数器 2。

每个计数器都可以工作在不同的模式下,如方式 0 计数结束中断、方式 1 可重触发单稳态、方式 2 频率发生器、方式 3 方波发生器、方式 4 软件触发选通、方式 5 硬件触发选通。

在本次实验中,我们主要利用 8254 的计数器 0 来产生一定频率的方波信号,并通过指示灯的闪烁来观察其效果。

四、实验步骤1、按照实验箱的说明书,将 8254 芯片正确地插入插槽中,并连接好相关的线路。

2、打开计算机,进入实验环境。

3、编写 8254 的初始化程序,设置计数器 0 的工作模式、计数初值等参数。

选择工作模式 3(方波发生器)。

设定计数初值,以控制方波的频率。

4、编译并运行程序,观察指示灯的闪烁情况。

五、实验代码以下是本次实验中使用的 8254 初始化程序代码(以汇编语言为例):```assemblyMOV DX, 043H ;控制字端口地址MOV AL, 00110110B ;控制字:选择计数器 0,先读/写低 8 位,再读/写高 8 位,工作方式 3,二进制计数OUT DX, ALMOV DX, 040H ;计数器 0 端口地址MOV AL, 00H ;先写低 8 位计数值OUT DX, ALMOV AL, 10H ;再写高 8 位计数值OUT DX, AL```六、实验结果及分析1、实验结果当程序运行后,观察到连接在计数器 0 输出端的指示灯按照设定的频率闪烁,表明 8254 定时计数器工作正常,成功产生了方波信号。

8254 定时

8254  定时

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 的控制字有两个:一个用来设臵计数器的工作方式,称为方式控制字;另一个用来设臵读回命令,称为读回控制字。

微机接口实验8254定时计数器实验

微机接口实验8254定时计数器实验

实验七8254定时/计数器实验1 实验目的(1) 掌握8254的典型应用电路接法。

(2) 掌握8254的工作方式及应用编程。

2 实验设备PC微机一台、TD-PIT+实验系统一套、示波器。

3 实验内容(1) 编程实现将8254定时/计数器1设计为产生频率为250HZ方波的方波发生器,定时/计数器2 设计为将定时/计数器1的输出进行4分频的速率波发生器。

系统提供的时钟CLK 频率为1MHz。

4 实验步骤1. 电路设计图7-1 8254实验1接线图(示波器探头小夹子接地)2. 编程提示(1) 8254控制字格式:计数器选择读/写格式选择工作方式选择计数码制选择00:计数器 0 00:当前计数值锁存 000:方式 0;100: 方式 4 0:计数值为二进制01:计数器 1 01:读/写低字节 001:方式 1;101: 方式 5 格式10:计数器 2 10:读/写高字节 X10:方式 2 1:计数值为BCD码11:读出控制字 11:先读/写低字节, X11:方式 3 格式标志后读/写高字节(2)计数初值N = f CLK/f OUT = T OUT/T CLK(3) 8254的初始化编程步骤①送控制字到控制端口;②送计数初值到计数器端口。

设置初始值时,应与控制字中的格式规定一致,当控制字中设置只读/写高字节或只读/写低字节时,初始值是1字节。

当控制字中设置先读/写低字节后读/写高字节时,初始值为2字节,分两次传送。

5 实验代码IOY0 EQU 0DC00HCOUNT0 EQU IOY0+0*4COUNT1 EQU IOY0+1*4COUNT2 EQU IOY0+2*4MODE EQU IOY0+3*4STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART:MOV DX,MODEMOV AL,01110110BOUT DX,ALMOV DX,COUNT1MOV AX,4000DOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,MODEMOV AL,10010110BOUT DX,ALMOV DX,COUNT2MOV AL,3HOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START。

【精品】实验五 8254计数定时器实验

【精品】实验五 8254计数定时器实验

【精品】实验五 8254计数定时器实验1、实验目的学习8254计数定时器的工作原理,掌握8254计数定时器的编程方法,加强对8254计数定时器的认识,并熟练掌握其应用。

2、实验器材计算机、标准信号发生器、万用表等。

3、实验原理8254计数定时器是一种可编程和可复用的计数/定时器,它可以工作在单独的计数、单独的定时、计数与定时相结合等多种工作模式下,既可以用于计数,也可以用于定时。

它有三个独立的可编程计数器(C0,C1,C2),每个计数器都有一个特殊的16位计数寄存器CR,一个读/写工作方式的计数器工作寄存器CR0,以及为不同的应用提供不同带有多种功能的计数/定时输出方式的通用输出寄存器(G0,G1,G2)。

8254计数定时器有4个I/O端口(0x40,0x41,0x42,0x43)与外部设备相连。

通过读/写这四个I/O端口中的寄存器,就可以操作8254计数定时器的寄存器和计数器寄存器。

计算机中将8254计数定时器的三个计数器均放在一块芯片中,称为计数定时器芯片。

掌握8254计数定时器的编程方法是我们进行下一步应用实验的基础。

(1)测量8254计数定时器的计数时间。

将8254计数定时器的输出端与示波器相连,设置8254的计数器工作模式,并制作相应的控制程序,运行程序,观察并测量8254计数定时器的计数时间。

5、实验步骤(1)测量8254计数定时器的计数时间。

1)将标准信号发生器输出的方波信号(频率为300Hz)经过电阻分压后,接到8254计数定时器的C0引脚上(可用排针连线连接),8254计数定时器的G0引脚再接到示波器的Y轴输入端,示波器的X轴调为10ms/格,Y轴调为1V/格。

2)编写控制程序,设置8254计数定时器的C0计数器工作模式(计数模式0),计数器初值为0,最后输出计数寄存器中的计数值,通过读取计数器寄存器和计数寄存器可以得到8254计数定时器的计数时间。

3)运行程序,并用示波器观察8254计数定时器的计数输出波形,测量并计算出计时的时间。

8254定时与计数器实验

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定时器计数器设计实验-电子发声设计

8254定时器计数器设计实验-电子发声设计

计算机硬件技术基础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.对于每一个音符的演奏时间,可以通过软件延时来处理。

微机原理实验 可编程定时器计数器82548253实验

微机原理实验 可编程定时器计数器82548253实验
具体连线如图2所示:
图2 8253/8254定时器/计数器实验连线图
六、实验源程序清单
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL, 00010110B;控制字00-计数器0,01-低8位,011-方式3,0-二进制
OUT 03H,AL;将控制字写入控制寄存器
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
图1可编程定时器/计数器8253/8254原理图
(2).计数器都有6种工作方式:
方式0—计数过程结束时中断;
方式1—可编程的单拍脉冲;
方式2—频率发生器;
方式3—方波发生器;
方式4—软件触发;
方式5—硬件触发。
(3)6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
九、实验总结
硬件实验相对来说趣味性大了很多,同时也使得程序没那么复杂不过存在的问题突出表现于受到硬件实验条件的制约,硬件上的小问题就有可能导致不能出显预想的结果这也就使得在硬件连接上要很小心。
十、思考题
1.若8254模块选通线CS连到MCU主模块的地址A12,则应如何修改程序?
答:改变了存储芯片的地址范围所以将程序对应的地址范围改过即可。接A12对应地址范围是6800~6FFFH;接A14对应地址范围是3800~3FFFH。

基本接口技术实验—8254定时计数器应用实验

基本接口技术实验—8254定时计数器应用实验

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定时计数器实验实验报告实验目的:1. 理解8254定时计数器的工作原理及其在微机系统中的作用。

2. 掌握8254定时计数器的编程方法,包括计数、定时和脉冲输出等操作。

3. 通过实验验证8254定时计数器的性能参数,如计数频率、计数范围等。

实验设备:1. 微机实验平台2. 8254定时计数器模块3. 示波器4. 连接线实验原理:8254定时计数器是一款可编程的定时/计数器集成电路,广泛应用于微机系统中进行定时、计数和波形发生等操作。

它包含三个独立的计数器,分别为计数器0、计数器1和计数器2,每个计数器都可以配置为不同的工作模式,如单稳态、双稳态、方波输出等。

实验步骤:1. 首先,根据实验指导书连接8254定时计数器模块到微机实验平台,并连接示波器以便于观察输出波形。

2. 编写程序,设置8254的控制字,选择合适的计数器工作模式,并设定计数频率。

3. 通过程序向8254发送计数值,启动计数操作。

4. 使用示波器观察并记录计数器的输出波形,验证其频率和稳定性。

5. 改变计数值和工作模式,重复步骤3和4,以测试8254的不同功能。

6. 最后,记录所有实验数据,并根据实验结果分析8254的性能。

实验结果:1. 记录不同计数值和工作模式下的输出波形频率,验证其与理论值的一致性。

2. 分析计数器在不同模式下的波形特点,如单稳态输出的脉冲宽度、双稳态输出的占空比等。

3. 根据实验数据,绘制波形图和频率表,直观展示8254的性能。

实验结论:通过本次实验,我们成功地验证了8254定时计数器的基本功能和性能参数。

实验结果表明,8254能够根据设定的计数值和工作模式,准确地进行计数和定时操作,输出稳定的波形信号。

这些特性使得8254定时计数器在微机系统中具有广泛的应用前景。

试验八825定时计数器应用试验

试验八825定时计数器应用试验

实验八 8254 定时/计数器应用实验一、 实验目的(1)掌握 8254 的工作方式及应用编程。

(2)掌握 8254 的典型应用电路的接法。

(3)学习 8254 在 PC 系统中的典型应用方法。

二、 实验设备PC 机一台,TD-PIT/TD-PIT-B 实验装置一套。

三、 实验内容(1)计数应用实验。

编写程序,应用 8254 的计数功能,用开关模拟计数,使每当按动。

KKl-五次后,产生一次计数中断,并在屏幕上显示一个字符“M”(2)定时应用实验。

编写程序,应用 8254 的定时功能,实现一个秒表计时并在屏幕上显示。

(3)电子发声实验。

编写程序让实验装置上的扬声器和 PC 机的扬声器唱歌。

四、 实验原理8254 是 Intel 公司生产的可编程间隔定时器。

是8253 的改进型, 比 8253 具有更优良的 性能。

8254 具有以下基本功能:(1)有 3 个独立的 16 位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可通过编程工作于 6 种不同的工作方式。

(4)8254 每个计数器允许的最高计数频率为 10MHz(8253 为 2MHZ)。

(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状 态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

图 2—1是 8254的内部结构框图和管脚图,它是由与 CPU 的接口、内部控制电路和三 个计数器组成的。

8254 的工作方式如下:(1)方式 0:计数到 0 结束输出正跃变信号方式。

(2)方式 1:硬件可重触发单稳方式。

(3)方式 2:频率发生器方式。

(4)方式 3:方波发生器。

(5)方式 4:软件触发选通方式。

(6)方式 5:硬件触发选通方式。

8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用 来设置读回命令,称为读回控制字.这两个控制字共用一个地址,由标识位来区分。

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定时计数器实验报告

微机8254定时计数器实验报告

微机8254定时计数器实验报告
实验目的:
本实验旨在掌握微机8254定时计数器的使用方法及其工作原理。

实验原理:
8254芯片是一种可编程定时计数器,它由三个独立的计数器组成:计数器0、计数器
1和计数器2。

每个计数器可以被编程为16位二进制计数器或相应的某些计数方式。

8254
芯片还允许在一个外部时钟频率的基础上分频,从而产生其他较低的时钟信号。

8254芯片常用于计时、计数、脉冲宽度调制、频率合成等应用中。

对于不同的应用需求,可以通过编程来设置8254芯片的各个寄存器,以达到相应的计数方式和计数长度。

8254芯片有3个计数寄存器,每个寄存器有8位,共24位。

实验器材:
1、电脑
2、实验板
实验步骤:
1、启动电脑,进入DOS命令行模式。

2、将实验板接入电脑的并口,并将数据口和控制口连接到实验板的相应位置上。

3、通过汇编语言编程,调用8254芯片的计数器0,并将计数次数设为一个固定的
值。

4、将编写好的汇编程序存储在计算机中,以备后用。

5、开始运行程序,等待一段时间。

6、通过实验板上的LED灯来观察芯片所产生的计数结果。

7、结束实验。

实验结果:
在实验中,我们通过编程控制8254芯片的计数器0,并将计数次数设为一个固定的值。

然后,我们通过实验板上的LED灯来观察芯片所产生的计数结果。

在实验的过程中,我们
发现,所设置的计数器的数值随时间的流逝而递减。

当计数器的数值为0时,LED灯也就熄灭了。

这表明8254计数器在工作时是十分准确可靠的。

8254计数器器应用实验

8254计数器器应用实验

实验三8254计数器器应用实验一、实验目的1.掌握8254的工作方式及应用编程;2.掌握8254的典型应用电路的连接。

二、实验内容及步骤1. 实验内容编写程序,将8254的计数器0设置为方式0/3/2,计数值为十进制5,用微动开关KK1-作为CLK0时钟,OUT0连接INTR,每当KK1-按动5次后产生中断请求,在屏幕上显示中断次数。

8254中的GA TE0已经连接了一个上拉电阻,所以GATE0不用连接。

图1 实验线路2. 实验步骤(1)按图1接线;(2)键入:check命令,记录分配的中断资源及I/O空间;(3)利用查出的地址编写程序,然后编译链接;(4)运行程序,按动KK1-微动开关,观察是否5次后屏幕显示字符“5”。

三、程序编程框架;T8254-1.asm;8254计数应用实验;***************根据CHECK配置信息修改下列符号值*******************INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字PCI_INTCSR EQU 9038H ;PCI卡中断控制寄存器地址IOY0 EQU 9800H;*****************************************************************MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTCS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量DATA ENDSSTR1 DB 'COUNT: $' ;显示的字符串CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCLIMOV DX,PCI_INTCSRSUB DX,19HIN AL,DXMOV DX,PCI_INTCSR ;初始化PCI卡中断控制寄存器MOV AX,1F00H ;向PCI_INTCSR中写入003F1F00H OUT DX,AXADD DX,2MOV AX,003FHOUT DX,AXMOV AX,0000H ;替换INTR的中断矢量MOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:[DI]MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISRMOV ES:[DI],AX ;设置当前中断处理程序入口偏移地址ADD DI,2MOV AX,ES:[DI]MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址MOV AX,SEG MYISRMOV ES:[DI],AX ;设置当前中断处理程序入口段地址MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位 IN AL,DXMOV IM_BAK,AL ;保存INTR原中断屏蔽字AND AL,INTR_IMOUT DX,ALSTIWAIT1: MOV AH,1 ;判断是否有按键按下INT 16HJZ WAIT1 ;无按键则跳回继续等待,有则退出QUIT: CLIMOV DX,PCI_INTCSR ;恢复PCI卡中断控制寄存器OUT DX,AXMOV AX,0000H ;恢复INTR原中断矢量MOV ES,AXMOV DI,INTR_IVADDMOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:[DI],AXADD DI,2MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址 MOV ES:[DI],AXMOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字 MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00H ;返回到DOSINT 21HMYISR PROC NEAR ;中断处理程序MYISRMOV AL,39HMOV AH,0EHINT 10HMOV AL,20HINT 10HOVER: MOV DX,PCI_INTCSRSUB DX,19HIN AL,DXMOV DX,PCI_INTCSR ;清PCI卡中断控制寄存器标志位ADD DX,2MOV AX,003FHOUT DX,AXMOV DX,INTR_OCW2 ;向PC机内部8259发送中断结束命令MOV AL,20HOUT DX,ALOUT 20H,ALIRETMYISR ENDPCODE ENDSEND START四、思考题1. 设置8254为方式0、方式2、方式3,程序实现上以及程序结果上有何不同?。

实验6_8254定时器计数器应用实验

实验6_8254定时器计数器应用实验

实验六8253/4定时器/计数器应用实验6.1实验目的(1) 掌握8254的工作方式及应用编程(参考教材)(2) 掌握8254的典型应用电路的接法(3) 学习8254在PC系统中的典型应用方法6.2实验设备PC机一台,TD-PIT-B实验装置一套。

6.3实验内容及说明1 )计数应用实验。

2)定时应用实验。

3)电子发声实验注意:在断电情况,连接好实验线路,检查无误后,通电进行实验。

实验完毕,先断电,再拆线,并将导线整理好。

1. 计数应用实验:编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1 -作为CLK0时钟,OUT0连接IRQ,每当KK1-按动5次后产生中断请求,在屏幕上显示字符“ M ”。

8254计数应用参考连接线图如图6-1。

;;----PCI卡分配的第3个I/O空间MY8254_COUNT0 MY8254_COUNT1 MY8254_COUNT2 MY8254_MODE ;;--PCI卡分配的第1个I/O空间INTCSR_BYTE0 INTCSR_BYTE1 DATA SEGMENTCSBAK DW ?IPBAK DW ?MKBAK DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA;;计数应用实验;;filename : 8254-1.asm INTCSR_BYTE2INTCSR_BYTE3EQU 0DC3AHEQU 0DC3BH IMB4_BYTE3 EQU 0DC1FHEQU 0E440H EQU 0E441H EQU 0E442H EQU 0E443HEQU 0DC38H EQU 0DC39H +5V KK1--IR Q图6-1 8254计数应用实验参考接线图START: CLIMOV AX,DA TAMOV DS,AXMOV DX,INTCSR_BYTEO;;设置pci卡MOV AL,00HOUT DX,ALMOV DX,INTCSR_BYTE1MOV AL,1FHOUT DX,ALMOV DX,INTCSR_BYTE2MOV AL,3FHOUT DX,ALMOV DX,INTCSR_BYTE3MOV AL,00HOUT DX,ALMOV AX,0000HMOV ES,AXMOV DI, 01C4H;irq 9 , INT 71h, 01c4= 71h*4MOV AX,ES:[DI]MOV IPBAK,AX ;IPMOV AX,OFFSET MYINTCLDSTOSWMOV AX,ES:[DI] ;CSMOV CSBAK,AXMOV AX,SEG MYINTSTOSWIN AL,0A1HMOV MKBAK,ALAND AL,0fdh ; irq9OUT 0A1H,ALSTIMOV DX,MY8254_MODE ;CLK=KK1- //实际接线kk1-MOV AL,17H ;00 01,011 1b :计数器0,读/写低8位;方式3, 十进制数OUT DX,ALMOV DX,MY8254_COUNT0MOV AL,5;;写入计数初值3个高电平,2个低电平OUT DX,ALA1: NOPCALL BREAKJMP A1MYINT: PUSH DSPUSH AXPUSH DXMOV DX,IMB4_BYTE3;清PCI卡中断标志IN AL,DXMOV DX,INTCSR_BYTE2MOV AL,3FHOUT DX,ALMOV AL,61H;irq9从片D1,主片D2OUT 0A0H,ALMOV AL,62HOUT 20H,ALMOV AX,0E4DH;显示字母M加一空格INT 10HMOV AX,0E20HINT 10HPOP DXPOP AXPOP DSIRETBREAK PROC NEARPUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLIMOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AX CLD STOSWMOV AX,CSBAK STOSWMOV DX,INTCSR_BYTE1 ;pci 卡设置 MOV AL,00H OUT DX,ALSTIMOV AX,4C00H INT 21HRETURN:POP DSRETBREAK ENDP CODE ENDSEND STARTMOV AX,IPBAK2. 定时应用实验编写程序,将8254的计数器0设置为方式2,用信号源10kHz 作为CLK0时钟,计数值为 十进制0(即最大计数值10000),OUT0连接IRQ ,这样每计时1s 后产生中断请求,制作一个秒 表显示,每计时 60秒自动归零。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 segment
dw 512 dup (0)
stack ends
data segment
dw
256,288,320,341,384,426,480,512,0 data ends
code segment
start:
next1: mov cx,08h
mov ax,data
mov ds,ax
mov si,0
next:
call sound
add si,2
mov ax,[si]
loop next
jmp next1
in al,61h
and al,0fch
out 61h,al
sound:push cx push si
push ax
mov al,10110110b out 43h,al
mov dx,000fh mov ax,4240h mov di,[si] div di
out 42h,al mov al,ah
out 42h,al
in al,61h
or al,03h
out 61h,al
call delay call break
pop ax
pop si
pop cx
ret
delay:push ax push cx
mov cx,05fffh
d1:mov ax,0ffffh
d2:dec ax
jnz d2
loop d1
pop cx
pop ax
ret
exit:mov ax,4c00h
int 21h
break proc near
mov ah,06h
mov dl,0ffh
int 21h
je return
mov ax,4c00h
int 21h
return:ret
break endp
code ends
end start
b)时钟显示实验。

编写程序,从MC146818中读取当前的时间,并显示在屏幕上。

显示程序相关语句:
mov bx,0b800h
mov es,bx
mov di,160*12+2*30 ; 显存地址:第12行第30列
mov byte ptr es:[di],':'
程序:
data segment
db 9,8,7,4,2,0 ;9号年,8号月,7号日,4号时,2号分,0号秒
db '\\ ::' ;格式字符
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bx,0b800h ;显示缓冲区
mov es,bx
mov si,160*12+2*30
mov bx,0
mov cx,6 ;循环次数
nt:
push cx ;子程里需要用到cx,所以先push cx
mov al,ds:[bx] ;取端口号
out 70h,al ;在70h中写入要访问的端口号
in al,71h ;读取指定的端口号数据
mov ah,al ;将取得的bcd码给高位,此时ah=al
mov cl,4 ;右移4次
shr ah,cl;右移4次,高位4位移到低4位
and al,00001111B ;屏蔽高4位,剩下低4位
add ah,30h ;将十位上的数字加30H转换为ascii对应的吗
add al,30h ;将个位上的数字加30H转换为ascii对应的吗
mov byte ptr es:[si],ah ;缓冲区es:si写入十位
mov byte ptr es:[si+2],al ;缓冲区es:si+2写入个位
mov al,ds:[bx+6]
;mov byte ptr al,ds:[bx+6] ;定位符号偏移
mov byte ptr es:[si+4],al ;缓冲区es:si+4写入符号
inc bx
add si,6 ;缓冲区偏移加6,因为上面写入了3次字
pop cx
loop nt
jmp start
mov ax,4c00h
int 21h
code ends
end start
c)计数应用实验(选做)。

编写程序,应用8254的计数功能,将8254的计数器0设置为方式3,计数值为十进制5,用开关模拟计数,作为CLK0时钟,OUT0
连接IRQ,使每当按动KK1-五次后,产生一次计数中断,并在屏幕上显示一
个字符“5”。

d)定时应用实验(选做)。

编写程序,应用8254的定时功能,使8254的计数器0设置为方式2,用信号源10KHZ作为CLK0时钟,计数值为十进制0(即最大
计数值10000),OUT0连接IRQ,这样每计时1秒后产生中断请求,实现一个
秒表计时并在屏幕上显示,每60秒自动归零。

5、实验步骤
a)设计实验线路图,将数据总线XD0~XD7连至8254的D0~D7,将地址总线XA0~XA1连至8254的A0~A1,读写控制信号XIOW和XIOR分别连至8254
的WR和RD,片选信号IOY2连至CS。

GA T0接+5V,CLK0接1MHz信号源,OUT0接扬声器SPK。

b)编写调试程序,无误完成汇编连接。

c)打开实验箱电源,运行程序,拨动开关组,观察数据灯的显示。

相关文档
最新文档