李伯成《微机原理》习题 第六章

  • 格式:doc
  • 大小:179.00 KB
  • 文档页数:3

李伯成《微机原理》习题 第六章

6.1若8253芯片可利用8088的外设接口地址为 0D0D0H~0D0DFH,试画出电路,若加到8253上的时钟信号为2MH:

(1) 若利用计数器0,1,2 分别产生周期为10微秒的对称方波以及0.1秒和10秒产生一个负脉冲,试说明8253应如何连接并编写初始化在内的程序;

(2) 若希望利用8088程序通过接口控制GATE,从CPU使GATE有效开始,20微秒后在计数器0 的OUT 端产生一个正脉冲,试设计完成此要求的硬件和软件。

根据题意 三个计数器都应该工作在方波发生器方式3,计数器0的输出信号周期为10微秒,因为时钟信号周期我0.5微秒,所以计数器0的计数值为20。用OUT0作为计数器1的时钟,计数器1的分频系数为1/10-4, 而假如又用OUT1作为计数器2的时钟,则计数器2的分频系数应为100。所以有以下初始化程序段:

计数器0 : 00 01 011 1 = 37H

计数器0 单字节 方式3 十进制

计数器1 01 11 011 1 =57H

计数器1 双字节 方式3 十进制

计数器2 10 01 011 1 =97H

计数器2 单字节 方式3 十进制

MOV DX,0D0D3H;控制端口地址

MOV AL,37H

OUT DX,AL

MOV DX,0D0D0H;计数器0端口地址

MOV AL,20

OUT DX,AL

MOV DX,0D0D3H

MOV AL,57H

OUT DX,AL

MOV DX,0D0D1H;计数器1端口地址

MOV AL,00

OUT DX,AL

MOV AL,100

OUT DX,AL

MOV DX,0D0D3H;

MOV AL,97H

OUT DX,AL

MOV DX,0D0D2H

MOV AL,100

OUT DX,AL

6.2 规定8255并行接口地址为FFE0~FFE3H,试将其连接到8088系统总线上。

(1)、若希望8255的三个端口的24根线均为输出,且输出幅度和频率为任意的方波,试编程序;

(2)、若A/D变换器的引线及工作时序如图示,试将此A/D转换器与8255相连接,并编写包括初始化程序在内的、变换一次数据并将数据存放在DATA中的程序;

解:根据题目所给的接口地址,其电路连接如下:

(1)、根据8255的方式字格式,三个端口全都工作在

方式0 输出,故为1 00 0 0 0 0 0B= 80H

所以有如下的初始化:

MOV DX,FFE3H;

MOV AL,80H;

OUT DX,AL;

用8255输出幅度任意的方波是不可能的,所以后续问题无解。

(2)、8255的初始化包括:工作方式0、A口输入、B口输出、C口低四位输出、C口高四位输入,且在程序开始时,使PC0、PC1为低电平。所以 控制字应为:1 00 1 1 0

0 0B= 98H

据此写下以下程序:

MOV DX,FFE3H; 8255 控制寄存器地址

MOV AL,98H; 工作方式控制字

OUT DX,AL; 写入8255

MOV DX,FFE2; 8255C口

MOV AL,0;

OUT DX,AL; 使使PC0、PC1为低电平

数据采集部分采用查询方式,程序以过程的方式书写如下:

AD0809 PROC NEAR

PUSH AX

PUSH BX;

PUSH DX;

PUSH SI; 断点保护

MOV DX, SEG ADATA;转换数据存储区段地址

MOV DS,DX;

MOV SI, OFFSET ADATA;转换数据存储区偏移地址

XOR BX,BX;

MOV BL,08; 模拟输入通道数

BEGIN: MOV DX,FFE1H;8255B口—模拟通道选择

MOV AL,BL;

OUT DX,AL; 选择模拟输入通道

MOV DX,FFE2H;8255C口地址

MOV AL,01H;

OUT DX,AL;

MOV AL,00H;

OUT DX,AL; 输出开始转换脉冲START

CHANGE:IN AL,DX; 读C口,查询EOC信号

TEST AL,10H; 检测 PC4

JZ CHANGE; EOC无效则等待

MOV AL,02H;

OUT DX,AL; 发送OE脉冲

MOV DX,FFE0H; 8255A口

IN AL,DX;读转换数据

MOV [SI],AL; 存入数据区

MOV DX,FFE2H;

MOV AL,0

OUT DX,AL; 取消OE信号

INC SI; 移动数据区指针

INC BL; 选择下一个通道

MOV AL,08H

CMP AL,BL

JNZ BEGIN

POP SI

POP DX

POP BX

POP AX

RET

AD0809 ENDP

6.3 说明8253的六种工作方式。若加到8255上的时钟频率为0.5Mhz,则一个计数器的最长定时时间是多少?若要求每10分钟产生一次定时中断,试利用8253 提出解决方案。