实验六 8254定时/计数器实验

987 字
5 分钟
实验六 8254定时/计数器实验

实验六 8254定时/计数器实验#

1. 实验内容#

基础部分

编写程序,使 8254 的计数器 1 分别工作在方式 0、1、2、3 下,在示波器上观察各工作方式下 OUT1 的输出波形。

扩展部分

  1. 使用单脉冲开关手动生成 8254 的输入时钟,观察方式 0的输出波形;

  2. 编写程序,在示波器上显示周期为 1s 的方波

  3. 利用 8254 方式2或方式3 精确定时,控制 LED 灯 D7~D0 的点亮:

    • 初始时,D7~D0全部熄灭;

    • 1秒钟之后点亮D0,再经过1秒D1D0点亮,…,8秒钟之后D7~D0全部点亮。

2. 实验原理#

8254 工作方式介绍#

  1. 方式 0:计数到 0 结束输出正跃变信号方式。
  2. 方式 1:硬件可重触发单稳方式。
  3. 方式 2:频率发生器方式。
  4. 方式 3:方波发生器。
  5. 方式 4:软件触发选通方式。
  6. 方式 5:硬件触发选通方式

3. 连线#

机箱连线
机箱连线

CLK1和GATE1具体接法见实验分析

4. 实验代码#

基础部分:#

P8254_0 EQU 0600H
P8254_1 EQU 0602H
P8254_2 EQU 0604H
P8254MODE EQU 0606H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX, P8254MODE
;计数器1,先低再高,二进制
;MOV AL, 01110000B ;方式0
;MOV AL, 01110010B ;方式1
;MOV AL, 01110100B ;方式2
MOV AL, 01110110B ;方式3
OUT DX, AL
MOV DX, P8254_1
MOV AL, 00H ;计数器初值4800H
OUT DX, AL
MOV AL, 48H ;18.432KHZ时钟源,计时1s后输出正跃变信号
OUT DX, AL
JMP $
CODE ENDS
END START

扩展部分:#

1#
P8254_0 EQU 0600H
P8254_1 EQU 0602H
P8254_2 EQU 0604H
P8254MODE EQU 0606H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX, P8254MODE
MOV AL, 70H ;方式0
OUT DX, AL
MOV DX, P8254_1
MOV AX, 00H
OUT DX, AL
MOV AX, 05H ;按6次后跳变为高电平
OUT DX, AL
JMP $
CODE ENDS
END START
2#
P8254_0 EQU 0600H
P8254_1 EQU 0602H
P8254_2 EQU 0604H
P8254MODE EQU 0606H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX, P8254MODE
MOV AL, 76H ;方式3:方波发生器
OUT DX, AL
MOV DX, P8254_1
MOV AX, 00H ;计数器初值4800H
OUT DX, AL
MOV AX, 48H
OUT DX, AL
JMP $
CODE ENDS
END START
3#
P8254_0 EQU 0600H
P8254_1 EQU 0602H
P8254_2 EQU 0604H
P8254MODE EQU 0606H
P8255A EQU 0640H
P8255B EQU 0642H
P8255C EQU 0644H
P8255MODE EQU 0646H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX, P8254MODE
MOV AL, 76H ;方式3
OUT DX, AL
MOV DX, P8254_1
MOV AL, 00H
OUT DX, AL
MOV AL, 48H
OUT DX, AL
MOV DX, P8255MODE
MOV AL, 80H
OUT DX, AL
LEA AX, MIR6
MOV SI, 38H
MOV [ES:SI], AX
MOV AX, CS
MOV SI, 3AH
MOV [ES:SI], AX
CLI
MOV AL, 11H
OUT 20H, AL
MOV AL, 08H
OUT 21H, AL
MOV AL, 04H
OUT 21H, AL
MOV AL, 07H
OUT 21H, AL
MOV AL, 2FH
OUT 21H, AL
STI
INIT:
MOV AL, 00H
MOV DX, P8255B
MAIN:
OUT DX, AL
JMP MAIN
MIR6:
CMP AL, 0FFH ;全部点亮后循环
JZ RESET
ROL AL, 1
INC AL
JMP EXIT
RESET: ;重置,熄灭所有灯
MOV AL, 00H
EXIT:
IRET
CODE ENDS
END START

实验分析#

1. 基础实验#

  1. 方式0 下,计数器初值 4800H,CLK1 接 18.432KHZ 时钟源,OUT1 接 IN0,示波器上在 1s 后产生一个正跃变信号,并在此后保持高电平。

  2. 方式1 下,计数器初值 4800H,CLK1 接 18.432KHZ 时钟源,GATE1接KK1,OUT1 接 IN0,示波器上为高电平,按下 KK1 后变为低电平开始计时,1s 后产生一个正跃变信号,并在此后保持高电平。

  3. 方式2 下,OUT1 接 IN0,示波器上保持高电平,偶尔会出现一个负脉冲(这是由于示波器的采样率不够,无法将每个脉冲捕捉到)。

  4. 方式3下,计数器初值 4800H,CLK1 接 18.432KHZ 时钟源,OUT1 接 IN0,示波器上显示周期为 1s 的方波。

2. 扩展实验#

  1. 在方式0下,将 CLK1 接 KK1,OUT1 接 IN0,计数初值设为 nn,则按 KK1 n+1n+1次后,示波器上产生一个正跃变信号,并在此后保持高电平。

  2. 在方式3下,计数器初值设为 4800H,CLK1接 18.432KHZ 时钟源,OUT1 接 IN0,示波器上显示周期为 1s 的方波。

  3. 在方式2或方式3下,计数器初值设为 4800H,CLK1接 18.432KHZ 时钟源,OUT1接MIR6,每秒产生一个中断。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

实验六 8254定时/计数器实验
https://mathison2020.github.io/posts/2022-11-18-mcexp6/
作者
Mathison2020
发布于
2022-11-18
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
实验二 存储器扩展实验
微机实验 实验二 存储器扩展实验1. 实验内容基础部分 编写实验程序,将 0000H~000FH(16个十六位的数据)写入SRAM从 8000:0000H 起始的一段空间中,并通过系统命令查看该存储空间,检查写入数据是否正确。 要求:分别按规则字、非规则字和字节三种方式将数据写入存储器,并观察实验结果。 拓展部分 编写程序实现如
2
实验八 数码管显示实验
微机实验 实验八 数码管显示实验1. 实验内容基础部分 用一片 8255 接口芯片的 A 口和 B 口分别连接数码管段码接口(ABCDEFG、Dp)和位码接口(X1~X6)。编写程序实现以下两种显示方式: 使六位数码管从右到左逐位显示移动的数字 0 到 9,即数字 0 从最右端移动到最左端,数字 1 从最右端移动到最左端,….,
3
实验四 A/D转换实验
微机实验 实验四 A/D转换实验1. 实验内容基础+扩展部分 编写实验程序,将 ADC 单元中提供的 0V~5V 信号源作为 ADC0809 的模拟输入量,进行 A/D 转换,转换结果通过 8 位 LED 进行显示。分别使用延时等待、查询和中断三种方式实现本实验的实验内容。 2. 实验原理 延时方式:又名等待方式、定时采样方式,
4
实验五 D/A转换实验
微机实验 实验五 D/A转换实验1. 实验内容基础部分 编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经 D/A 转换,显示在软件模拟示波器上。要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。 扩展部分 在软件模拟示波器上显示锯齿波、矩形波、三角波和阶梯波,并使用单脉冲开关KK1在四种波形间进行切换。 2. 实验原理
5
实验一 8255并行接口实验
微机实验 实验一 8255并行接口实验1. 实验内容基础部分编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求:数据灯的显示随开关动态变化。拓展部分在基础实验上增加如下功能: 若开关 K7~K0 均为高电平,则程序退出。 当 K0 为高电平时,数据灯高4位亮; 当 K0 为低电平时
随机文章 随机推荐
Profile Image of the Author
Mathison2020
Never really desperate, only the lost of the soul.
公告
欢迎来到 Mathison's Blog,这里记录算法、实验和学习笔记。
分类
标签
站点统计
文章
12
分类
3
标签
6
总字数
12,352
运行时长
0
最后活动
0 天前

目录