8254定时与计数器实验.docx
- 文档编号:25142331
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:14
- 大小:183.81KB
8254定时与计数器实验.docx
《8254定时与计数器实验.docx》由会员分享,可在线阅读,更多相关《8254定时与计数器实验.docx(14页珍藏版)》请在冰豆网上搜索。
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=fCLKi÷fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
8254实验单元电路图如下图所示:
图2-28254实验电路原理图
2.2硬件连线
(1)计数应用实验:
系统总线XD0~XD7分别与8254单元D0~D7相连,系统总线XA1~XA2分别与8254单元A0~A1相连,系统总线的IOW#、IOR#、IOY0(0600H)、MIR7分别于8254单元的WR、RD、CS、OUT0相连,8254单元的CLK0与单次脉冲单元的KK1+相连,如图2-3;
图2-3计数应用实验连线图
(2)定时应用实验:
系统总线与8254单元类似于
(1)中进行连线,然后将8254单元中的OUT0连接到CLK1,GATE1连接VCC,OUT1连接到A/D转换单元的IN0。
AD转换单元A、B、C接地,并将D0~D7接到系统总线XD0~XD7上,并将WR、RD、CS、CLK分别连接到系统总线的IOW#、IOR#、IOY3(0680H)、CLK上。
如图2-4所示。
图2-48254定时应用实验接线图
三、设计思路、步骤和程序流程图
3.1设计思路
(1)计数应用实验:
将8254的计数器0设置为方式0,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,首先让程序进入死循环等待中断,每当KK1+按动5次后产生中断请求,调用中断程序,在屏幕上显示字符“M”。
(2)定时应用实验:
利用8254的两个计数装载过大的初始值,其中计数器0的OUT作为计数器1的CLK的输入,当两个计数器的初值满足一定条件时,计数器1的OUT即为1s方波,并可通过软件的示波器直接观察。
3.2实验步骤
(1)计数应用实验:
1.按图2-3连接电路;
2.编写实验程序,经编译、链接无误后装入系统;
3.单击RUN按钮,运行实验程序,每连续按动5次KK1+,在界面的输出区会显示字符‘M’;
4.改变计数值,验证8254的计数功能。
(2)定时应用实验
1.按图2-4连接实验线路;
2.编写实验程序,经编译、链接无误后装入系统;
3.运行程序,8254的OUT1会输出1s的方波,用软件自带的示波器功能进行观察。
3.3程序流程图
(1)计数应用实验:
主程序流程图如图2-5
图2-5计数应用实验主程序流程图
中断程序流程图如图2-6
图2-6计数应用实验中断程序流程图
(2)定时应用实验:
程序流程图如图2-7
图2-7定时应用程序流程图
四、程序清单与执行结果
4.1程序清单
(1)计数应用实验代码
IOYOEQU0600H
A8254EQUIOYO+00H*2
B8254EQUIOYO+01H*2
C8254EQUIOYO+02H*2
CON8254EQUIOYO+03H*2
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
SSTACK
START:
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ7
MOVSI,003CH
MOV[SI],AX
MOVAX,CS
MOVSI,003EH
MOV[SI],AX
CLI
POPDS
;初始化主片8259
MOVAL,11H;初始化ICW1
OUT20H,AL
MOVAL,08H;初始化ICW2
OUT21H,AL
MOVAL,04H;初始化ICW3
OUT21H,AL
MOVAL,01H;初始化ICW4
OUT21H,AL
MOVAL,6FH;OCW1
OUT21H,AL
;8254
MOVDX,CON8254
MOVAL,10H
OUTDX,AL
MOVDX,A8254
MOVAL,04H
OUTDX,AL
STI
AA1:
JMPAA1
IRQ7:
MOVDX,A8254
MOVAL,04H
OUTDX,AL
MOVAX,014DH
INT10H
MOVAX,0120H
INT10H
MOVAL,20H
OUT20H,AL
IRET
CODEENDS
ENDSTART
(2)定时应用实验代码
A8254EQU0600H
B8254EQU0602H
C8254EQU0604H
CON8254EQU0606H
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,CON8254
MOVAL,27H
OUTDX,AL
MOVDX,A8254
MOVAL,10H
OUTDX,AL
MOVDX,CON8254
MOVAL,67H
OUTDX,AL
MOVDX,B8254
MOVAL,10H
OUTDX,AL
AA1:
JMPAA1
CODEENDS
ENDSTART
4.2执行结果
(1)计数应用实验的实验结果如图2-8,每按5次KK1+,就会打印一个‘M’,并且输出一个空格。
图2-8计数应用实验
(2)定时应用实验的实验结果如图2-9和图2-10,示波器会显示如下波形。
图2-9定时应用实验(方波)
图2-10定时应用实验
五、程序调试说明和实验感想
5.1调试说明
在实验中,需要将8254计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0,OUT0为波形输出1ms方波,再通过CLK1输入,这样OUT1才会输出1s方波。
5.2实验感想与收获
通过本次实验,对8254的计数器有了深入的了解;对8254的内部接口和引脚有了充分的认识;对8254的工作方式、应用编程及其典型电路的接法有了全新的掌握。
纸上得来终觉浅,在对实验的实践中,实验前事先预习,实验中不断尝试,实验后总结复习,收获良多。
5.3实验特色
在计数应用实验中,通过改变计数输出字符‘M’,具有创新精神。
在定时应用实验中,通过输出不同方式的波形,融课内所学于实验中,具有个人特色。
5.4展望
如果有充裕的时间,还可以实现输出类似莫尔斯电码的效果,如按1次KK1+输出长信号,按1次KK2+输出短信号,长短信号组成莫尔斯电码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8254 定时 计数器 实验