1、1单片微型计算机原理及应用习题参考答案姜志海 刘连鑫 王蕾 编著电子工业出版社目录第 1 章 微型计算机基础 .2第 2 章 半导体存储器及 I/O 接口基础 .4第 3 章 MCS51 系列单片机硬件结构 .11第 4 章 MCS51 系列单片机指令系统 .16第 5 章 MCS51 系列单片机汇编语言程序设计 .20第 6 章 MCS51 系列单片机中断系统与定时器 /计数器 .26第 7 章 MCS51 系列单片机的串行口 .32第 8 章 MCS51 系列单片机系统扩展技术 .34第 9 章 MCS51 系列单片机键盘 /显示器接口技术 .36第 10 章 MCS51 系列单片机模拟量
2、接口技术 .40第 11 章 单片机应用系统设计 .442第 1 章 微型计算机基础1简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设) 。由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元 CPU(Central P
3、rocess Unit) 。2微处理器、微型计算机、微型计算机系统有什么联系与区别?微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。它具有解释指令、执行指令和与外界交换数据的能力。其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组) 。微型计算机由 CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。3微型计算机是以 CPU 为核心,配上存储器、输入 /输出接口和系统总线组成的计算机。4在计算机内部,一
4、切信息的存取、处理和传递的形式是(C ) 。AASCII 码 BBCD 码 C二进制 D十六进制50 9 的 ASCII 码是(C ) 。A0 9 B3039 C30H39H D40H 49H6在微型计算机中,一般具有哪三类总线?试说出各自的特征(包括传输的信息类型、单向传输还是双向传输) 。所谓总线,就是在微型计算机各芯片之间或芯片内部各部件之间传输信息的一组公共通信线。计算机元件级总线包括地址总线 AB(Address Bus) 、数据总线 DB(Data Bus) 、控制总线 CB(Control Bus)三种。(1)地址总线:地址总线是 CPU 用来向存储器或 I/O 接口传送地址信息
5、的,是三态3单向总线。地址总线的宽度决定了 CPU 可直接寻址的内存容量。通过地址总线确定要操作的存储单元或 I/O 接口的地址。(2)数据总线:数据总线是 CPU 与存储器及外设交换数据的通路,是三态双向总线。(3)控制总线:控制总线是用来传输控制信号的,传送方向依据具体控制信号而定,如 CPU 向存储器或 I/O 接口电路输出读信号、写信号、地址有效信号,而 I/O 接口部件向 CPU 输入复位信号、中断请求信号等。7将下列二进制数转换为十进制数。111101.101B 100101.11B 1100110.011B111101.101B=29.625 100101.11B=37.75 1
6、100110.011B=102.3758将下列十进制数转换为二进制数、BCD 码数。126.635 317.125 87.0735126.635=1111110.101B=(000100100110.011000110101)BCD317.125=100111101.001B=(001100010111.000100100101)BCD87.0735=1010111.0001B=(10000111.0000011100110101)BCD9设机器数为 8 位,写出下列用真值表示的二进制数的原码、补码和反码。+0010101B 0010101B +1000000B 1000000B+001010
7、1B 0010101B +1000000B 1000000B原码 00010101B 10010101B 01000000B 11000000B反码 00010101B 11101010B 01000000B 10111111B补码 00010101B 11101011B 01000000B 11000000B10将下列 BCD 码表示成十进制数和二进制数。01111001 01010111 10000011 10011001(01111001)BCD=79=1001111B (01010111)BCD=57=111001B(10000011)BCD=83=1010011B (10011001
8、)BCD=99=1100011B11设下列数据为 8 位补码表示的十六进制数,计算 a + b 和 a b,并且判断有无溢出。a b a + b 是否溢出 a b 是否溢出37H 97H 0CEH N 0A0H Y0B7H 0D7H 8EH Y 0E0H Y0F7H 0D7H 0CEH Y 20H N037H 0C7H 0FEH N 70H Y12计算机某字节存储单元的内容为 10000111,若解释为无符号数,则真值为(135) ;若解释为有符号数,则真值为(-121) ;若解释为 BCD 码,则真值为(87) ;若用十六进制数表示,则为(87 )H。4第 2 章 半导体存储器及 I/O 接
9、口基础1半导体存储器分两大类:易失性存储器 RAM 和非易失性存储器 ROM。闪速存储器属于非易失性存储器 ROM。2SRAM6264 芯片的地址线为 A12A0,其存储容量为 8K 地址空间。3可用紫外线擦除后改写的存储器 EPROM 经擦除后,各单元的内容应为 0FFH 。48 8KB 的 SRAM 存储器芯片需要 13 根地址线和 8 根数据线。5半导体存储器有哪几种类型?各自有什么特点?半导体存储器的两个重要指标是什么?半导体存储器通常分为随机存取存储器(RAM,Random Access Memory)和只读存储器(ROM,Read Only Memory)两类。(1)RAM :RA
10、M 又称读写存储器,它的数据读取、存入时间都很短,因此计算机运行时,既可以从 RAM 中读数据,又可以将数据写入 RAM。但掉电后 RAM 中存放的信息将丢失。RAM 适宜存放输入数据、中间结果及最后的运算结果,因此又被称为数据存储器。随机存储器有静态 RAM 和动态 RAM 两种。静态 RAM 用触发器存储信息,只要不断电,信息就不会丢失。动态 RAM 依靠电容存储信息,充电后为 “1”,放电后为“0” 。为了保存信息,每隔 12ms 必须对高电平的电容重新充电,这称为动态 RAM 的定时刷新。动态 RAM的集成度高;静态 RAM 的集成度低、功耗大,优点是省去了刷新电路。在设计专用的微型计
11、算机系统时,一般只用静态 RAM 就可以满足要求。(2)ROM :ROM 称为只读存储器。读出一个数据的时间为数百纳秒,有时也可改写,但写入一个数据的时间长达数十毫秒。因此在计算机运行时只能执行“读”操作。掉电后 ROM 中存放的数据不会丢失。ROM 适宜存放程序、常数、表格等,因此又称为程序存储器。只读存储器有以下五类:掩模 ROM:在半导体工厂生产时,已经用掩模技术将程序做入芯片,用户只能读出内容而不能改写。掩模 ROM 只能应用于有固定程序且批量很大的产品中。一次可编程只读存储器(PROM,Programmable ROM):用户可将程序写入PROM,但程序一经写入就不能改写。紫外线擦除
12、可编程只读存储器(EPROM,Erasable PROM):用户可将程序写入EPROM 芯片。如果要改写程序,先用 EPROM 擦除器,擦去原先的程序,然后写入新程序。与 PROM 芯片一样,写入的速度很慢,且要用到高压,所以必须用特定的 EPROM 编程器写5入信息。在计算机运行时只能执行读操作。电擦除可编程只读存储器(EEPROM,Electrically Erasable PROM):由于采用电擦除方式,而且擦除、写入、读出的电源都用+5V,故能在应用系统中在线改写。但目前写入时间较长,约需 10ms,读出时间约为几百纳秒。闪烁存储器(Flash Memory):快速擦写存储器(Flas
13、h Memory,简称Flash)是 20 世纪 80 年代中期推出的新型器件。它可以在联机条件下,在计算机内进行擦除、改写,因而称为快擦写型存储器或闪烁存储器。它具有芯片整体或分区电擦除和可再编程功能,从而使它成为性价比和可靠性最高的可读写、非易失性存储器。主要性能特点如下:高速芯片整体电擦除:芯片整体擦除时间约 1s,而一般的 EPROM 需要 15min 以上。高速编程:采用快速脉冲编程方法,编程时间短。最少 1 万次擦除 /编程周期,通常可达到 10 万次擦除/ 编程周期。早期的 Flash 采用 12V 编程电压,改进后在 Flash 内部集成了 1 个 DC/DC 变换器,可以采用
14、单一的 5V 电压供电。高速度的存储器访问:最大读出时间不超过 200s。高速 Flash 的读出时间达到60s。低功耗:最大工作电流为 30mA,备用状态下的最大电流为 100A。密度大,价格低,性价比高。衡量半导体存储器性能的主要指标有存储容量、存取速度、存储器周期、功耗、可靠性、价格、电源种类等,其中主要的技术指标是存储容量和存取速度。存储容量是存储器的一个重要指标。存储器芯片的存储容量用“存储单元个数 每个单元的存储位数” 来表示。如存储器有 256 个单元,每个单元存放 8 位二进制数,那么该存储器的容量为 2568 位。存储器容量 1K = 1024 = 210。对于以字节编址的微
15、型计算机,可以以字节表示容量,如某微型计算机的容量为 64KB。在表示存储器的容量时,一般是以某一空间范围来表示的,而空间范围是由地址线来决定的,即存储器的容量和存储器的地址线的宽度(数量)有关。地址的二进制位数 N 与容量的关系是 Q = 2N。如某存储器芯片有 13 条地址线 A12A0 ,则存储器容量为 8KB,空间表示范围为0000H 1FFFH。存取速度:该项指标一般用以下两个参数中的一个来描述。 存取时间(Access Time,TA ):是指从 CPU 给出有效的存储地址启动一次存储器读/ 写操作,到操作完成所经历的时间。具体地说,对一次读操作的存取时间就是读出时间,即从地址有效
16、到数据输出有效之6间的时间;对于一次写操作,存取时间就是写入时间。 存取周期(Access Cycle,TAC):是指连续两次存储器读/ 写操作之间所需要的最小时间间隔。对于读操作,就是读周期时间;对于写操作,就是写周期时间。因为在一次数据访问后,芯片不可能无间歇地进入下一次访问,所以存取周期 TAC 要略大于存取时间 TA。表示上,该参数常表示为读周期 TRC 或写周期 TWC,存取时间 TAC 是其统称。6型号是 1K4 位的静态 RAM,应有多少条地址线?多少条数据线?10 条地址线、4 条数据线7说明 EPROM、PROM、ROM 和 Flash 存储器之间的主要区别。参考第 5 题。
17、8什么是“ 闪存 ”?它有哪些特点?用于哪些场合?参考第 5 题。9简述堆栈的作用与操作。所谓堆栈,是指在存储器中开辟的一个区域,用来存放需要暂时保存的数据。(1)堆栈的作用用来存放断点地址或保存临时数据。在调用子程序和执行中断服务程序的过程中,要保留断点地址,有时还要保护现场。只有保留了断点地址,才能在子程序或中断服务程序执行后保证返回到主程序的断点处,继续执行主程序。断点地址与现场信息是送入堆栈保存的。在返回主程序前,要把保存在堆栈中的现场信息送回对应的寄存器,这称为恢复现场。(2)堆栈操作堆栈有两种操作方式。将数据送入堆栈称为推入操作,又称为压入操作,如压入指令PUSH A把堆栈中内容取
18、出来的操作称为弹出操作,如弹出指令POP A执行把栈顶内容送回 A 的操作。10简述 I/O 接口的功能。接口电路是专门为解决 CPU 与外设之间的不匹配、不能协调工作而设置的,它处在总线和外设之间,一般应具有以下基本功能。(1)对输入 /输出数据进行缓冲、隔离和锁存(2)对信号的形式和数据格式进行交换与匹配(3)提供信息相互交换的应答联络信号(4)根据寻址信息选择相应的外设由此可见,I/O 电路是外设和计算机之间传送信息的交换器件,也有人称它为界面,7它使两者之间能很好地协调工作,每一个外设都要通过接口电路才能和计算机相连。11 CPU 处理 I/O 操作有几种方式?各自有什么特点和应用范围
19、?CPU 和外设之间的数据传输有 4 种方式,即无条件方式、查询方式、中断方式、直接存储器存取方式(DMA 方式) 。(1)无条件传输方式所谓无条件传输方式,是指 CPU 对外设接口的读写随时都可以进行,不需要等待某种条件的满足。无条件传送方式也称同步传送方式,主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。对于这类外设,在任何时刻均以准备好数据或处于接收数据状态,或者在某些固定时刻,它们处在数据就绪或准备接收状态,因此程序可以不必检查外设的状态,而在需要进行输入或输出操作时,直接执行输入/输出指令。当输入/输出指令执行后,数据传送便立即进行。这是一种最简单的输入输出传送方式,
20、所需要的硬件和软件都非常小,一般用于控制 CPU 与低速 I/O 接口之间的数据交换。无条件传输方式的软、硬件简单,但一般的外设难以满足上述条件,所以这种输出方式用得较少,只用于一些简单外设,如开关、数码管显示等。(2)程序查询传输方式程序查询传输方式是指 CPU 在向外设传递数据前,首先查询外设的状态(即条件) ,若外设准备好则传送,若未准备好,CPU 就等待。可见,接口电路除了有传送数据的端口外,还有传送状态的端口。对于输入过程,当外设将数据准备好时,则使接口的状态端口中的“ 准备好 ”标志置;对于输出过程,外设取走一个数据后,接口便将状态端口中的对应标志置 1,表示当前输出寄存器已经处于
21、“ 空”状态,可以接收下一个数据。因此,对应条件传送,一个数据传送过程由 3 个环节组成: CPU 从接口中读出状态字。 CPU 检测状态字的对应位是否满足“就绪” 条件,如果不满足,则回到前一步读出状态字。 如果状态字表明外设已处于“ 就绪”状态,则传送数据。程序查询传输方式接口电路中除了数据端口外,还必须有传送状态的端口,同时 CPU要不断查询外设状态,占用大量 CPU 的时间,硬件比无条件传输方式复杂,并使用较多的端口地址。用查询方式输入数据时,在接口电路与外设间要交换数据、状态和控制 3 种信息。查询方式的缺点是 CPU 的利用受到影响,陷于等待和反复查询,不能再做它用;而且,这种方法
22、不能处理掉电、设备故障等突发事件。(3)中断传输方式在中断传送方式下,外设具有申请 CPU 服务的主动权,当输入设备将数据准备好或者8输出设备可以接收数据时,便可以向 CPU 发中断请求,使 CPU 暂时停下目前的工作而和外设进行一次数据传输,等输入操作或者输出操作结束以后,CPU 继续进行原来的工作。即中断传送方式就是外设中断 CPU 的工作,使 CPU 停止执行当前程序,而去执行一个输入/输出程序,此程序称为中断处理子程序或中断服务子程序。中断服务子程序执行完后,CPU 又回来执行原来的程序。采用中断方式后,CPU 平时可以执行主程序,只有当输入设备将数据准备好了,或者输出端口的数据缓冲器
23、已空时,才向 CPU 发出中断请求。 CPU 响应中断后,暂停执行当前的程序,转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU 和外设之间进行一次数据交换。等输入或输出操作完成后,CPU 又回去执行原来的程序。(4)DMA 传输方式DMA 方式要利用系统的数据总线、地址总线和控制总线来传送数据。原先这些总线是由 CPU 管理的,但当外设需要利用 DMA 方式进行数据传送时,接口电路可以向 CPU 提出请求,要求 CPU 让出对总线的控制权,用一种称为 DMA 控制器的专用硬件接口电路来取代 CPU 临时接管总线,控制外设和存储器之间直接进行高速的数据传送,而不要 CP
24、U 进行干预。这种控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在 DMA 传送结束后,它能释放总线,把对总线的控制权交还给 CPU。可见用 DMA 方式传送数据时,不需要进行保护和恢复断点及现场之类的额外操作,一旦进入 DMA 操作,就可直接在硬件的控制下快速完成一批数据的交换任务,数据传送的速度基本取决于外设和存储器的存取速度。12什么是中断?什么是可屏蔽中断?什么是非屏蔽中断?CPU 在什么条件下可以响应中断?所谓中断,是指 CPU 正常运行程序时,由于微处理器内部事件或外设请求,引起 CPU中止正在运
25、行的程序,转去执行请求中断的外设(或内部事件)的中断服务程序,中断服务程序执行完毕,再返回被中止的程序。利用中断可以避免不断检测外设状态,提高 CPU的效率。可屏蔽中断有时也称为直接中断。屏蔽是指 CPU 可以不处理的中断请求。这种屏蔽实际上是 CPU 的一种工作方式,可以通过软件(指令)来设置,也就是可以通过指令,使CPU 或者允许接受中断请求,或者不接受中断请求。具体的指令由 CPU 的指令系统来决定。可屏蔽中断是最常见的一种中断方式,所有的微处理器都有这种中断方式。对非屏蔽中断来说,如果该中断源申请了中断,CPU 是一定要处理的。CPU 不可以也不能用软件将该中断屏蔽掉。一般一些紧急的情
26、况,如掉电中断申请,就可以安排为这种中断方式,以保证紧急情况一定能得到处理。但并不是所有的微处理器的中断系统都有这9种中断方式,MCS-51 单片机的中断系统就没有非屏蔽中断。一个完整的中断处理的基本过程应包括:中断请求、中断优先权判别、中断响应、中断处理及中断返回。如果提出中断请求的中断源优先权高,而且接口电路与 CPU 都中断开放,CPU 将响应中断,自动执行下列工作: 保留断点:中止正在执行的程序,并对断点进行保护,即将断点地址的值压入堆栈保存,以便中断服务程序执行完后能返回断点处继续执行程序。 转入中断服务程序:将中断服务程序的人口地址送入 PC,以转到中断服务程序。各中断源要求服务的
27、内容不同,所以要编制不同的中断服务程序,它们有不同的入口地址。CPU 首先要确定是哪一个中断源在申请中断,然后将对应的入口地址送入 PC。13 DMA 传送的基本过程是什么?为什么 DMA 方式可以加快数据在外设和存储器之间的传送?参看第 11 题。14什么是接口?什么是端口?一个接口电路是否可以有多个端口?所谓接口,是指在两台计算机之间、计算机与外设之间、计算机内部各部件之间起连接作用的逻辑电路,是 CPU 与外界进行信息交换的中转站。所谓端口,是指 I/O 接口(包括芯片和控制卡)中供 CPU 直接存取访问的那些寄存器或某些硬件特定电路。一个 I/O 接口总要包括若干端口,除常见的数据端口
28、、命令端口和状态端口外,还有特殊用途的端口,如方式控制端口、操作结果端口和地址索引端口等。端口的多少及相应的功能完全取决于与 I/O 接口所关联的 I/O 设备。15 CPU 和外设之间传输的信息有哪几类?各有何特点?计算机与外设间的这种交换数据、状态和控制命令的过程统称为通信(Communication) 。通信过程就是数据传输的过程,在这个过程中要传输的信息有数据信息、状态信息、控制信息。(1)数据信息CPU 和外设交换的基本信息就是数据,数据通常为 8 位或 16 位。数据信息可分为以下三种类型。具体可分为数字量、模拟量、开关量。(2)状态信息状态信息反映了当前外设所处的工作状态,是外设
29、通过接口往 CPU 传送的。对于输入设备来说,通常用准备好(READY)信号来表明输入的数据是否准备就绪;对于输出设备来说,通常用忙(BUSY)信号表示输出设备是否处于空闲,如为空闲,则可接收 CPU 送来的信息,否则 CPU 应等待。(3)控制信息10控制信息是 CPU 通过接口传送给外设的,CPU 通过发送控制信息控制外设的工作,如外设的启动、停止就是常见的控制信息。16串行传送的特点是什么?数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。计算机与外界的数据传送大多数是串行的,其传送的距离可以从几米到几千千米。17串行通信和并行通信的主要区别是什么?各有什么优缺点?计算机
30、与外设之间或计算机之间的信息交换或数据传输称为通信(Communication) 。基本的通信方式有两种,一种是并行通信,另一种是串行通信。(1)并行通信并行通信是指数据的各位同时进行传送。在并行通信中,有多少位数据,就需要多少条传输线,因此传送速度较快,即在相同传输率的情况下,并行通信能够提供高速、高信息率的传输。由于并行通信所需的传输线较多,如果传输距离增加,传输线的开销会成为一个突出的问题,因而并行通信一般用于数据传输率要求较高、传输距离又比较短的场合。(2)串行通信串行通信是指数据一位一位地按顺序传送。串行通信时,要传送的数据或信息必须按一定的格式编码,然后在单根线上,按一位接一位的先后顺序进行传送,发送完一个字符,再发送第二个。接收数据时,每次从单根线上一位接一位地接收信息,再把它们拼成一个字符,送给 CPU 做进一步处理。采用串行通信方式的另一个出发点是,有些外设如调制解调器(Modem) 、鼠标等,本身需要用串行通信方式,因为这些设备是以串行方式存取数据的。