单片机课后习题答案 下载本文

2. 扩展外围芯片时,片选信号的三种产生方法为:( 线选法 )、( 全地址译码法 )、( 部分地址译码法 )。

3. MCS-51单片机访问片外存储器时,利用( ALE )信号锁存来自( P0 )口的低8位地址信号。

4. 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中( 8 )块芯片。

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

A:P0口 B:P1口 C:P2口 D:P3口

6. 使用8255可以扩展出的I/O口线是( C )。

A:16根 B:22根 C:24根 D:32根

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

A:2片 B:3片 C:4片 D:5片

8. 访问外部数据存储器时,不起作用的信号是( D )。 A:RD B:WR C:ALE D:PSEN 9. 扩展外部存储器时要加锁存器74LS373,其作用是( A )。

A:锁存寻址单元的低八位地址 B:锁存寻址单元的数据

C:锁存寻址单元的高八位地址 D:锁存相关的控制和选择信号

10. 若某存储器芯片地址线为12根,那么它的存储容量为( C )。

A:1KB B:2KB C:4KB D:8KB

11. 解释三总线的概念。 解:

MCS-51系列单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。

(1)地址总线(AB)

地址总线用于传送单片机输出的地址信号,宽度为16位,可寻址的地址范围为216=64KB。地址总线是单向的,只能由单片机向外发出。P0口提供低8位地址,P2口提供高8位地址。由于P0口既做地址线又做数据线,分时复用,所以,P0口提供的低8位地址是由P0口经锁存器提供的。锁存信号是由CPU的ALE引脚提供的。

(2)数据总线(DB)

数据总线是由P0口提供的,宽度为8位。P0口是双向三态口,是单片机应用系统中使用最频繁的通道。P0口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有一个有效的数据传输通道。具体哪一个芯片的数据通道有效,是由各个芯片的片选信号控制选择的。欲使CPU与某个外部芯片交换数据,则CPU必须先通过地址总线发出该芯片的地址,使该芯片的片选信号有效,则此时P0口数据总线上的数据只能在CPU和该芯片之间进行传送。

(3)控制总线(CB)

控制总线实际上是CPU输出的一组控制信号。每条控制信号都是单向的,但是由多条不同的控制信号组合而成的控制总线则是双向的。MCS-51系列单片机中用于系统扩展的控制信号有RD,WR,PSEN, ALE和EA。 12.I/O接口的作用是什么? 解:

接口(也称为I/O接口)是指连接CPU与外部输入/输出设备之间的部件,这些部件是CPU与外设之间进行信息传送的媒介。

在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。 13.I/O接口数据有几种传送方式?各有什么特点? 解:

CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。 程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。

25

无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式) 的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。

中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权, CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度), CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。

存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA 控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。 14.外设端口有几种编址方法?各有什么特点? 解:

在计算机系统中,凡需要进行读写操作的部件都存在编址的问题。存储器的每个单元均有自己的地址,对于I/O接口,则需要对接口中的每个端口进行编址。通常采取两种编址方法:一种是独立编址,另一种是统一编址。

统一编址又称“存储器映射方式”。在这种编址方式下 ,I/O端口地址置于存储器空间中,在整个存储空间中划出一部分空间给外设端口 ,端口和存储单元统一编址。其优点是无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点是端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。

独立编址又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。其优点是端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短。缺点是输入输出指令类别少,一般只能进行传送操作。

MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H~FFFFH(64KB)。因此,MCS-51单片机应用系统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。

15.什么是全地址译码?什么是地址部分译码?各有什么特点? 解:

所谓的全地址译码法是利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号。全地址译码法芯片的地址范围确定方法是:以外部扩展的全部芯片未用到的地址线作为地址译码器的输入,译码器的输出作为片选信号接到外部扩展芯片上。

全地址译码法优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间;利用同样的高位地址线,全地址译码法编址产生的选片线比线选法多,为系统扩展提供了更多的冗余条件。其缺点是所需地址译码电路较多,尤其在单片机寻址能力较大和所采用的存储器容量较小时更为严重。全地址译码法是单片机应用系统设计中经常采用的方法。

部分地址译码法是指单片机的未被外扩芯片用到的高位地址线中,只有一部分参与地址译码,其余部分是悬空的。在部分地址译码方式下,无论CPU使悬空的高位地址线上的电平如何变化,都不会影响它对外部存储单元的选址,故存储器每个存储单元的地址不是惟一的,存在地址重叠现象。因此,采用部分地址译码法时必须把程序和数据存放在基本地址范围内(即悬空的高位地址线全为低电平时存储芯片的地址范围),以避免因地址重叠引起程序运行的错误。部分地址译码法的优点是可以减少所用地址译码器的数量。

16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?

26

解:

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。

17.某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址范围。 解:

硬件连接图如下图所示。

图 4.17题硬件连接电路图

注:8255的复位线RESET应与MCS-51的RESET线连上。复位、晶振电路应画上。 各芯片的地址范围为:

2732:E000H~EFFFH 6116:D800H~DFFFH 8255:BFFCH~BFFFH

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。

解:

硬件连接电路图如图4.18所示。各芯片的地址范围为: 2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH

6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH

图4.18 4.18题硬件连接电路图

19.I/O接口扩展方法有哪几种?

27

解:

(1)并行总线扩展的方法 (2)串行口扩展方法

(3)I/O端口模拟串行方法

(4)通过单片机内I/O的扩展方法 20.8255A有几种工作方式?如何选择工作方式?A口和B口的工作方式是否完全相同?解:

8255A有3种工作方式:方式0、方式1和方式2。 ① 方式0(基本输入/输出方式)。这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。

② 方式1(选通输入/输出方式)。这种工作方式下,A组包括A口和C口的高四位(PC7~PC4),A口可由程序设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低四位(PC3~PC0),功能和A组相同。

③ 方式2(双向I/O口方式)。仅A口有这种工作方式,B口无此工作方式。此方式下,A口为8位双向I/O口,C口的PC7~PC3用来作为输入输出的控制和同步信号。此时,B口可以工作在方式0或方式1。

21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。 解:

程序如下:

MOV DPTR,#7F03H MOV A,#10010100B MOV @DPTR,A

22.8255A的方式控制字和C口按位置位/复位控制字均写入8255A的控制寄存器,8255A是如何来区分这两个控制字的? 解:

写入控制端口的控制字的最高位为1则为方式控制字,否则为C口置位/复位控制字。 23.试编程对8155初始化,使A口为选通方式输出,B口为基本输入,C口作为控制联络信号,启动/计数器,按方式1工作,输出方波,频率为50Hz,输入时钟频率为500kHz。 解:

8155输入时钟的周期=1/500×103=2×10-6 (s),8155计数器的初值为: 20×10-3/2×10-6=10000=2170H。

由于/计数器按方式1工作,所以写入定时器/计数器的初值为6170H。程序如下: ORG 0000H LJMP START ORG 0100H

START: MOV SP,#60H

MOV DPTR,#7F04H ;计数器的初值 MOV A,#70H MOVX @DPTR,A INC DPTR MOV A,#61H MOVX @DPTR,A

MOV DPTR,#7F00H ;写命令字,启动定时器/计数器工作 MOV A,#0C5H MOVX @DPTR,A SJMP $ END

24.假设8155的TIMER IN引脚输入的脉冲频率为1MHz,编写程序在8155的TIMER OUT引脚输出周期为10ms的方波。

28