8253计数器定时器接口实验

更新时间:2023-09-25 00:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理实验报告

实验五 8253计数器/定时器接口实验

1. 实验目的

1) 学会通过PC总线、驱动器、译码器等在PC机外部扩充为新的芯片; 2) 了解8253计数器/定时器的工作原理; 3) 掌握8253初始化的程序设计;

4) 掌握8253方式0的计数方式的使用方法和方式3方波产生的方法。

2. 实验内容

将实验装置上的1片8253定时器/计数器接入系统,具体做两个内容的实验。 1) 实验一:将8253的计数器0设置为工作于方式0,设定一个计数初值,用手动逐个输入单脉冲,观察OUT0的电平变化。

硬件连接:断开电源,按图2-1将8253接入系统。具体包括: (1) 将8253的CS接I/O地址输出端280H-287H;

(2) 将8253的计数器0的CLK0与单脉冲信号相连,以用来对单脉冲进行计数; (3) 将8253的GATE0用专用导线接向+5V,以允许计数器0工作;

(4) 将8253的OUT0接到LED发光二极管,以显示8253计数器0的输出OUT0的状态。

图2-1 8253实验一的连线图

2) 实验二:将8253的计数器0、1均设置为工作于方式3(方波),按图2-2重新接线。要求是当CLK0接1MHz时,OUT1输出1Hz的方波,OUT的输出由LED显示出来。将计数器0与计数器1串联使用,计数器0的输出脉冲OUT0作为计数器1的时钟输入CLK1。

图2-2 8253实验二的连线图

3. 程序及框图

1) 程序框图

图4-1给出了8253实验一的流程图。

图4-1 程序流程图

图4-2给出了8253实验二的流程图。

2) 程序代码

实验一程序代码:

CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT

MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DX,AX

MOV DX,OFFSET MESS MOV AH,09H INT 21H

MOV DX,CTRL MOV AL,30H OUT DX,AL

MOV DX,TIME0 MOV AX,03H OUT DX,AL XCHG AH,AL OUT DX,AL COUNT:

MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START

实验二程序代码:

CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT

MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DX,AX

MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV DX,CTRL

MOV AL,36H OUT DX,AL

MOV AL,76H OUT DX,AL

MOV DX,TIME0 MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL

MOV DX,TIME1 MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL COUNT:

MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START

4. 实验数据、现象及结果分析

5. 实验思考题

1) 实验一中的定时器0的输出OUT0的电平是如何变化的,为什么?

解:假设对定时器0赋初值为3,则控制字发送后,OUT0变为低电平,当手动输入3个单脉冲后,OUT0变为高电平。因为当计数器工作于方式0时,计数开始时为低电平,当CE计数器减到0时,OUT输出高电平并保持不变。

2) 实验二中的计数器0、计数器1的计数初值是如何确定的。

解:实验二中要求CLK0输入1MHz信号时,OUT1输出1Hz方波,即可对计数器0赋初值a,对计数器1赋初值b,其中a和b均要小于等于65536,同时要求a*b=1000000。在具体实验中为简化程序编写,故对计数器0和1均赋初值1000即可。

3) 是否能用现有的实验装置通过使用8253的方式0和方式3实现一个延时10秒的高电平输出?即:8253某个计数器的输出在初始化完成后变为低电平,10秒后变为高电平,具体如何实现?

解:由于8253工作于方式0时,CPU向其发出控制字后,输出OUT就变为低电平,从而导致低电平的时间中有一部分无法计算,即OUT变为低电平到计数器开始计数这段时间,故本题中利用8253的方式0和方式3实现延时10秒的高电平输出并不十分精确。

设计思路:电路部分不需要重新接线,由电路可知,经过计数器0分频后,OUT0处得到的是1000Hz的方波,周期为0.001秒,将其作为计数器1的CLK1输入信号,将计数器1的的工作方式设置为方式0,并对计数器1赋初值10000,便可在OUT1端得到延时10秒的高电平输出,可在OUT1处连接LED进行OUT1输出电

平的反应。 程序代码为:

CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT

MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DX,AX

MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV DX,CTRL

MOV AL,36H OUT DX,AL

MOV AL,70H OUT DX,AL

MOV DX,TIME0 MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL

MOV DX,TIME1 MOV AX,10000 OUT DX,AL XCHG AH,AL OUT DX,AL COUNT:

MOV AH,06H MOV DL,0FFH INT 21H JZ COUNT MOV AX,4C00H INT 21H CODE ENDS END START

0,使其工作于方式3 1,使其工作于方式0 0赋初值1000 1赋初值10000 ;若有键按下,则退出 ;设置定时器;设置定时器;向定时器;向定时器

本文来源:https://www.bwwdw.com/article/y0kd.html

Top