《微机原理与接口技术》(第四版)周何琴课后习题答案 下载本文

(3)在微机系统中,利用总线实现芯片内部、印刷电路板各部件之间、机箱内各插件板之间、主机与外部设备之间或系统与系统之间的连接与通信。总线是构成微型计算机应用系统的重要技术,总线设计好坏会直接影响整个微机系统的性能、可靠性、可扩展性和可升级性。

第7章作业 P281

6. 如果中断类型号n=4,它的中断服务子程序的入口地址为CS:IP=0485:0016H,它在中断向量表中如何存放? 解:

中断类型号n=4,中断向量指针=中断类型号×4=n×4=10H

从内存中断向量指针00010H开始的单元开始存放中断向量, CS占高2个字节, IP占低2个字节。具体如下:

00010H 00011H 00012H 00013H

11. 8086中断响应和处理有哪些主要步骤? 答:

(1)CPU响应中断的条件为:外设提出中断申请,CPU允许中断(本中断位未被屏蔽,本中断位优先级别最高),当前指令执行完。

(2)CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,本中断位未被屏蔽,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在INTA引脚连续发两个负脉冲,第一个负脉冲用来通知外设,CPU准备响应中断,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到这个中断类型码后,CPU做如下动作:

① 将中断类型码放入暂存器保存; ② 将标志寄存器内容压入堆栈; ③ 将IF和TF标志清0; ④ 保护断点;

⑤ 根据取到的中断类型码,计算中断向量指针,在中断向量表中找出相应的中断向量,将其装入IP和CS,即自动转向中断服务子程序;

⑥ 中断返回。 第8章 作业 P253

1. 8253芯片有几个计数通道?每个计数通道可工作于哪几种工作方式?这些操作方式的主要特点是什么? 答:

(1)8253芯片有3个计数通道。

(2)每个计数通道均可工作于6种工作方式。方式1—可重复触发的单稳态触发器,方式2—自动重装初值的N分频器,方式 3 —方波发生器,方式4—软件触发的选通信号发生器,方式5—硬件触发的选通信号发生器。

输出波形:0、1 单稳输出,2、4、5 为单次负脉冲,3 为方波。2、3 为连续波形,其余为不连续波形;1、5 可硬件重复触发。

初始电平:写入控制字,只有0为低电平,其余均为高电平;写入初值,在GATE有效的情况下(计数期间),0、1为低电平,2、3、4、5均为高电平。

16H 00H 85H 04H 37

触发方式:

0、4为电平触发,上升沿继续。0是GATE=0停止计数, GATE再次为1,从中止处继续。4是GATE=0停止, GATE再次为1,从原装初值开始计数。

1、5为边沿触发,计数过程中再次出现GATE上升沿,计数器按原装初值开始计数。

2、3为电平触发,上升沿有效,GATE=0停止计数,计数过程中再次出现GATE上升沿,计数器按原装初值开始计数。

计数过程重新写入初值:

0、4----在GATE=1时,立即按新初值开始计数。

1、5----不影响目前的计数,只有在GATE再次出现上升沿时,按新初值开始计数。

2、3----不影响本次输出,本次计数结束后,若GATE=1,(重装新初值)按新初值开始计数。 自动重装能力:2、3 具有自动重装能力(其余没有),可输出连续的波形。 可重复触发能力:1、5具有可重复触发能力(其余没有)。

2. 8253的最高工作频率是多少?8254与8253的主要区别是什么?

解:8253的最高工作频率是2MHz。8254是8253的增强型产品,引脚兼容,功能几乎完全相同,其主要区别在于:

(1)8253的最高工作频率是2MHz,而8254的最高工作频率是10MHz;

(2)8254具有读回功能,可以同时锁存1----3个计数器的计数值及状态值,供CPU读取,而8253每次只能锁存和读取一个通道的计数器,且不能读取状态值。

4. 设8253的通道0----2和控制口的地址分别为300H、302H、304H、306H,设系统的时钟脉冲频率为2MHz。要求:

(1)通道0输出1KHz的方波;

(2)通道1输出频率为500Hz的序列负脉冲; (3)通道3输出单脉冲,宽度为400μs。 试画出硬件电路图,编写各通道的初始化程序。

解:8253的口的地址分别为300H、302H、304H、306H,连续的偶地址,说明CPU为8086.

(1)通道0输出1KHz的方波,应工作在方式3。2MHz/1KHz=2000,则可得通道0的定时初值为2000。 (2)通道1输出频率为500Hz的序列负脉冲,应工作在方式2。2MHz/500Hz=4000, 通道1的定时初值=4000

(3)通道2输出单脉冲,宽度为400μs,应工作在方式0 , 通道2的定时初值=400μs/(1/ 2MHz)-1=799。 硬件连结图如下图所示。

38

8253的初始化程序: ;通道0初始化程序

MOV DX,306H

MOV AL,00110111B ;通道0控制字,读写两字节,方式3,BCD码计数 OUT DX, AL MOV DX,300H

MOV AL, 00H OUT DX, AL ;写人低字节 MOV AL, 20H

OUT DX, AL ;写人高字节 ;通道1初始化程序

MOV DX,306H

MOV AL,01110101B ;通道1控制字,读写两字节,方式2,BCD码计数 OUT DX, AL ;写人方式字 MOV DX,302H

MOV AL, 00H ;低字节 OUT DX,AL ;写人低字节 MOV AL, 40H

OUT DX, AL ;写人高字节 ;通道2初始化程序

MOV DX,306H

MOV AL, 10110001B ;通道2方式字,读写两字节,方式0,BCD码计数 OUT DX,AL MOV DX,304H

MOV AL,99H ;计数初值字节 OUT DX,AL ;写人低字节

MOV AL, 07H

OUT DX, AL ;写人高字节 HLT

5. 设8254的端口地址为40----43H,时钟频率f=5MHz,通道2接1个LED指示灯。要求LED指示灯点亮4秒钟后,再熄灭4秒钟后。并不断重复该过程。试编写8254初始化程序。 解:

LED指示灯点亮4秒钟后,再熄灭4秒钟后。并不断重复该过程。利用通道2输出接LED指示灯,需要产生周期为8秒的方波。

将5MHz时钟加到CLK2端,OUT2输出的方波脉冲周期最大为0.2μs×65536=13107.2μs=13.1072ms,达不到8秒。此时可以使用2个8254通道级连方式来实现。若级连1、2通道,设其初值分别为N1和N2,8s/(1/5MHz) =40000000,则级连后作为一个整体的计数值为N=20000000=N1×N2=5000×8000。

通道1,可选方式2或3,

通道2,选方式3,连续波形,实现不断重复。 N1=5000 N2=8000 ;通道1初始化程序

MOV AL, 01110101B ;通道1方式字,读写两字节,方式2,BCD码计数 OUT 43H,AL

MOV AX, 5000H

OUT 41H,AL ;写人低字节

MOV AL, AH

OUT 41H, AL ;写人高字节 HLT

;通道2初始化程序

MOV AL,10110111B ;通道2控制字,读写两字节,方式3,BCD码计数 OUT 43H, AL

MOV AX, 8000H OUT 42H, AL ;写人低字节

39

MOV AL, AH

OUT 42H, AL ;写人高字节

14. 设8253的通道0----2和控制口的地址分别为300H、302H、304H、306H,定义通道0工作在方式3,CLK0=2MHz,使编写初始化程序,并画出硬件连接图。要求通道0输出1.5KHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲。通道2每秒钟向CPU发50次中断请求。 解:

8253的口的地址分别为300H、302H、304H、306H,连续的偶地址,说明CPU为8086.

(1)通道0输出1.5KHz的方波,应工作在方式3,2MHz/1.5K Hz=1334,则可得通道0的定时初值为1334=536H。

(2)通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,应工作在方式2, 1.5K Hz /300Hz =5。通道1的定时初值为5。

(3)通道2每秒钟向CPU发50次中断请求,可工作在方式2(或方式3),以2MHz信号作计数脉冲, 2MHz /50Hz=40000=9C40H。通道2的定时初值9C40H(也可用通道1的输出作计数脉冲) 硬件连结图如下图所示。

8253的初始化程序: ;通道0初始化程序

MOV DX,306H

MOV AL,00110110B ;通道0控制字,读写两字节,方式3,二进制计数 OUT DX, AL MOV DX,300H

MOV AX, 536H OUT DX, AL ;写人低字节 MOV AL, AH

OUT DX, AL ;写人高字节 ;通道1初始化程序

MOV DX,306H

MOV AL,01010100B ;通道1控制字,只读写低宇节,方式2,二进制计数 OUT DX, AL ;写人方式字 MOV DX,302H

40