注:此章中出现的芯片型号只做课本上出现的型号就可以
第六章 单片机的接口技术
6-1 判断题
1、8155的复位引脚可与89C51的复位引脚直接相连。( ) 2、使用可编程接口必须处始化。 ( )。
3、MCS-51外部扩展I/O口与外部RAM是统一编址的。 ( )。 4、8155的复位引脚可与89C51的复位引脚直接相连。 ( )
5、采用线选法时扩展程序存储器时,程序存储器的地址总是唯一的。( ) 6、8255可编程接口芯片在复位后,PA、PB、PC口均位输出状态。( )
7、8255可编程接口芯片的PA、PB、PC口均可工作在3种工作方式下。( ) 8、8255可编程接口芯片的PA、PB、PC口均可用作输入。( )
9、作数据存储器扩展时刻,为了使每个芯片具有独立的地址范围,其片选信号必须能独立控制。( )
10、扩展程序存储器时,地址锁存器锁存信号G接单片机的 信号。( )
11、扩展程序存储器时,MCS-51的P0口与P2口都必须接地址锁存器。( ) 答案: 1√;2√;3√;4√;5×;6×;7×;8√;9√;10×;11× 1.使用可编程接口必须处始化。 ( )
2、一个外部设备只占用一个端口地址。 ( )
3、状态信息、数据信息、控制信息均可使用同一端口来进行传送。( ) 4、并行I/O口适合远距离通信时使用。( )
5、接口中的端口地址与外部存储器是统一编址的。( )
6、机械式按键在闭合或断开时,通常会产生抖动,可使用硬件或软件的办法去加以消除。( )
7、多个LED采用静态显示方式时,每一位是被逐步循环点亮的。( ) 8、为了实现LED显示器的动态扫描,必须要提供段控与位控信号。( ) 1√;2×;3×;4×;5√;6√;7×;8√
6-2 选择题
1、如在系统中只扩展一片Intel 2732(4k×8),除应使用P0口的8条口线外,至少还应使用P2口的口线 ( )
(A)4条 (B)5条 (C)6条 (D)7条
2、如在系统中只扩展两片两片Intel 2732(4K×8), 除应使用P0口的8条口线外,至少还应使用P2口的口线 ( )
(A)5条 (B)6条 (C)7条 (D)8条 3、20根地址线的寻址范围可达 ( )
(A)512KB (B)1024KB (C)640KB (D)4096KB 4、下列四条叙述中,有错误的一条是 ( ) (A)16根地址线的寻址空间可达1MB (B)内存储器的存储单元是按字节编址的
(C)、CPU 中用于存放地址的寄存器称为地址寄存器) (D)地址总线上传送的只能是地址信息
5、如果把8255A的A1、A0分别与80C51的P0.1、P0.0连接,则8255A的A、B、C、口和控制寄存器的地址可能是( )
(A)XX00H ~XX03H (B)00XXH ~03XXH (C)0XXXH~ 3XXXH (D)X00XH ~X03XH
6、下列结论中错误的是 ( )
(A)8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上
(B) 在单片机与微型打印机的接口中,打印机的BUSY信号可作为查询信号或中断请求信号使用
(C)8279是一个用于键盘和LED(LCD)显示器的专用接口芯片
(D)由于8155不具有地址锁存功能,因此在与80C51的接口电路中必须加地址锁存器 7、6264芯片是( )
(A)EEPROM (B)RAM(C)FLASH ROM (D)EPROM 8、使用8255可以扩展出的I/O口线是( ) (A)16根 (B)24根 (C)22根 (D)32根
9、当8031外出扩程序存储器8KB时,需使用EPROM 2716( ) (A)2片 (B)3片 (C)4片 (D)5片
10、某种存储器芯片是8KB*4/片,那么它的地址线根线是( ) (A)11根 (B)12根 (C)13根 (D)14根
答案: 1A;2 A; 3B;4A;5C;6A;7B;8B;9C;10C 6-3 填空题 1、32KB RAM存储器的首地址若为2000H,则末地址为 9FFFH。 2、起止范围为0000H~3FFFH的存储器的容量为 16kB 。 3、10根地址线可选 1024个存储单元,32KB存储单元需要 15 根地址线。 4、单片机扩展中,为了将P0口的地址和数据分离,在P0口的输出端必须增加一个 地址锁存器。 5、 信号用于程序存储器的控制, 信号用于 数据 存储器的控制。 6、8255可编程接口芯片工作在方式 0 时,适合于无条件传送,CPU直接执行输入输出指令。 7、8255可编程接口芯片的PA、PB、PC口全部用作输出时,则方式控制字为 80 H。 8、利用串行口扩展I/O时,MCS-51必须工作方式 0 。 1、I/O口的传送控制方式有无条件传送、查询传送、中断传送3种控制方式,其中中断传送方式传送数据效率高,实时性强。其中 无条件 传送方式不需要查询设备的状态。 2、显示器的显示接口按驱动方式分 静态 显示与动态 显示两种显示方式。 3、访问单片机I/O接口的端口地址时,单片机访问它们时都采用MOVX指令。 4、单片机与I/O设备之间传送的信息,通常包括 数据信息、状态 信息与 控制 信息。 6-4 问答题与综合题 1、存储器主要由哪几部分组成? 答:存储器由存储体、地址译码器和控制电路组成。
1)存储体是存储数据信息的载体。由一系列存储单元组成,每个存储单元都有确定
的地址。存储单元通常按字节编址,一个存储单元为一个字节,每个字节能存放一个8位二进制数。就像一个大仓库,分成许多房间,大仓库相当于存储体,房间相当于字节,房间都有编号,编号就是地址。
2)地址译码器将CPU发出的地址信号转换为对存储体中某一存储单元的选通信
号。相当于CPU给出地址,地址译码器找出相应地址房间的钥匙。通常地址是8位或1 6位,输入到地址译码器,产生相应的选通线,8位地址能产生28=256根选通线,即能选通
256字节。16位地址能产生216=65536=64K根选通线,即能选通64K字节。当然要产生65536根选通线是很难想象的,实际上它是分成256根行线和256根列线,256 X 256=65536,合起来能选通65536个存储单元。
3)存储器控制电路包括片选控制、读/写控制和带三态门的输入/输出缓冲电路。 ①片选控制确定存储器芯片是否工作。 ②读/写控制确定数据传输方向;若是读指令,则将已被选通的存储单元中的内容传送到数据总线上;若是写指令,则将数据总线上的数据传送到已被选通的存储单元中。 ③带三态门的输入/输出缓冲电路用于数据缓冲和防止总线上数据竞争。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同理,存储器的输出端是连接在数据总线上的,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数据是“1”(高电平5V),存储器中的数据是“0”(低电平OV),两种数据若碰到一起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“1”和“O”两种状态,还应具有第三种状态“高阻\态。呈“高阻\态时,它们的输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻\态时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线上。
2、存储器为什么要有片选控制和带三态门的输入/输出电路?
答:存储器的输出端是连接在数据总线上的。数据总线相当于一条车流频繁的大马路, 必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同理,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数据是“1”(高电平5V),存储器中的数据是“0”(低电平0V),两种数据若碰到一起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“l”和“0”两种状态,还应具有第三种状态“高阻\态。呈“高阻\态时,输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻”态时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线上。
3、I/O接口和I/O端口有区别? I/O 接口的作用是什么?
答: 接口(也称为I/O接口)是指连接CPU与外部输入/输出设备之间的部件,这些部件是CPU与外设之间进行信息传送的媒介。 I/O接口芯片都有一个或几个端口,一个端口对应于接口芯片内部的一个寄存器或一组寄存器,计算机系统要为每个端口分配一个地址,各个端口的地址是唯一的,不能重复。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。 4、I/O数据有几种传送方式?各有什么特点?
答: CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。 程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。 无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式) 的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。 中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权, CPU和外设之间处于并行工作状态。但
中断服务需要保护断点和恢复断点(占用存储空间,降低速度), CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。 存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA 控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。
5、为什么当P2口作为地址总线后,如有剩余口线也不再适合做通用I/O口?
答: P2口用作扩展存储器的高8位地址总线以后,即使没有全部占用,空余的几根也不宜用作I/O口,否则会给软件编写及使用带来不必要的麻烦。主要是时序上处理比较困难。
6、MCS-51系统中,片外程序存储器 和片外数据存储器共用16位地址线和8位数据线为何不会产生冲突?
答: 程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由 和 信号控制,而程序存储器由读选通信号 控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。
7、I/O扩展方法有那几种?
答: (1)并行总线扩展的方法 (2)串行口扩展方法 (3)I/O端口模拟串行方法 (4)通过单片机内I/O的扩展方法
10、现有8031单片机、74ls373锁存器、1片2764EPROM和2片6116RAM,请使用它们组成1个单片机应用系统,要求:
(1)画出硬件电路连线图,并标注主要引脚;
(2)指出该应用系统程序存储空间和数据存储器各自的地址范围。
10、解: (1) (2)地址:2764:0000H~1fffH 6116(1):0000h~07ffH;6116(2):8000h~87ffH
11、使用89C51芯片外扩一片E2PROM2864,要求2864兼作程序存储器和数据存储器,且首地址为8000H。要求:
(1)确定2864芯片的末地址;
(2)画出2864片选端的地址译码电路; (3)画出该应用系统的硬件连接电路。
12、画出74ls373与8031典型连接电路(P2.0片选),并编制程序,从373外部读入16个数据,存入以30H为首地址的内RAM。
解: 程序: MOV R7,#16 MOV R0,#30H MOV DPTR,#0000H LOOP: MOVX A,@DPTR MOV @R0,A DJNZ R7,LOOP RET
13、用到三片74ls373的某8031应用系统的电路如下图所示。现要求通过74ls373(2)输出80H,请编写相应的程序。
解: MOV R0,#05H MOV A,#80H MOVX @R0,A
14、51的并行接口的扩展有多种方法,在什么情况下,采用扩展8155比较合适?什么情况下,采用扩展8255A比较合适?
解:8155特别适合用于I/O口、RAM、定时/计数器较少的场合,如果只是需要扩展I/O口,可以使用8255。
15、现有一片8031,扩展了一片8255A,若把8255A的B口用作输入,B口的每一位接一个开关,A口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出B口某一位开关接高电平时,A口相应位发光二极管被点亮的程序。
解: A:7FFCH B:7FFDH C:7FFEH 控制口:7FFFH MOV DPTR,#7FFFH MOV A,,#10000010B MOV @DPTR,A MOV DPTR,#7FFDH MOVX A,@DPTR MOV DPTR,#7FFCH MOVX @DPTR,A
16、用74ls373输入(P2.7片选),74ls377输出(P2.6片选),试画出与8031的连接电路,并编制程序,从373依次读入十个数据,取反后,从377输出。 解: 74LS373(输入):7FFFH 74LS373(输入):BFFFH MOV R7,#10 MOV R0,#30H MOV DPTR,#7FFFH LOOP0: MOVX A,@DPTR CPL A MOV @R0,A INC R0 DJNZ R7,LOOP0 MOV R7,#10 MOV R0,#30H MOV DPTR,#0BFFFH LOOP1: MOV A,@R0 MOVX @DPTR,A INC R0 DJNZ R7,LOOP1
17、用译码法扩展64KB╳8外部数据存储器,若用8KB╳8的存储芯片,共需多少片?共需多少根地址线?其中几根做字选线?几根做片选线?试用74LS138画出译码电路,并标出其输出线的选址范围。若改用线选法能够扩展多大空间的存储器?试写出各线选线的选址范围。
解:所需芯片数目与总容量和单片容量有关——总容量/单片容量=(64KB╳8)/(8KB╳8)=8,即共需要8片。所需地址线数目与总容量有关——因为64K=65536= ,所以组成64KB的存储器共需要16根地址线。所需字选地址线数目与单个芯片的容量有关——因为8K=8192= ,所以每片需要接入13根地址线作为字选线。所需片选地址线数目与芯片数目有关——因为8片= 片,所以片选需要3根地址线。应该将字选线从地址低端开始安排,片选线则占用地址高端,故单片机的16根地址线中,A12~A0应该接到每个8KB芯片的13根地址线上,余下的高位地址线正好是A15~A13这3根,要用它们来产生8个片选输出,就要用到3-8译码电路。74LS138的功能正是3入8出译码器。本题只要求画出译码电路以及写出译码输出线的选址范围,可不必画出完整的单片机外扩电路图。因为字选线分配完毕后只剩A15~A13这3根地址线,用线选方式的话,只能各选一片8KB╳8的存储芯片,故仅能扩展24KB╳8的存储器;在这种情况下,A15、Al4和A13只有011、101和110这三种搭配才有效(注意片选信号是低电平有效)。 共需8片8KB╳8的存储芯片,共需16根地址线,其中13根做字选线,3根做片选线。 74LS138译码电路及对应的选址范围下图所示: 对应的三块芯片地址范围分别为:6000H~7FFFH、A000H~BFFFH和C000H~DFFFH。
1、显示器和键盘在单片机应用系统中的作用是什么?
答:具有人机对话功能。实现人对应用系统的状态干预和数据输入以及应用系统向人报告运行和运行结果。
2、LED显示器的显示字符条件是什么?
答:要使LED显示器显示出字符,必须提供段码和位选码。
段码(即字码):可以用硬件译码的方法获得,也可以用软件的方法获得。 位选码:静态显示和动态显示。
3、LED动态显示子程序设计要点是什么?
答:(1)建立显示数据缓冲区:存放待显示数字、字符在字型编码表中的序号; (2)软件译码:利用查表方法获得字型编码(段码);