实验六 8254定时计数器 下载本文

内容发布更新时间 : 2024/5/17 15:56:28星期一 下面是文章的全部内容请认真阅读。

南京航空航天大学

电工电子实验中心

实验报告

课程名称:计算机硬件技术基础 实验名称:8254定时/计数器 姓名:学号:

评定成绩:审阅教师: 实验时间:2017.06.06

南京航空航天大学

南京航空航天大学

一、 实验目的要求

1) 掌握 8254 定时/计数器的名种工作方式及编程方法。

二、 实验任务

按照图 3-2-1 的要求连线,分别对 8254 芯片的 3 个定时/计数器编程,并选择合适的工作方式和初值,以达到如下的效果:

1) 定时/计数器 0,计数脉冲频率为 18.432KHz,OUT0 分两路输出,一路外接 2 位 LED,使其以亮 0.5 秒灭 0.5 秒循环闪亮,另一路作为计数器 1 的计数脉冲 CLK1。

2) 定时/计数器 1,OUT1 的输出外接 2 位 LED,使其以亮 3 秒灭 1 秒循环闪亮。

3) 定时/计数器 2 的计数脉冲来自单次脉冲单元,按压开关产生的脉冲作为计数器 2 的计数脉冲。OUT2 外接 2 位 LED,当按压开关到 17 次时 LED 长亮,并将按压开关的剩余次 数将在屏幕上显示。

三、 实验电路图

图3-2-1 8254定时/计数器电原理图

南京航空航天大学

四、 实验代码

IOY0 EQU 3000H

TIMER0 EQU IOY0+00H*4 ;8254计数器0端口地址 TIMER1 EQU IOY0+01H*4 ;8254计数器1端口地址 TIMER2 EQU IOY0+02H*4 ;8254计数器2端口地址 TCTL EQU IOY0+03H*4 ;8254控制寄存器端口地址

STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT

MES0 DB ‘Pressed: $’

MES1 DB ‘Press any key to exit !’,0DH,0AH,’$’ NUM DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES1 MOV AH, 9 INT 21H MOV DX, TCTL

MOV AL, 00110110B ; 计数器0初始化,方式3 OUT DX, AL MOV DX, TIMER0 MOV AL, 00H OUT DX, AL ;计数器0初值=4800H MOV AL, 48H OUT DX, AL MOV DX, TCTL MOV AL, 01010101B ; 计数器1初始化,方式2 OUT DX, AL MOV DX, TIMER1 MOV AL, 04H ; 计数器1初值=04H OUT DX, AL

MOV DX, TCTL

MOV AL, 10010001B ; 计数器2初始化,方式0 OUT DX, AL MOV DX, TIMER2 MOV AL, 0FH ;计数器0初值=0FH

南京航空航天大学

OUT DX, AL

L1: MOV DX, TIMER2

IN AL, DX ;读入计数器2值保存 MOV NUM,AL CALL DISP MOV AL, NUM ;当按压开关17次时退出 CMP AL, 0 JZ QUIT

MOV DL, 0FFH

MOV AH, 6 ;判主键盘有无键按下 INT 21H

JZ L1 ; 有键按下跳转

QUIT: MOV AX, 4C00H ;结束程序退出 INT 21H

DISP PROC ;显示子程序 MOV DX, OFFSET MES0 MOV AH, 9 ; 显示MES0 INT 21H

MOV AL, NUM CMP AL, 9 ;判断是否<=9 JLE L2 ;若是则为'0'-'9',ASCII码加30H ADD AL, 7 ;否则为'A'-'F',ASCII码加37H L2: ADD AL, 30H MOV DL, AL

MOV AH, 2 ;在显示器上显示按压开关的次数 INT 21H MOV DL, 0DH INT 21H RET DISP ENDP

CODE ENDS

END START

南京航空航天大学

五、 实验的运行数据及分析

实验达到了以下效果:

1) 定时/计数器 0,计数脉冲频率为 18.432KHz,OUT0 分两路输出,一路外接 2 位 LED,使其以亮 0.5 秒灭 0.5 秒循环闪亮,另一路作为计数器 1 的计数脉冲 CLK1。

2) 定时/计数器 1,OUT1 的输出外接 2 位 LED,使其以亮 3 秒灭 1 秒循环闪亮。

3) 定时/计数器 2 的计数脉冲来自单次脉冲单元,按压开关产生的脉冲作为计数器 2 的计数脉冲。OUT2 外接 2 位 LED,当按压开关到 17 次时 LED 长亮,并将按压开关的剩余次 数将在屏幕上显示。

六、 实验讨论及心得体会

通过实验,对8254的工作原理和编程方法都了一定程度的理解,其中,8254的六种工作方式分析起来比较困难,需要认真理解记忆。