文档库 最新最全的文档下载
当前位置:文档库 › 单片机考试题目库及答案

单片机考试题目库及答案

单片机考试题目库及答案
单片机考试题目库及答案

第一章

1-1选择

1.计算机中最常用的字符信息编码是( A )

A ASCII

B BCD码

C 余3码

D 循环码

4.以下不是构成的控制器部件(D ):

A 程序计数器、 B指令寄存器、 C指令译码器、 D存储器

6.下列不是单片机总线是( D )

A 地址总线

B 控制总线

C 数据总线

D 输出总线

7.-49D的二进制补码为 ( B )

A 11101111

B 11101101

C 0001000

D 11101100

8.十进制29的二进制表示为原码( C )

A 11100010

B 10101111

C 00011101

D 00001111

9. 十进制0.625转换成二进制数是( A )

A 0.101

B 0.111

C 0.110

D 0.100

1-2填空

1.计算机中常作的码制有原码、反码和补码

2.十进制29的二进制表示为00011101

3.十进制数-29的8位补码表示为11100011

4.单片微型机由CPU、存储器和I/O接口三部分组成.

5.若不使用MCS-51片内存器引脚EA必须接地.

7.十进制数-47用8位二进制补码表示为11010001

8.-49D的二进制补码为11101101

1-3判断

1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。(√)

2.MCS-51上电复位时,SBUF=00H。(×)。

3.使用可编程接口必须处始化。(√)。

5.MCS-51是微处理器。(×)不是。

6.MCS-51系统可以没有复位电路。(×)不可以。复位是单片机的初始化操作。

8.计算机中常作的码制有原码、反码和补码(√)

9.若不使用MCS-51片内存器引脚EA必须接地. (√)

10.十进制数-29的8位补码表示为.11100010(×)

1-4简答

1.何谓单片机?

答:单片机是在一块集成电路上把CPU、存储器、定时器/计数器及多种形式的I/O接口集成在一起而构成的微型计算机。

2 单片机主要应用在哪些领域?

答:单片机的应用范围很广泛,诸如智能化家用电器、仪器仪表、工业控制、计算机外部设备、智能机器人、电信及导航等方面。

4.控制器的组成和作用

答:控制器:由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成。用来协调指挥计算机系统的操作。

6.什么叫寻址方式

答:寻址方式:寻址方式就是寻找指令中操作数或操作数所在地址的方式。也就是如何找到存放操作数的地址,把操作数提取出来的方法。

7.什么叫堆栈:

答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。

第二章

2-1填空

1.微处器由寄存器、控制器和运算器三部分组成

2.当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了低8位地址

3.MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域.

4.MCS-51中凡字节地址能被_8整除的特殊功能寄存器均能寻址

5.MCS-51有4组工作寄存器,它们的地址范围是00H~1FH

6.MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址

7.计算机的系统总线有地址总线、控制总线和数据总线

9.80C51在物理有4个独立的存储空间。

2-2判断

1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。(√)

2.MCS-51的相对转移指令最大负跳距是127B。(×)

3.MCS-51的程序存储器只是用来存放程序的。(×)存放程序和表格常数。

5.使用可编程接口必须处始化。(√)。

6.当MCS-51上电复位时,堆栈指针SP=00H。(×)。 SP=07H

7.MCS-51外扩I/O口与外RAM是统一编址的。(√)。

10.MCS-51是微处理器。(×)不是。

11.MCS-51的串行接口是全双工的。(√)

12.PC存放的是当前执行的指令。(×)是将要执行的下一条指令的地址。13.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。(×)80H~FFH。14.MCS-51系统可以没有复位电路。(×)不可以。复位是单片机的初始化操作。

2-3选择

1.要想INT0引脚上的一个正脉冲宽度,那么特殊功能寄存器TMOD的内容应为( B ).

(A)09H (B)87 H (C)00H (D)80H

2.PSW=18H时,则当前工作寄存器是( D )

(A)0组(B)1组(C)2组(D)3组

3.控制串行口工作方式的寄存器是( C )

(A)TCON (B)PCON (C)SCON (D)TMOD

5.MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是( B )

(A) T1, (B)T0,T1 (C)T1,串行接口 (D) T0

2-4问答题

1 8051单片机内部包含哪些主要逻辑功能部件?

答:8051单片机是个完整的单片微型计算机。芯片内部包括下列硬件资源:

(1) 8位CPU;

(2) 4KB的片内程序存储器ROM。可寻址64KB程序存储器和64KB外部数据存储器;(3) 128B内部 RAM;

(4) 21个 SFR;

(5) 4个8位并行I/O口(共32位I/O线);

(6)一个全双工的异步串行口;

(7)两个16位定时器/计数器;

(8) 5个中断源,两个中断优先级;

(9)内部时钟发生器。

2 EA引脚有何功用?8031的引脚应如何处理?为什么?

答:EA是双功能引脚,功能如下:

(1)EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。(2)EA接低电平时,CPU只能执行外部程序存储器的指令。

8031单片机内部无ROM,必须外接程序存储器。因此,8031的EA引脚必须接低电平。

3 8051单片机存储器的组织结构是怎样的?

答:8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM地址空间;

(2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B 单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;

(3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。

4.片内数据存储器分为哪几个性质和用途不同的区域?

答:8051内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下:

(1) 00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。

(2) 20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。

(3)30H~7FH为堆栈、数据缓冲区。

5 单片机有哪几个特殊功能寄存器?各在单片机的哪些功能部件中?

答:8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数

学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在以下各个功能部件中:

(1) CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);

(2)中断系统:IP、IE;

(3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;

(4)并行I/O口:P0、P1、P2、P3;

(5)串行口:SCON、SBUF、PCON。

6 PC是什么寄存器?是否属于特殊功能寄存器?它有什么作用?

答:PC是16位程序计数器(Program Counter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。

7 DPTR是什么寄存器?它由哪些特殊功能寄存器组成?它的主要作用是什么?

答:DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH(数据指针高8位)组成,DPTR用于保存16位地址,作间址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。

第三章

3-1选择题

1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)

(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址

2 ORG 000BH

LJMP 3000H

ORG 0003H

LJMP 2000H

当CPU响应外部中断0后,PC的值是(B)

(A)0003H (B)2000H (C)000BH (D)3000H

4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)

(C) 2000H (B)2001H (C)2002H (D)2003H

5、51执行完MOV A,#08H后,PSW的一位被置位(D)

(A)(A)C (B)F0 (C)OV (D)P

6、下面条指令将MCS-51的工作寄存器置成3区(B)

(A)MOV PSW,#13H (B)MOV PSW,#18H

(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4

7、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是(C)

(A)/PSEN (B)ALE (C)/RD (D)/WR

8、MOV C,00H的寻址方式是(A)

(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址

9、ORG 0000H

AJMP 0040H

ORG 0040H

MOV SP,#00H

当执行完上面的程序后,PC的值是(C)

(A)0040H (B)0041H (C)0042H (D)0043H

10、对程序存储器的读操作,只能使用(D)

(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令

3-2判断题。

1. MCS-51的相对转移指令最大负跳距是127B。(错)128B

2.当MCS-51上电复位时,堆栈指针SP=00H。(SP=07H)(错)

3.调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。(错)子序的转返与PC也有关(PC入栈与出栈)

3-3简答题

1 简述MCS-51汇编语言指令格式。

答:MCS-51汇编语言格式如下:

[标号:]操作码助记符[操作数1] [操作数2] [操作数3][注释]标号是用户定义的符号,其值代表这条指令的地址。操作码助记符是指令系统规定的代表特定指令功能的英文缩写符。每条指令都有操作码记符。指令的操作数最多有3个,也有无操作数的指令。注释字段是用户对程序的说明,便于对程序的阅读和理解。

2 MCS-51指令系统主要有哪几种寻址方式?试举例说明。

答:MCS-51指令操作数主要有以下7种寻址方式:

寻址方式举例

立即寻址 MOV A,#16

直接寻址 MOV 20H,P1

寄存器寻址 MOV A,R0

寄存器间接寻址 MOVX A, @DPTR

变址寻址 MOVC A, @A+DPRT

相对寻址 SJMP LOOP

位寻址 ANL C,70H

3对访问内部RAM和外部RAM,各应采用哪些寻址方式?

答:对内部RAM的寻址方式有直接寻址、寄存器间接寻址和可对位寻址的位寻址。对外部RAM 的寻址方式只能用寄存器R0/R1(8位地址)或DPTR(16位地址)间接寻址。

4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?

MOV R0,#30H ;R0=30H

MOV A,@R0 ;A=5AH

MOV R1,A ;R1=5AH

MOV B,R1 ;B=5AH

MOV @R1,P1 ;(5AH)=7FH

MOV A,P1 ;A=7FH

MOV 40H,#20H ;(40H)=20H

MOV 30H,40H ;(30H)=20H

解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。

3-4编程题

2 片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256 ).

解ADDIO:MOV R0,30H

MOV R7,#9

MOV A,@R0

LOOP: INC R0

ADD A,@R0

DJNZ R7,LOOP

MOV 30H,A

RET

4 用查表法编一子程序,将R3中的BCD码转换成ASCII码.

解MAIN: MOV A,R3 ;待转换的数送A

MOV DPTR,#TAR ;表首地址送DPTR

MOVC A,@A+DPTR ;查ASCII码表

MOV R3,A ;查表结果送R3

RET

TAR DB 30H,31H,32H,33H,34H

DB 35H,36H,37H,38H,39H

5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.

解 START: MOV R0,#40H ;数据块首地址送R0

MOV R7,#09H ;比较次数送R7

MOV A,@R0 ;取数送A

LOOP: INC R0

MOV 30H,@R0 ;取数送30H

CJNE A,30H,NEHT ;(A)与(30H)相比

NEXT: JNC BIE1 (A)≥(30H)转BIR1

MOV A,30H ;(A)<(30H),大数送A

BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较

MOV 50H,A ;比较结束,大数送50H

RET

第四章

4-1填空

3.设计8031系统时, P0、P2 口不能用作一般I/O口.

4.MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择.

5.当使用慢速外设时,最佳的传输方式是中断 .

6.当定时器T0工作在方式3时,要占定时器T1的TR1和TF1_两个控制位.

7.MCS-51有 5 个中断源,有 2 个中断优先级,优先级由软件填写特殊功能寄存器 IP 加

以选择.

8.用串口扩并口时,串行接口工作方式应选为方式 0 .

9.在串行通信中,有数据传送方向单工、半双工、全双工三种方式.

10.外部中断0入口地址为_ 0003H

4-2判断

1.MCS-51的5个中断源优先级相同。(×)

2.要进行多机通信,MCS-51串行接口的工作方式应为方式1。(×)

3.MCS-51上电复位时,SBUF=00H。(×)。

4.MCS-51有3个中断源,优先级由软件填写特殊功能寄存器IP加以选择.. (×)

5.用串口扩并口时,串行接口工作方式应选为方式1. (×)

6.外部中断INTO 入口地址为_0013H(×)

7.MCS-51外部中断0的入口地址是0003H。(√).

8.TMOD中的GATE=1时,表示由两个信号控制定时器的启停。(√)。

9.使用8751且 =1时,仍可外扩64KB的程序存储器。(×)

10.PC存放的是当前执行的指令。(×)

11.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。(×)

12.MCS-51有4个并行I\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入"0"(×)

4-3选择

1.在中断服务程序中,至少应有一条( D )

(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令

2.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应

是( A )

(A)98H (B)84H (C)42 (D)22H

3.MCS-51在响应中断时,下列哪种操作不会发生( A ).

(A)保护现场 (B)保存PC (C)找到中断入口 (D)保存PC转入中断入口

4.用MCS-51串行接口扩展并行I\O口时,串行接口工作方式应选择( A )

(A)方式0 (B)方式1 (C)方式2 (D)方式3

5.MCS-51有中断源( A )

(A)5个(B)2个(C)3个(D)6个

6.MCS-51响应中断时,下面哪一个条件不是必须的( D )

(A)当前指令执行完毕(B)中断是开放的

(C)没有同级或高级中断服务(D)必须有RETI指令

7.使用定时器T0时,有几种工作模式( D )

(A)1种(B)2种(C)3种(D)4种

8.计算机在使用中断方式与外界交换信息时,保护现场的工作方式应该是 ( C )

(A)由CPU自动完成 (B)在中断响应中完成

(C)应由中断服务程序完成 (D)在主程序中完成

9.下面哪一种传送方式适用于处理外部事件( C )

(A)DMA (B)无条件传递进 (C)中断 (D)条件传递

编程题:

1、利用单片机的P1口接8个发光二极管,P0口接8个开关,编程实现,当开关动作时,对应的发光二极管亮或灭。

只须把P0口的内容读出后,通过P1口输出即可。

汇编程序:

ORG 0100H

MOV P0,#0FFH

LOOP: MOV A,P0

MOV P1,A

SJMP LOOP

C51语言程序:

#include

void main(void)

{

unsigned char i;

P0=0xff;

for(;;) { i=P0;P1=i; }

}

2 设系统时钟频率为12MHZ,用定时/计数器T0编程实现从P1.0输出周期为500μs的方波。分析:从P1.0输出周期为500μs的方波,只须P1.0每250μs取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式2时,最大的定时时间为256μs,满足250μs的定时要求,方式控制字应设定为00000010B(02H)。系统时钟为12MHZ,定时250μs,计数值N 为250,初值X=256-250=6,则TH0=TL0=06H

采用中断处理方式的程序:

C语言程序:

# include //包含特殊功能寄存器库

sbit P1_0=P1^0;

void main()

{

TMOD=0x02;

TH0=0x06;TL0=0x06;

EA=1;ET0=1;

TR0=1;

while(1);

}

void time0_int(void) interrupt 1 //中断服务程序

{

P1_0=!P1_0;

}

3、设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方波。

这时应产生500ms的周期性的定时,定时到则对P1.1取反就可实现。由于定时时间较长,一个定时/计数器不能直接实现,可用定时/计数器T0产生周期性为10ms的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数器T1对10ms计数50次实现。系统时钟为12MHZ,定时/计数器T0定时10ms,计数值N为10000,只能选方式1,方式控制字为00000001B(01H),初值X:

X=65536-10000=55536=1101100011110000B

则TH0=11011000B=D8H,TL0=11110000B=F0H。

(1)用寄存器R2作计数器软件计数,中断处理方式。

C语言程序:

# include //包含特殊功能寄存器库

sbit P1_1=P1^1;

char i;

void main()

{

TMOD=0x01;

TH0=0xD8;TL0=0xf0;

EA=1;ET0=1;

i=0;

TR0=1;

while(1);

}

void time0_int(void) interrupt 1 //中断服务程序

{

TH0=0xD8;TL0=0xf0;

i++;

if (i= =50) {P1_1=! P1_1;i=0;}

}

(2)用定时/计数器T1计数实现,定时/计数器T1工作于计数方式时,计数脉冲通过T1(P3.5)输入,设定时/计数器T0定时时间到对T1(P3.5)取反一次,则T1(P3.5)每20ms 产生一个计数脉冲,那么定时500ms只须计数25次,设定时/计数器T1工作于方式2,初值X=256-25=231= 11100111B=E7H,TH1=TL1=E7H。因为定时/计数器T0工作于方式1,定时,则这时方式控制字为01100001B(61H)。定时/计数器T0和T1都采用中断方式工作。

C语言程序如下:

# include //包含特殊功能寄存器库

sbit P1_1=P1^1;

sbit P3_5=P3^5;

void main()

{

TMOD=0x61;

TH0=0xD8;TL0=0xf0;

TH1=0xE7; TL1=0xE7;

EA=1;

ET0=1;ET1=1;

TR0=1;TR1=1;

while(1);

}

void time0_int(void) interrupt 1 //T0中断服务程序{

TH0=0xD8;TL0=0xf0;

P3_5=!P3_5;

}

void time1_int(void) interrupt 3 //T1中断服务程序{

P1_1=! P1_1;

}

4、设单片机的fOSC=l2MHz,要求在P1.0脚上输出周期为2 ms的方波。解周期为2ms的方波要求定时间间隔为1ms,每次时间到时,P1.0取反.

(1) 计算波特率初值

(216-x) 1μs=1000μs

X=216-1000

TH0=(65536-1000)/256

TL0=(65536-1000)%256

(2)用定时器0的方式1编程,采用中断方式。

#include

sbit P1_0=P1^0;

void timer0(void) interrupt 1 using 1

{

P1_0=!P1_0;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

}

void main(void)

{

TMOD=0x01;

P1_0=0;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

TR0=1;

do { } while (1);

}

5.在P1.7端接有一个发光二极管,要求利用T/C控制.使LED亮一秒、灭一秒,周而复始。

解题目要求定时1s,T/C的三种工作方式都不能满足。对于较长时间的定时,应采用复合定时的方法。这里使T/C0工作在定时器方式1,定时100 ms,定时时间到后P1.0反相,即P1.0端输出周期200ms的方波脉冲。

另设T/C1工作在计数器方式2,对Tl输入的脉冲计数,当计数满5次时,定时1s时间到将P1.7端反相,改变灯的状态。

采用6MHz晶振,方式1的最大定时才能达到一百多ms。对于100 ms,机器周期2us需要的计数次数=100×103/2=50000,即初值为65535一50000。

方式2满5次溢出中断,初值256-5。

#include

sbit P1_0=P1^0;

sbit P1_7=P1^7;

timer0() interrupt 1 using 1

{

P1_0=!P1_0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

}

timer1( ) interrupt 3 using 2

{

P1_7=!P1_7;

}

main()

{

P1_7=0; P1_0=1;

TMOD=0x61;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=256-5;

TL1=256-5;

IP=0x08;

EA=1; ET0=1; ET1=1;

TR0=1; TR1=1;

for (;;)

{

}

}

6 采用10 MHz晶振,在P1.0脚上输出周期为2.5s,占空比20%的脉冲信号。

解 l0MHz晶振,使用定时器最大定时几十ms。取l0ms定时,周期2.5s需250次中断,占空比20%,高电乎应为50次中断。

10ms定时,晶振f=10MHz。

需定时器计数次数=10×103×10/12=8333

#include

#define uchar unsigned char

uchar i,time;

uchar period=250;

uchar high=50;

timer0( ) interrupt 1 using 1

{

TH0=(65536-8333)/256;

TL0=(65536-8333)%256;

if (++time==high) P1=0;

else if(time==period)

{

time=0;

P1=1;

}

}

main ()

{

TMOD=0x01;

TH0=(65536-8333)/256;

TL0=(65536-8333)%256;

EA=1;

ET0=1;

TR0=1;

do { } while (1);

}

7、串行口发送一串字符“MCS-51”

#include

#define uchar unsigned char

#define uint unsigned int

uchar idata trdata[10]={'M','C','S','-','5','1',0x0d,0x0a,0x00}; main( )

{ uchar i;

uint j;

TMOD=0x20;

TL1=0xfd;TH1=0xfd;

SCON=0xd8;PCON=0x00;

TR1=1;

while(1)

{

i=0;

while(trdata[i]!=0x00)

{

SBUF=trdata[i];

while(TI==0);

TI=0;

i++;

}

for (j=0;j<125000;j++);

}

}

第五章

5-1选择题

1、6264芯片是(B)

(A) EEPROM (B)RAM(C)FLASH ROM (D)EPROM

2、用MCS-51用串行扩展并行I/O口时,串行接口工作方式选择(A)

(A)方式0 (B)方式1 (C)方式2 (D)方式3

3、使用8255可以扩展出的I/O口线是(B)

(A) 16根(B)24根(C)22根(D)32根

4、当8031外出扩程序存储器8KB时,需使用EPROM 2716(C)

(A) 2片(B)3片(C)4片(D)5片

5、某种存储器芯片是8KB*4/片,那么它的地址线根线是(C)

(A) 11根(B)12根(C)13根(D)14根

6、MCS-51外扩ROM,RAM和I/O口时,它的数据总线是(A)

(A) P0 (B)P1 (C)P2 (D)P3

7、当使用快速外部设备时,最好使用的输入/输出方式是(C)

(A)中断(B)条件传送(C)DMA (D)无条件传送

8、MCS-51的中断源全部编程为同级时,优先级最高的是(D)

(A) INT1 (B)TI (C)串行接口(D)INT0

9、MCS-51的并行I/O口信息有两种读取方法:一种是读引脚,还有一种是(A)

(A)读锁存器具(B)读数据库(C)读A累加器具(D)读CPU

10、MCS-51的并行I/O口读-改-写操作,是针对该口的(D)

(A)引脚(B)片选信号(C)地址线(D)内部锁存器

5-2判断题

1、MCS-51外扩I/O口与外RAM是统一编址的。(对)

2、使用8751且EA=1时,仍可外扩64KB的程序存储器。(错)60KB

3、8155的复位引脚可与89C51的复位引脚直接相连。(对)

4、片内RAM与外部设备统一编址时,需要专门的输入/输出指令。(错)统一编址的

特点正是无需专门的输入输出指令。

5、8031片内有程序存储器和数据存储器。(错)无程序存储器

6、EPROM的地址线为11条时,能访问的存储空间有4K。(错)2K.

7、8255A内部有3个8位并行口,即A口,B口,C口。(对)

8、8155芯片内具有256B的静态RAM,2个8位和1个6位的可编程并行I/O口,1个14位定时期等常用部件及地址锁存器。(对)

9、在单片机应用系统中,外部设备与外部数据存储器传送数据时,使用MOV指令。(错)用MOVX指令。

10、为了消除按键的抖动,常用的方法有硬件和软件两种方法。(对)

5-3简答题

1 8031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?

答:这是因为P0口是扩展储存器系统的多路低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。ALE信号就

是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。而P2口只用作扩展存储器系统的高8位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。

2 在8031扩展系统中,外部程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?

答:这是因为外部程序存储器和外部数据存储器所使用的控制信号不同。对外部程序存储器的选读通是用PSEN控制线,而对外部数据存储器的读/写控制是用RD和WR读、写控制线,所以不会发生地址冲突。

3 8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?

答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O 线可用了。

下图是通过线选法实现的两片2764扩展成16KB程序存储器。两片2764的地址线A0~A12与地址总线的A0~A12对应相连,2764的数据线D0~D7与数据总线A0~A7对应相连,两片2764的输出允许控制线连在一起与8031的PSEN相连。第一片2764的片选线CS与8031地址总线的P2.7直接相连,第二片2764的片选线CS与8031地址总线的P2.7取反后相连。

其两片的地址空间分别为:

第一片:00000000000000000~0001111111111111,即0000H~1FFFH;

00100000000000000~0011111111111111,即2000H~3FFFH;

01000000000000000~0101111111111111,即4000H~5FFFH;

01100000000000000~0111111111111111,即6000H~7FFFH;

第二片:10000000000000000~1001111111111111,即8000H~9FFFH;

10100000000000000~1011111111111111,即A000H~BFFFH;

11000000000000000~1101111111111111,即C000H~DFFFH;

11100000000000000~1111111111111111,即E000H~FFFFH。

数据存储器扩展与程序存储器扩展基本相同,只是数据存储器控制信号一般有输出允许信号OE和写控制信号WE,分别与单片机的片外数据存储器的读控制信号RD和写控制信号WR相连,其它信号线的连接与程序存储器完全相同。

下图是两片数据存储器芯片6264与8051单片机的连接。6264是8K 8的静态数据存储器芯片,有13根地址线,数据线8根,一根输出允许信号OE和一根写控制信号WE ,两根片选信号CE1和CE2 ,使用时都应为低电平。

P2.7为低电平0,两片6264芯片的地址空间为:

第一片:01000000000000000~0101111111111111,即4000H~5FFFH;

第二片:00100000000000000~0011111111111111,即2000H~3FFFH;

P2.7为高电平1,两片6264芯片的地址空间为:

第一片:11000000000000000~1101111111111111,即C000H~DFFFH;

第二片:10100000000000000~1011111111111111,即A000H~BFFFH;

相关文档