北京化工大学微机接口技术课程实验报告

  • 格式:doc
  • 大小:248.50 KB
  • 文档页数:12

下载文档原格式

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

北京化工大学测控专业微机接口技术课程综合创新实验报告

目录

1.课程名称 (1)

2.课程背景 (1)

3.功能分析. (1)

4.设计 (1)

4.1 硬件设计 (1)

4.2 软件设计 (3)

4.3 主题代码 (3)

5.设计心得 (6)

5.1收获与心得 (6)

5.2 思考 (7)

6.参考文献 (7)

1.实验名称基于计时中断的自动清零计数器

2.实验背景

设计一个能实现在数码管上显示的00~99的自动清零计数器,并且计数频率可调。

3.功能分析

为了实现上述要求,有三个工作要做:一是利用可编程定时器/计时器82C54产生一个周期约为2s的方波作为中断的触发信号;二利用可编程中断控制器82C59A响应外部中断源,中断触发信号来自设计的方波;三利用可编程并行接口芯片82C55A驱动数码管显示,利用六位数码管的的低两位来显示出当前的计数值。

4.设计

4.1.硬件设计

先进行硬件设计和端口地址选择。82C54的电路结构原理如图1所示。

图1.自动清零计数装置电路结构原理1

82C54的端口地址为0040H(通道0),0041H(通道1),0042H(通道2),0043H(命令口)。

通道0作计数器使用,工作在3方式,目的是产生一个方波,GTAE0接+5V,CLK0接由系统8MHZ时钟分频得到1MHZ的脉冲信号。输出端OUT0,接到中断控制器的IR3端口,利用OUT0输出方波的上升沿触发中断。

下图是中断控制器的硬件设计图。

图2.自动清零计数装置中断结构原理

如图,82C59A的IR3端口接82C54的OUT0端口,中断请求线INT接到8086的INTR,中断回答线INTA接到8086的INTA;使能端CS接到实验箱的FF80H端口。这样就实现了82C54的OUT0产生的方波来一次上升沿就触发一次中断。

下图是可编程并行芯片82C55A的硬件图:

图3.自动清零计数装置82C55A结构

如图,当82C55A用于数码管显示时,PA口作为键扫/字位口;PB口作为字形口,PC口作为键入口;即PA口作为位选信号,PB口作为段选信号。数码管的最低位用来显示当前计数值的个位数字,次低位用来显示当前计数值的十位数

字,通过添加延时,可达到尽量无抖动和尽量无消隐的效果。

下图是实验流程图:

图4.自动清零计数装置流程图

4.2.软件设计

根据上述硬件设计的安排和设计目标的要求,可设定:

通道0的方式命令为00110110B=36H,要产生周期约为2s的方波,根据如图公式:

图3

可得定时常数为0C350H。

4.3主体代码

汇编语言程序清单如下:

CODE SEGMENT

ASSUME CS:CODE

INTPORT1 EQU 0FF80H

INTPORT2 EQU 0FF81H

INTQ3 EQU INTREEUP3

TCONTRO EQU 0043H

TCON0 EQU 0040H

PA EQU 0FF20H

PB EQU 0FF21H

PC EQU 0FF22H

CTL EQU 0FF23H

ORG 12D0H

START: JMP START0

BUF DB?,?,?,?,?,?

INTCNT DB?;个位数字

INTCNT10 DB?;十位数字

TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0-9 START0: CLD

;8255初始化

MOV DX, CTL

MOV AL, 80H

OUT DX, AL

;8259初始化

MOV AL,13H

MOV DX,INTPORT1

OUT DX,AL

MOV AL,08H

MOV DX,INTPORT2

OUT DX,AL

MOV AL,09H

OUT DX,AL

MOV AL,0F7H

OUT DX,AL

;8253初始化L

MOV DX,TCONTRO

MOV AL,36H ;计数器0,先写低字节再写高字节,方式3 OUT DX,AL

MOV DX,TCON0

MOV AX,0C350H ;设置计数初值

MOV DX,TCON0

OUT DX,AL ;先写低字节

MOV AL,AH

OUT DX,AL ;再写高字节

; 修改中断变量

MOV AX,0H

MOV ES,AX

MOV DI,002CH

LEA AX,INTQ3

STOSW

MOV AX,0000H

STOSW

MOV INTCNT,0H ;TIME=0 STI

;等待中断

WATING:

MOV AL, INTCNT

MOV AH,0

CALL DISP

CALL DELAY

JMP WATING

;中断服务子程序

INTQ3: CLI ;关中断

PUSH AX ;保护现场

PUSH BX

PUSH CX

PUSH DX

MOV AL,INTCNT

INC AL

CMP AL, 10

JNZ INTRE2

MOV AL, 0

INC INTCNT10

CMP INTCNT10,10

JNZ INTRE2

MOV INTCNT10,0

INTRE2:

MOV INTCNT,AL

MOV AL,20H

MOV DX,INTPORT1

OUT DX,AL

POP DX ;恢复现场

POP CX

POP BX

POP AX

STI

IRET

;8255显示子程序AL