微机原理第6710章习题及解答.docx

上传人:b****3 文档编号:4875608 上传时间:2022-12-11 格式:DOCX 页数:23 大小:87.93KB
下载 相关 举报
微机原理第6710章习题及解答.docx_第1页
第1页 / 共23页
微机原理第6710章习题及解答.docx_第2页
第2页 / 共23页
微机原理第6710章习题及解答.docx_第3页
第3页 / 共23页
微机原理第6710章习题及解答.docx_第4页
第4页 / 共23页
微机原理第6710章习题及解答.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

微机原理第6710章习题及解答.docx

《微机原理第6710章习题及解答.docx》由会员分享,可在线阅读,更多相关《微机原理第6710章习题及解答.docx(23页珍藏版)》请在冰豆网上搜索。

微机原理第6710章习题及解答.docx

微机原理第6710章习题及解答

 

第7章接口技术

习题解答

1.填空题

(1)8255A内部包括两组控制电路,其中A组控制______的工作方式和读写操作,B组控制______的工作方式和读写操作。

(2)8255A的端口A工作于方式2时,使用端口C的______位作为与CPU的外部设备的联络信号。

(3)当8255A的端口A和端口B均工作于方式1输出时,端口C的PC4和PC5可以作为_____使用。

(4)8255A的端口A工作于方式2时,端口B可以工作于______。

(5)8255A中,可以按位进行置位/复位的端口是______,其置位/复位操作是通过向______口地址写入_______实现的。

(6)8251A工作在同步方式时,最大波特率为______;工作在异步方式时,最大波特率为______。

(7)8251A工作在异步方式时,每个字符的数据位长度可以是______,停止位长度可以是______。

(8)8251A从串行输入线接收到一个字符后,将信号______置为有效。

(9)8251A工作在同步方式时,同步检测引脚SYNDET可以作为输入或者输出信号使用。

若工作在外同步方式,该引脚作为______;若工作在内同步方式,该引脚作为______。

(10)8253工作于方式0下,控制信号GATE变成低电平后,对计数器的影响是______。

【解】

(1)端口A、端口C高4位(PC7~PC4)

端口B、端口C低4位(PC3~PC0)

(2)PC3~PC7

(3)

(端口A的选通输入信号)、IBFA(输入缓冲器满信号)

(4)方式0或方式1

(5)端口C;控制;控制字

(6)64Kbit/s;19.2Kbit/s

(7)5、6、7、或8位;1个、1.5或2位

(8)RXRDY

(9)输入端;输出端

(10)计数暂停

2.已知8255A的端口A、B、C和控制口地址分别为120H、122H、124H和126H,试按下列要求设计初始化程序:

(1)将端口A和端口B设置成方式0,端口A、端口C作为输出口,端口B作为输入口。

(2)将端口A设置成方式2,端口B设置成方式1,端口B作为输出口。

(3)将端口A和端口B均设置成方式1的输入状态,且PC6、PC7设置成输出位。

【解】

(1)方式选择控制字的内容:

82H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

0

0

1

0

控制字标志

端口A设置成方式0

端口A为输出口

端口C(7-4)作为输出口

端口B设置成方式0

端口B为输入口

端口C(3-0)作为输出口

初始化程序:

MOVAL,82H;方式选择控制字送AL

OUT126H,AL;方式选择控制字输出给8255A控制端口

(2)方式选择控制字的内容:

0C4H

D7

D6

D5

D4

D3

D2

D1

D0

1

1

×

×

×

1

0

×

控制字标志

端口A设置成方式2

端口B设置成方式1

端口B为输出口

初始化程序:

MOVAL,0C4H;方式选择控制字送AL

OUT126H,AL;方式选择控制字输出给8255A控制端口

(3)方式选择控制字的内容:

0B6H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

1

0

1

1

×

控制字标志

端口A设置成方式1

端口A为输入口

端口C(7-4)作为输出口

端口B设置成方式1

端口B为输入口

初始化程序:

MOVAL,0B6H;方式选择控制字送AL

OUT126H,AL;方式选择控制字输出给8255A控制端口

3.某一外部输入设备,当它准备好一个数据时,那个发出一个数据准备好的状态信号READY(高电平有效)。

当CPU把数据取走后,要求CPU通过

线向外设发一负脉冲,以便外设清除READY信号。

试用8255A作为接口芯片,分别用查询和中断方式从外设读入100个数据,将其存入从DAT_BEG开始的内存区。

要求:

画出8255A与外设之间的连线,并进行编程。

【解】

(1)用查询方式从外设读入数据时,8255A与外设之间的连线如图8-30所示,使用端口C传送控制和状态信息。

图8-308255A与外设之间的连线

方式选择控制字的内容:

91H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

1

0

×

×

1

控制字标志

端口A设置成方式0

端口A为输入口

端口C(7-4)作为输出口

端口B

端口B

端口C(3-0)作为输入口

设在系统中8255A的端口地址为:

端口A:

00E0H端口B:

00E2H端口C:

00E4H控制口:

00E6H

读入数据的程序:

DATASEGMENT;数据段开始

DAT_BEGDB100DUP(?

DATAENDS;数据段结束

CODESEGMENT;代码段开始

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;装填数据段

LEABX,DAT_BEG;传送变量的地址

MOVAL,91H;方式控制字送AL

OUT0E6H,AL;方式控制字写入8255A控制口

MOVAL,09H;用置位方式使PC4=1

OUT0E6H,AL;使

为高

MOVCX,9

RDLP:

INAL,0E4H;读入端口C的内容(READY信号)

ANDAL,04H

JZRDLP;未准备好,则等待

INAL,0E0H;已准备好,则从端口A输入数据

MOV[BX],AL;将输入数据保存到内存中

INCBX

MOVAL,08H;用置位方式使PC4=0

OUT0E6H,AL;使

为低

CALLDELAY;一段定时程序,形成负脉冲

MOVAL,09H;用置位方式使PC4=1

OUT0E6H,AL;使

为高

LOOPRDLP

MOVAH,4CH

INT21H;返回DOS

DELAYPROC;定义延时子程序

MOVCX,100;向CX中送延时常数,决定延时的时间

DELAY2:

NOP

LOOPDELAY2

RET

DELAYENDP;定义延时子程序结束

CODEENDS;代码段结束

ENDSTART;源程序结束

(2)用中断方式从外设读入数据时,8255A与外设之间的连线如图8-31所示,使用端口C传送控制和状态信息。

将PC3连到8259A的中断请求信号输入端IR3,其对应的中断类型号为0BH,由于0BH×4=002CH,所以应该将中断向量写入0000:

002CH开始的4个单元中。

假设8259A在系统程序中已经完成初始化。

方式选择控制字的内容:

0B0H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

1

×

×

×

×

控制字标志

端口A设置成方式1

端口A为输入口

端口C

端口B

端口B

端口C

设在系统中8255A的端口地址为:

端口A:

00E0H端口B:

00E2H端口C:

00E4H控制口:

00E6H

图8-318255A与外设之间的连线

读入数据的程序:

DATASEGMENT;数据段开始

DAT_BEGDB100DUP(?

DATAENDS;数据段结束

CODESEGMENT;代码段开始

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;装填数据段

MOVAL,0B0H;方式控制字送AL

MOVAL,0BH;用置位方式使PC5=1

OUT0E6H,AL;使

为高

MOVAX,0

MOVES,AX;ES为0,指向中断向量表

MOVAX,0100H;取中断服务子程序入口地址偏移量

MOVES:

[002CH],AX

MOVAX,3200H;取中断服务子程序入口地址段值

MOVES:

[002EH],AX

MOVAL,0DH

OUT0E6H,AL;置8255A之INTEA=1,允许端口A中断

STI;8086CPU开放中断

中断服务子程序如下:

PUSHAX

PUSHBX

LEABX,DAT_BEG;传送变量的地址

INAL,0E0H;已准备好,则从端口A输入数据

MOV[BX],AL;将输入数据保存到内存中

INCBX

MOVAL,0AH;用置位方式使PC4=0

OUT0E6H,AL;使

为低

DELAY:

MOVCX,100;向CX中送延时常数;一段延时程序,形成负脉冲

DELAY1:

LOOPDELAY1

MOVAL,0BH;用置位方式使PC4=1

OUT0E6H,AL;使

为高

POPBX

MOVAL,20H;向8259A发EOI

OUT20H,AL

POPAX

STI

IRET;中断返回

4.试用8255A和8253芯片配合,设计一个交通信号自动控制系统。

设计要求如下:

(1)在某一南北方向和东西方向的十字路口,每个方向都有红、黄、绿三色信号灯,如图8-79所示。

要求信号灯按下列规则变化:

首先使某一方向绿灯亮,另一方向红灯亮。

当出现下述情况之一时,开始变灯:

其一是红灯已亮30s;其二是红灯路口停留的车辆已达5辆。

变灯遵循的规律:

首先使绿灯闪烁5s(注:

0.5s灭,0.5s亮,重复5次),接着绿灯灭、黄灯亮,黄灯亮5s后,使得黄灯灭、红灯亮,紧接着使另一方向的红灯变为绿灯。

在一个方向由绿灯变红灯的过程中,另一方向的红灯保持不变。

(2)画出硬件框图,编写控制程序。

提示:

用8253来实现定时和检测车辆。

用8255A某一端口的6根线控制交通灯。

对于检测车辆,假设另有传感器电路配合,此传感器电路每当有一辆车时会发出一个脉冲信号。

【解】用8255的端口A的6根线控制交通灯:

(输出1时灯亮)

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

未用

未用

东西红灯

东西黄灯

东西绿灯

南北红灯

南北黄灯

南北绿灯

设8253的端口地址分别为:

0D0H(端口A),0D2H(端口B),0D4H(端口C),0D6H(控制口)。

设8255的端口地址分别为:

1E0H(通道0),1E2H(通道1),1E4H(通道2),1E6H(控制口)。

硬件框图如图8-32所示。

图8-32交通灯控制硬件框图

8253方式选择控制字的内容:

82H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

×

0

1

×

控制字标志

端口A设置成方式0

端口A为输出口

端口C

端口B设置成方式0

端口B为输入口

端口C

8255控制字的内容:

34H

计数初值:

0FFFFH(65535),使用8086的时钟信号(频率:

6MHz)

D7

D6

D5

D4

D3

D2

D1

D0

0

0

1

1

×

1

0

0

计数器0

读写16位

方式2

二进制

8255控制字的内容:

54H,计数初值:

46

D7

D6

D5

D4

D3

D2

D1

D0

0

1

0

1

×

1

0

0

计数器1

只读写低8位

方式2

二进制

8255控制字的内容:

90H,计数初值:

05H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

1

0

0

0

0

计数器2

只读写低8位

方式0

二进制

在程序中使用如下寄存器作为标志量:

BL:

最低位为0时,表示当前状态是“东西方向红灯亮”

最低位为1时,表示当前状态是“南北方向红灯亮”

BH:

红灯计时单元,初值为0,每0.5秒加1,值为60时,说明某一红灯已亮30秒。

DL:

绿灯闪烁计数单元,初值为0,每0.5秒加1,值为10时,说明某一绿灯已闪烁5秒。

DH:

黄灯计时单元,初值为0,每0.5秒加1,值为10时,说明某一黄灯已亮5秒。

CH:

绿灯闪烁时标志当前绿灯的状态,最低位为0时,表示当前状态是“灭”。

中断服务程序流程图如图8-33所示,初始化程序段如下:

MOVAL,82H;初始化8255

OUT0D6H,AL

MOVAL,34H;初始化8253

OUT1E6H,AL

MOVAL,54H

OUT1E6H,AL

MOVAL,90H

OUT1E6H,AL

MOVAL,FFH;8253通道0计数初值

OUT1E0H,AL

OUT1E0H,AL

MOVAL,46;8253通道1计数初值

OUT1E2H,AL

MOVAL,05H;8253通道2计数初值

OUT1E4H,AL

XORDX,DX;清各标志单元

XORBX,BX

MOVAL,21H

OUT0D0H,AL;设初始状态:

东西方向红灯亮,南北方向绿灯亮

MOVCH,01H;初始时,某一绿灯亮

STI;开中断

…………

中断服务程序如下:

INAL,0D2H

ANDAL,01H

JNZCHANGE;不为0,说明车辆计数≥5,转移到变灯处理

INCBH

CMPBH,60

JAECHANGE;≥60,转移到变灯处理

ANDBL,01H

JNZCHANG1;BL0=1,当前状态:

南北红灯亮

MOVAL,21H

OUT0D0H,AL;东西红灯亮,不变灯

JMPRETURN;中断返回

CHANG1:

MOVAL,0CH

OUT0D0H,AL;南北红灯亮,不变灯

JMPRETURN;中断返回

CHANGE:

INCDL;变灯处理开始

CMPDL,10

JAYELLO;绿灯已闪烁5秒,转移到变黄灯处理

ANDBL,01H

JNZGREEN1;BL0=1,当前状态:

南北红灯亮,转移

ANDCH,01H

JNZGREEN2;CH0=1,当前状态:

绿灯亮

MOVAL,21H

OUT0D0H,AL;南北绿灯亮,东西红灯亮(不变)

MOVCH,01H;改变绿灯亮的标志

JMPRETURN;中断返回

GREEN2:

MOVAL,20H

OUT0D0H,AL;南北绿灯灭,东西红灯亮(不变)

MOVCH,00H;改变绿灯亮的标志

JMPRETURN;中断返回

GREEN1:

ANDCH,01H

JNZGREEN3;CH0=1,当前状态:

绿灯亮

图8-33交通灯控制中断服务程序流程图

MOVAL,0CH

OUT0D0H,AL;东西绿灯亮,南北红灯亮(不变)

MOVCH,01H;改变绿灯亮的标志

JMPRETURN;中断返回

GREEN3:

MOVAL,04H

OUT0D0H,AL;东西绿灯灭,南北红灯亮(不变)

MOVCH,00H;改变绿灯亮的标志

JMPRETURN;中断返回

YELLO:

INCDH;黄灯亮处理开始

CMPDH,10

JAYELLO1;黄灯已亮5秒,转移到变红灯处理

ANDBL,01H

JNZYELLO2;BL0=1,当前状态:

南北红灯亮,转移

MOVAL,22H

OUT0D0H,AL;东西红灯亮,南北黄灯亮

JMPRETURN;中断返回

YELLO2:

MOVAL,14H

OUT0D0H,AL;南北红灯亮,东西黄灯亮

JMPRETURN;中断返回

YELLO1:

ANDBL,01H

JNZRED1;原状态:

南北红灯亮

MOVAL,0CH

OUT0D0H,AL;南北红灯亮,东西绿灯亮

JMPRED

RED1:

MOVAL,21H

OUT0D0H,AL;东西红灯亮,南北绿灯亮

RED:

ADDBL,01H;南北标志取反

XORDX,DX

XORBH,BH

MOVCH,01H

RETURN:

STI

IRET;中断返回

5.图8-80(见教材)是一个检测开关状态并控制相应的继电器通断的电路。

要求当开关S0~S7之一闭合时,使相应的继电器K0~K7之一吸合(即让驱动电流流过继电器线圈);若开关处于断开状态,则使相应的继电器释放。

系统每隔20ms应检测一遍开关状态,并对继电器做相应控制。

图中8255A的4个端口地址分别为2C0H、2C2H、2C4H和2C6H。

试完成:

(1)8255A的初始化编程(初始状态所有继电器的线圈均无电流通过)。

(2)设系统中具有一个2MHz的时钟信号源,另由一片8253来实现20ms的定时,每当20ms到时自动向CPU申请中断。

编写中断服务程序,并在其中完成开关的检测和继电器的控制。

【解】

(1)8255A的初始化编程:

8255A的方式选择控制字的内容:

82H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

×

0

1

×

控制字标志

端口A设置成方式0

端口A为输出口

端口C

端口B设置成方式0

端口B为输入口

端口C

初始化程序:

MOVAL,82H;方式选择控制字送AL

OUT2C6H,AL;方式选择控制字输出给8255A控制端口

MOVAL,00H;

OUT2C0H,AL;8255APA端口输出0,使所有继电器的线圈均无电流通过

(2)开关S0~S7之一闭合时,相应的PB0~PB7的输入为1;PA0~PA7输出高电平

(1)时,可以使相应的继电器K0~K7吸合;

中断服务程序:

PUSHAX

INAL,2C2H;从端口B输入数据

OUT2C0H,AL;从端口A输出数据

POPAX

STI

IRET;中断返回

6.设8086系统中有一片8251A芯片,其端口地址分别为130H和132H。

请按以下要求分别编出8251A的初始化程序:

(1)全双工异步方式通信,波特率系数为16,每个字符数据为7位,偶校验,1.5个停止位,传送过程错误不复位,且不使用调制解调器。

(2)全双工同步方式通信,每个字符数据为8位,不带校验,内同步,两个同步字符分别为EFH和FEH。

【解】

(1)8251A的方式选择控制字的内容:

0BAH

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

1

1

0

1

0

1.5个停止位

偶校验

每个字符数据为7位

波特率系数为16

初始化程序:

MOVAL,0BAH;方式选择控制字送AL

OUT132H,AL;方式选择控制字输出给8255A控制端口

(2)8251A的方式选择控制字的内容:

0CH

D7

D6

D5

D4

D3

D2

D1

D0

0

0

×

0

1

1

0

0

内同步,两个同步字符

无校验

每个字符数据为8位

同步方式

初始化程序:

MOVAL,40H

OUT132H,AL;复位8251A

MOVAL,0CH;方式选择控制字送AL

OUT132H,AL;方式选择控制字输出给8255A控制端口

MOVAL,0EFH

OUT132H,AL;写入第一个同步字符

MOVAL,0FEH

OUT132H,AL;写入第二个同步字符

7.两台计算机均利用8251A芯片进行串行通信,通信规则为:

一方进行发送、另一方进行接收的半双工异步通信方式,波特率系数取16,每个字符传送7位,奇校验,2个停止位。

试用查询方式实现串行通信,设计出逻辑电路图,并编写通信程序。

【解】

【解】逻辑电路图如图8-34所示,设8251A的口地址:

1A0H、1A2H。

图8-34两台计算机串行通信的逻辑电路图

8251A的方式选择控制字的内容:

0DAH

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0

1

1

0

1

0

2个停止位

奇校验

每个字符数据为7位

波特率系数为16

8251A的操作命令控制字(内部复位)的内容:

40H

D7

D6

D5

D4

D3

D2

D1

D0

0

1

0

0

0

0

0

0

使8251A退回到接受方式选择控制字状态

8251A的操作命令控制字(允许发送)的内容:

37H

D7

D6

D5

D4

D3

D2

D1

D0

0

0

1

1

0

1

1

1

请求发送

全部错误标志复位

正常工作

接收允许

数据终端准备好

允许发送

(1)发送程序

MOVDX,1A2H

MOVAL,00

OUTDX,AL;复位→方式命令→工作命令

MOVAL,40H

OUTDX,AL;内部复位(D6=1)

NOP

MOVAL,0DAH

OUTDX,AL;方式选择控制字输出给8251A控制端口

MOVAL,37H

OUTDX,AL;工作命令:

D0=1允许发送

MOVCX,2DH;发送字节数

MOVSI,300H;发送首址

L1:

MOVDX,1A2H

INAL,DX

ANDAL,01H;D0=1:

发送准备好

JZL1;发送状态(TXRDY)未准备好

MOVDX,1A0H

MOVAL,[SI]

OUTDX,AL;发送数据

INCSI

LOOPL1

MOVAX,4C00H

INT21H

8251A的操作命令控制字(允许接收)的内容:

14H

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

1

0

1

0

0

使全部错误标志复位

正常工作

接收允许

(2)接收程序

MOVDX,1A2H;复位→方式命令→工作命令

MOVAL,00

O

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1