第1次作业参考答案
1、接口技术的基本任务是什么?
答:微机接口的基本任务有两个:一是实现I/O设备与总线的连接;二是连接起来以后,CPU通过接口对I/O设备进行访问,即操作或控制I/O设备。如何连接是硬件方面的任务,怎样访问是软件方面的任务。
2、接口芯片的编程模型方法是什么?采用编程模型方法对分析与应用微机系统的硬件资源有什么意义?
答:编程模型是指接口芯片或接口模块内部可访问的寄存器及其命令、状态、数据格式和分配给寄存器的端口地址3个元素。了解与掌握了一个芯片这3个方面的内容,也就可以利用它进行接口的软件设计了,因此,编程模型也叫芯片的软件模型。
编程模型方法的实质是强调对硬件对象的应用,而不在意其内部结构,这大大简化了对硬件对象复杂结构的了解,而又不失对硬件的应用。
3、什么是接口?阐述接口的功能。
答:接口是微处理器与外部设备之间的连接桥梁和信息交换的中转站。在实际应用中,人们总是利用接口来加入用户自己的设备或模块构成应用系统,可见接口技术是微机应用系统开发必不可少的关键技术。
接口功能:
(1)执行CPU命令
(2)返回外设状态
(3)数据缓冲与锁存
(4)信号转换
(6) 数据宽度与数据格式转换
(6)设备选择
4、什么是多总线技术?多总线层次化总线结构主要有哪几个层次?
答:多总线技术是指在一个微机系统中同时存在几种性能不同的总线,并按其性能的高低分层次构成总线系统的技术。
多总线层次化总线结构主要有三个层次。分别是PCI总线,CPU总线和本地总线。
5、如何实现在PCI总线系统中查找一个PCI设备?
答:要查找PCI设备,其实就是查找PCI设备的配置空间头区域,也就是确定配置空间头区域在系统中的基地址。
需要使用两个32位I/O端口寄存器。一个叫配置地址寄存器(I/O地址为0CF8H~0CFBH),另一个叫配置数据寄存器(I/O地址为0CFCH~0CFFH),通过这两个32位端口寄存器来搜索要访问的目标PCI设备。
第一步,执行一次对32位配置地址寄存器写操作,将0号总线,0号设备(若是多功能设备,则为0号功能)作为初始值写到32位配置地址寄存器。
第二步,执行一次对32位配置数据寄存器的读操作,检查读取的值是不是目标设备,若是,则找到了目标设备;若不是,则改变配置地址寄存器的设备号,再写入配置地址寄存器,然后再读取配置数据寄存器,以此循环下去,直至获得要找的PCI设备
第2次作业参考答案
1、完成教材P45的8
微机系统的I/O端口地址译码有哪几种译码方法?各用在什么场合?
答:① 全译码:所有I/O地址线全部作为译码电路的输入参加译码。一般在要求产生单个端口时采用,在台式PC微机中很少使用。
②部分译码:I/O地址线分为高位地址和低位地址分别用来在芯片间寻址和芯片内寻址(接口芯片中的寄存器寻址)。低位地址线的根数取决于接口中寄存器的个数。一般在多个端口地址译码时采用。
③ 开关式译码:在部分译码方法的基础上,加上地址开关来改变端口地址。一般在要求I/O端口地址需要改变时采用。
2、完成教材P45的18
要求在教材例3.4中,将I/O地址范围从300H~31F改为340H~34FH,其他不变,此时GAL器件输入源文件中的逻辑表达式应如何改写?(可参考例3.4)
答:
分析:根据所需输入线和输出线的数目,来选用GAL器件的型号。
① GAL的输入线
根据题目的要求,参加译码的有地址线和控制线,从地址范围340H~34FH可知,10根地址线取值如下所示:
(11 0100 0000~11 0100 1111)
00 | A9 A8 A7 A6 A5A4 | A3 A2 | A1 A0 |
00 | 1 1 0 1 0 0 | Ix Ix | ? ? |
10位地址线的设置是:高6位地址为A9=A8=1,A7=0,A6=1,A5=A4=0,固定不变,保证起始地址340H;中间两位地址A3、A2(IxIx)由GAL内部译码,产生4个片选;最低两位地址A1A0(??)不参加译码,由接口芯片内部产生4个端口。
GAL16V8的编程输入源文件如下:
/Y0=A9*A8*/A7*A6*/A5*/A4*/A3*/A2*/AEN*/IOR+
A9*A8*/A7*A6*/A5*/A4*/A3*/A2*/AEN*/IOW
/Y1=A9*A8*/A7*A6*/A5*/A4*/A3*A2*/AEN*/IOR+
A9*A8*/A7*A6*/A5*/A4*/A3*A2*/AEN*/IOW
/Y2=A9*A8*/A7*A6*/A5*/A4*A3*/A2*/AEN*/IOR+
A9*A8*/A7*A6*/A5*/A4*A3*/A2*/AEN*/IOW
/Y3=A9*A8*/A7*A6*/A5*/A4*A3*A2*/AEN*/IOR+
A9*A8*/A7*A6*/A5*/A4*A3*A2*/AEN*/IOW
每个表达式的右边都是两个与或式,而前后两个与式中的不同在于读项和写项的差别,前者是读有效(/IOR=0),后者是写有效(/IOW=0),这表示该端口既可读又可写。
总结:
从上述分析与设计可得出如下结论。
由/Y0~/Y3产生4个接口芯片的片选信号,再加上不参加译码的最低2位,从00~11的变化,可得:/Y0=340H~343H,/Y1=344H~347H,/Y2=348H~34BH,/Y3=34CH~34FH。
3、定时常数或计算初值有什么作用?如何计算82C54A的定时常数?
答:定时常数是决定82C54A的计数多少和定时长短重要参数。
由于82C54A内部采用的是减法计数器,因此,在它开始计数或定时之前,一定要根据计数/定时的要求,先计算出计数初值/定时初值,装入计数初值寄存器。
计算方式:
(1)要求产生定时时间间隔的定时常数TC
TC=要求定时的时间/ 时钟脉冲周期=t*CLK
(2)要求产生频率为f的信号波形的定时常数
TC=时钟脉冲的频率/ 要求的波形频率=CLK / f
4、设系统外接一片82C54A,口地址未280H~283H,GATA0接+5V,CLK0接入的输入计数脉冲信号为5MHz,要求在OUT0D端输出频率为2000Hz的脉冲信号,采用BCD计数方式,请完成下列程序段。
MOV DX,(1) 283H ;命令口
MOV AL,(2) 35H ;方式命令字
OUT DX,AL ;写控制字
MOV DX,(3) 280H ;0号计数器数据口
MOV AX,(4) 2500H ;计数初值(BCD码)
(5) OUT DX,AL
(6) MOV AL,AH
(7) OUT DX,AL ;写计数初值
第3次作业参考答案
一、填空题
1、中断传输用于传输总线中的 中断信号 相关数据。
2、接口芯片中控制信号
CS的意义是 片选 。
3、
IOR的意义是 读端口 。
4、
IOW的意义是 写端口 。
5、接口芯片中数据总线缓冲器的作用是 使快速CPU和慢速外设协调工作 。
6、中断排队方式包括 按优先级排队 和循环轮流排队。
7、中断服务程序的入口地址由服务程序的 段基址CS 和偏移地址IP两部分组成。
8、82C59A芯片的中断结束方式包括自动结束方式和非自动结束方式。
二、简答题
1、请简述中断控制器82C59A的初始化编程步骤?
答:具体步骤如下:
- 送ICW1命令到20H端口地址,用于定义触发方式,单片/多片使用,是否需要写ICW4
2)送ICW2命令到21H端口地址,确定中断号的高五位,具体命令格式如下图。
3)如果采用多片级联方式,则定义主片和从片的IR引脚编号,送到20H端口地址,具体命令格式如下图。如果没有级联直接进入第四步。
4)如果需要ICW4,则定义中断方式,嵌套方式缓冲方式和系统位数,具体命令格式如下图。如果不需要,则跳到第五步。
完整的流程图:
2、如果8259A中断控制器下列寄存器内容都为20H,请指出各寄存器内容的意义:
①中断请求寄存器(IRR)=20H
答:8位,以逻辑1记录已经提出中断请求的中断级,等待CPU响应。当提出中断请求的外设产生中断时,由82C59A置位,直到中断被响应才自动清零。
由于IRR=20H=00100000B,也就是IR5置1。
IRR=20H表示IR5引脚连接的中断源请求中断。
②中断屏蔽寄存器(IMR)=20H
答:IMR是对中断请求IR起屏蔽作用,即对中断请求IR允许还是不允许,屏蔽寄存器8位对应8级中断屏蔽。哪一级中断被屏蔽,哪位就写“1”,即禁止IR提出中断请求。哪一级中断被允许,哪位就写“0”,即开放IR提出中断请求。
IMR=20H表示IR5中断被屏蔽,其它中断被允许。
③中断服务寄存器(ISR)=20H
答:在中断响应之后,获准中断请求的中断级在相应的ISR中置1。例如,IR3获准,则ISR中的IS3置1,表明IR3正处于服务。这些置1的位保持,直到中断服务程序中发中断结束命令才能清0。
ISR=20H表示当前CPU正在为IR5中断源服务。
第4次作业参考答案
1.设8255A接到系统中,端口A、B、C及控制口地址分别为304H、305H、306H及307H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后从端口A输出。
答:8255A的命令字格式:
由于这是使用方式命令,D7=1,A组方式为0方式,故D6D5=00,从A端口输出D4=0,从C端口输出D3=0,D0=0,B组方式为0方式,故D2=0,从B端口输入D1=1,综上,命令为10000010B。
MOV DX, 307H
MOV AL,10000010B;B端口输入
OUT DX, AL ;送控制字
MOV DX, 305H
IN Al, DX ;读端口B
MOV DX, 306H
OUT DX, AL;从端口C输出
XOR AL, 0FFH;将AL寄存器内容取反
MOV DX, 304H;从端口A输出
OUT DX, AL
2、下图中,AD7~AD0为8086/8088CPU低八位地址总线。
试分析,8259A占用了几个端口地址,分别是什么?其中ICW1的地址是什么?
答:8259A占2个端口地址。
端口地址:20H,22H或24H,26H
其中ICW1的地址:20H或24H
分析:当/Y1=0,3选中8259A。
若/Y1=0,首先应有:AB0=0;
以及:AB7=0;AB6=1;AB5=0;AB4=0;AB3=0;
AB2=X;没有用上,可以任意为0或1
AB1=0(A0=0):8259的偶地址
AB1=1(A0=1):8259的奇地址
偶地址为:AB7~AB0=0010 0X00 = 20H 或24H
奇地址为:AB7~AB0=0010 0X10 = 22H 或26H
其中ICW1的地址是偶地址:20H或24H。
第5次作业参考答案
一、填空题
1、下列关于中断系统功能说法错误的是(C)
A.对中断请求具有屏蔽和开放功能
B.具有中断的响应和返回
C.不能实现中断的嵌套
D.具有“中断级别”的判断和控制功能
2、为了提高程序的执行速度,充分使用总线,8086微处理器被设计为两个独立的功能部件,分别是(C)
A.运算器和控制器
B.运算器和寄存器组
C.总线接口单元BIU和执行单元EU
D.总线接口单元BIU和控制器
3、堆栈操作的原则是(A)
A.先进后出的原则
B.存多少取多少的原则
C.栈指针以下(对向下生成的栈)为无效栈顶的原则
D.只进不出的原则
4、I/O接口电路通常具有(C)端口。
A.数据输入、数据输出、命令端口
B.数据输入、数据输出、状态端口
C.数据端口、命令端口、状态端口
D.数据端口、控制端口、命令端口
5、中断向量是指(C)。
A.被选中设备的起始地址
B.传送数据的起始地址
C.中断服务程序的入口地址
D.程序的断点地址
二、综合题
1、采用AD570通过82C55A与CPU接口,82C55A的端口地址为300H~303H,完成用查询方式采集250个数据,送到2000H开始的存储单元存储。绘制电路连接图(AD570的4种主要信号线都要标出)。
绘制电路连接图:
按图示接法,AD570的数据线接到8255A的A口,转换结束信号DR和PB0相连,启动信号B/C接PC0 ,这样A口、B口工作在方式0输入, C口工作在输出方式。
代码:
MOV DX,303H;8255A命令口地址
MOV AL,92H;方式字10010010,0方式端口A,B为输入,C为输出
OUT DX,AL;DX为控口地址,设方式字
MOV DX,302H;8255A C口地址
MOV AL,01H
OUT DX,AL;使PC0为1
MOV AX,2000H;内存数据区的段址
MOV ES,AX
MOV BX,00H;偏移地址
MOV CX,250;采样次数
AGN:MOV AL,00H
OUT DX,AL;使PC0为0
WAT:MOV DX,301H;8255A B口地址
IN AL,DX
RCR AL,01 ;如PB0为1,则再查询
JC WAT
MOV DX,300H;8255A数据口
IN AL,DX
MOV ES:[BX],AL
MOV DX,303H
MOV AL,01
OUT DX,AL;使PC0为1,撤销启动信号
INC BX;内存地址加1
LOOP AGN
MOV AX,4C00H
IN 21H
2、判断如下的存储器的读时序图是否正确,如不正确,请说明并改正
错误:该存储器读时序图存在错误,片选信号成低电平时间应当早于存储器数据有效时间,片选失效时间也应该在数据稳定后。
改正:
读操作时,必须保证片选信号为低电平,读写信号为高电平。
tRC(读周期时间):指对芯片连续两次读操作之间的最小间隔时间。
tA (读出时间):从给出有效地址后,经过译码电路、驱动电路的延迟,到读出所选单元内容,并经I/O电路延迟,直到数据在外部数据总线上稳定出现所需的时间。显然,读出时间小于读周期时间。
tCX(片选到数据输出有效时间):从片选有效到数据开始出现在数据总线上的间隔时间。
tOTD:片选无效后数据还需在数据总线上保持的时间。
tOHA:地址失效后,数据线上的有效数据维持时间,以保证所读数据可靠。
第6次作业参考答案
1、假设在一个系统中,8255A的端口地址为184H-187H,A口工作于方式1输出,B口工作于方式1输入,禁止中断,C口剩余的两根线PC5,PC4位输入,如下图所示,试编写初始化程序。
答:
MOV AL,0AEH;方式一,A口输出
MOV DX,187H;控制口地址
OUT DX,AL
MOV AL,0DH
OUT DX,AL;A口允许中断
MOV AL,04H
OUT DX,AL;B口禁止中断
2、已知电路图如下图所示。图中数码管为共阳极类型,数码管的阴极a,b,c,d,e,f,g,Dp依次接至8255的PA0,PA1,…,PA7。
(1)若要数码管的a段发光,则应从8255的PA0输出高电平还是低电平?
答:PA0输出低电平。
共阳极数码管是将所有发光二极管的阳极接在一起作为公共端COM,当公共端接高电平时,某一段阴极上的电平为“0”时,该段点亮,电平为“1”时,该段熄灭。
由于题中数码管采用的是共阳极:阳极连在一起,接高电平,对每只阴极加不同的电平,阴极加低电平点亮,加高电平熄灭。a点亮,所以PA0输出低电平。
(2)若要数码管显示数字0,则应从8255的PA口送出字形码为多少?
由此可知,若要数码管显示数字0,则p和g需要熄灭。
Dp | g | f | e | d | c | b | a |
PA7 | PA6 | PA5 | PA4 | PA3 | PA2 | PA1 | PA0 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
应从8255的PA口送出字形码为C0H。
(3)写出8255的PA口和PC口的地址。
由图可知,CS连接Y2(010),A9连接E3,A8连接/E2,A7连接/E1.
A9 | A8 | A7 | A6(C) | A5(B) | A4(A) | A3 | A2 | A1 | A0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | X | X |
A1A0=00,代表A端口地址
A1A0=01,代表B端口地址
A1A0=10,代表C端口地址
A1A0=11,代表控制字寄存器端口地址
故PA口地址:220H,PC口地址:222H