单片机课后习题答案
1.1 计算机经过了哪些主要发展阶段?
解:单片机的发展大致经历了四个阶段:
第一阶段( 1970— 1974年),为 4 位单片机阶段; 第二阶段( 1974— 1978年),为低中档 8 位单片机阶段; 第三阶段( 1978— 1983年),为高档 8位单片机阶段;
第四阶段( 1983年至今),为 8位单片机巩固发展阶段及 16位单片机、 32 位单片机推 出阶段。
1.2 写出下列机器数的真值:
1) 01101110 3)01011001
解:( 1) 01101110的真值 =+110
( 2) 10001101的真值 =+141 或-115 ( 3) 01011001的真值 =+89 ( 4) 11001110的真值 =+206 或-50
说明:机器数是指计算机中使用的二进制数,机器数的值称为真值。机器数可表示为无 符号数也可表示为带符号数, 其中计算机中的带符号数一般为补码形式。 10001101若为
无符号数。 则其真值为 +141;若为带符号数, 由于最高位 (符号位) 为 1.所以为负数
(补 码形式),则其真值为 -115。
1.4 写出下列二进制数的原码、反码和补码(设字长为 8 位)。
1.5已知X=10110110, Y=11001111,求X 和Y 的逻辑与、逻辑或和逻辑异或。 解: X Y 10000110
X Y 11111111 X Y 01111001
1.6已知X 和Y ,试计算下列各题的
X Y 补和X-Y 补(设字长为8位)。
1 ) X=1011 Y=0011 2) X=1011 Y=0101 3) X=1001 Y=-0100 4) X=-1000 Y=0101 5) X=-1100
Y=-0100
解:
(1)X 补码=00001011 Y 补码=00000011
[X+Y]补=00001110
[X-Y]补=00001000
(2) X 补码=00001011 Y 补码=00000101 [X+Y]补=00010000
[X-Y]补=00000110
( 3) X 补码 =00001001 Y 补码 =11111100 [X+Y]补=00010000
[X-Y]补=00000110
2) 10001101 4) 11001110
1) 010111 2) 101011 3) -101000
4) -111111
解:(1) [x] 原=00010111
(2) [x]原=00101011 (3) [x]原=10101000
(4) [x]原=10111111 凶反=00010111 [x]反=00101011 [x]反=11010111
凶反=11000000
凶补=00010111 凶补=00101011 凶补=11011000
凶补=11000001
1.7 用补码来完成下列运算,并判断有无溢出产生(设字长为
解:(1) [x]补+[y]补=01010101+00111100=10010001 = -111,有溢出 (2) [x]补+[y]补=10101011+00111100=11100111 =-25,无溢出 (3) [x]补+[y]补=01010101+11000100=00011001 =25,无溢出 (4) [x]补+[y]补=10101011 + 11000100=01101111 =111,有溢出 1.11 计算机由哪几部分组成的?
解:计算机由微处理器、存储器和 I/O 接口电路构成。各部分通过地址总线( AB )、数 据总线(DB )和控制总线(CB )相连。
1.12 什么叫微处理器?什么叫微型计算机?什么叫微型计算机系统?
解:把CPU 和一组称为寄存器(Register?的特殊存储器集成在一片大规模集成电路或 超大规模集成电路封装之中, 这个器件才被称为微处理器。 以微处理器为核心, 配上由大规 模集成电路制作的只读存储器( ROM )、读写存储器( RAM )、输入/输出、接口电路及 系统总线等所组成的计算机, 称为微型计算机。 微型计算机系统是微型计算机配置相应的系 统软件 ,应用软件及外部设备等。 1.15 什么叫单片微型计算机?和一般微型计算机相比,单片机有何特点?
解:单片微型计算机就是在一块硅片上集成了
CPU 、RAM 、ROM 、定时器/计数器和多种
I/O 口(如并行、串行及 A/D 变换器等)的一个完整的数字处理系统。单片机主要特点有: 品种多样,型号繁多;存储容量大;频率高,速度快;控制功能强,集成度高;功耗低;配 套应用软件多。
2.5 说明静态 RAM 和动态 RAM 的主要区别 ,使用时应如何选用。
解:静态RAM , ( SRAM )采用触发器电路构成一个二进制信息的存储单元,存取速度快, 集成度低。
动态 RAM ,( DRAM )集成度较高, 对于同样的引脚数其单片容量一般比 SRAM 高(集 成度高), DRAM 的存储单元采用电容存储信息,由于电容存在江山漏电,所以需要进行 定期刷新,存取速度较 SROM 慢。
2.6现有1K X 8位的RAM 芯片若干片。若用线选法组成存储器,有效的寻址范围最大时多 少 KB ?若用 3-8 译码器来产生片选信号,则有效的寻址范围最大又是多少?若要将寻址范 围扩展到64kB ,应选用什么样的译码器来产生片选信号?
解:1k X 8位的RAM 芯片由10条地址线。8031的地址线为16条,所以还有6条地址线可 以用来做片选信号。 当采用线选法时, 每条高位地址线只能选中一片芯片, 所以有效地址范 围最大可为 6kB 。 当用 3-8译码器来产生片选信号时,
一片 3-8译码器可以产生 8个片选信号, 有效寻址范
围可扩大为8kB 。若使用多片3 - 8译码器,则寻址范围还可以扩大。
若要将寻址范围扩展到 64kB ,必须用6位线进行全译码以产生 64个片选信号。由于现在尚 无现成的 6-64译码器可用, 故可选用多个 3-8译码器,通过两级译码来产生 64个片选信
号,共需 9个3-8译码器。或者用 1个2-4译码器和 4个4-16译码器通过两级译码,也 可以得到所
需的 64个片选信号。
8 位)
1) 3) 85+60 85-60
(2)-85+60 4)-85-60
2.7什么是地址重叠区,它对存储器扩展有何影响;若有1k X 8位RAM并采用74LS138译码
器来产生片选信号,图2.18中的两种接法的寻址范围各是多少KB ?地址重叠区有何差别?
图中G1、G2A和G2B为译码器的使能端。
A12___ c
1
图2.18题2.7附图
解:所谓地址重叠,其表现就是若干个地址都可选中同一存贮器芯片的同一单元,即一个单
元有多个地址。地址重叠区即是指有哪些地址区可以选中同一芯片的存贮单元。由于地址重
叠区的存在,影响了地址区的有效使用,限制了存贮器的扩展。
图2.18中的两种接法,都能产生8个片选信号,选用1kB RAM时,寻址范围都是8kB。但是左图有地址重叠区。高3位地址A13、A14和A15不论为何值,只要低13位地址相同,
都能选中同一芯片的同一单元。故共有8个地址区。对于Y0输出选中的芯片地址为:0000H-03FFH,2000H-23FFH,4000H-43FFH,6000H-63FFH,8000H-03FFH,8000H-03FFH,A000H-A3FFH,
C000H-C3FFH,E000H-E3FFH。
而右图的接法没有地址重叠区。8片RAM所占用的地址为2000H-23FFH,其它的地址
都选不中这些RAM的存贮单元。
从系统扩展的角度来看,图2.18左图可以接8片1kB RAM,而每片RMA又有8kB地址
重叠区,所以64kB地址区全部用完。这个系统只能接8片1kB RAM,不能再扩展。
而图2.18右图中由于不存在地址重叠区,如果再增加译码器和控制门,就可以获得更多的片选信号。只要连接得当,系统最大可以扩展64kB存储器。所以地址重叠区的存在将
限制存储器的扩展。
2.8某系统需要配置一个4k X 8位的静态外部RAM。试问:用几片2114 (1k X 4位)组成该存储器?用线选法如何构成这个存储器?试画出连接简图,并注明各芯片所占用的存贮空间。
解:需用(4k X 8)/ (1k X 4)= 8,即8片2114来组成。系统连接如图所示。
8片2114芯片分为四组,每组有相同的线选信号,即有相同的地址,存储空间的分布可决定如下:
口厂宀_________________
A1 5A14A13A12A11A10A9 —A0
I、n片X X11 1 00
……03800H
X X 11101?
??…13BFFH
川、"片X X110 10…
…
0 3400H
X X110 1 1……137FFH
V 、w片X X1011
…02C00H X X101 1 1……12FFFH
四、忸片X X01110…
…
01C00H X X011 1 1-?? (1)
由于A15和A14这两条地址线没有使用,所以在如图的连接方式下,每组存贮器都有
4kB地址重叠区。但如果把A15和A14也用作线选信号,则这个系统还可以再扩充2kB容量的存储器(设仍使用2114芯片)。
2.9某系统的存储器配置如图 2.19所示。所用芯片为1k X 8位静态RAM,试确定每块芯片的
地址范围。图中C为译码器高位输入,A为低位输入。Y0对应于输入组合000, Y7对应于
输入组合111。每片RAM地址重叠区有多大?
D7—D0
图2.19题2.9附图
解:各芯片的地址区可确定如下:
A15A14A13A12A11A10A9 —A0 地址区
I、片X X000X0……0 0000H
X X000X1……1 03FFH
n
、
片X001X0…?- 0 0800H
X
X
001X1……1 0BFFH
川、片XX0 10 X0?…?- 01000H
X X 0 10X1
-
??…113FFH
W、片XX0 11X0-??…01800H
X X0 11X1
-
??…11BFFH
由于有3条地址线A15
、
A14 和A10没有连接和使用,所以每片RAM都有23= 8kB地
址重叠区。
2.10用4片1k X 8位RAM,一片2-4译码器,一片4—16译码器,请构成4k x 8位容量的存贮器,画出存贮器的连接图。并要求:
(1)每一存贮单元的地址范围是唯一确定的,不存在地址重叠区;
(2)给出所画的连接图中每块芯片的寻址范围;
(3)存贮器应具有扩展能力,即能扩展到64k X 8位的存贮容量。
若要扩展到最大容量,除了增加存贮器芯片外,还要增添什么器件?
解:按照第一个要求,必须通过全译码来产生片选信号。即每个片选信号必须由6个高位地址线的组合来产生。由于提供了两种不同的译码器,产生这种片选信号并不难。但连接的方式不止一种,而且不同的连接方式各个存贮器芯片的地址区也可以不同。下图是两种可
能出现的方案。
第二种方案的意图是以地址线A10来控制4—16译码器Y0的输出是为1还是为0:当
AQ—Aft
在第一种方案中,4片RAM的地址为:
I片:0000H-03FFH;
H 片:0400H-07FFH ;
川片:0800H-0BFFH ;
W片:OCOOH-OFFFH ;
A14A13A12A11A10=00000 时Y0 = 0; 当A14A13A12A11A10=00001 时Y0 = 1。再加上A15 的控制,可以得到4个片选信号,从而确定4片RAM的地址为:
I 片:0000H-03FFH ;
H片:0400H-07FFH;
川片:8000H-83FFH;
W片:8400H-87FFH ;
但是,这个方案并不能满足题目中第一个要求,即每片RAM的地址区并不是唯一的。
因为4—16译码器的Y0 = 1可能出现的机会很多,实际上,只要A14A13A12A11A10工00000时,都可以使Y0 = 1。所以这个方案并不能用。
若要把存贮容量扩展到64kB,则除了增加1kB RAM芯片的数量外,还要通过全译码方
法产生64个片选信号。由于已经有1片4—16译码器和1片2—4译码器,所以只需要再增
加3片4—16译码器就可以实现:即用2—4译码器的4个输出控制4片4—16译码器的4
个使能端,就可以在4片4- 16译码器的输出端,获得64个片选信号。
2.11某系统的存储器中配备有两种芯片:容量为2K X 8位的ROM和容量为1K X 8位的RAM。它采用74LS138译码器来产生片选信号:Y0、Y1和Y2直接接到三片ROM (#1、#2和#3); Y4和Y5则再通过一组门电路产生4个片选信号接到4片RAM (#4、#5、#6和#7 ),连接的简图如图2.20所示。试确定每一片存储器的寻址范围。各存储器芯片的片选信号都是低电
若要选中ROM #1,则必须Y0输出为低电平, 而其它输出为高电平,Y D0对应于
An 0, A12 0, Ai3 0 ;
同理,若要选中ROM #2,则Y10 , 而其它输出为高电平,Y0对应于
A1 1, A12 0, A|3 0 ;
若要选中ROM #3,则Y2 0,而其它输出为高电平,匕0对应于A11 0,血1,A,3 0。
若要选中RAM #4 ,必须Y4输出为低电平的同时A。0 , Y4 0对应于
A i 0, A12 0, A13 1 ;
同理,若要选中RAM #5 ,必须Y4输出为低电平的同时A0 1 , Y4 0对应于
A i 0,A12 0,A13 1;
若要选中RAM #6,必须丫5输出为低电平的同时A10 0,£0对应于Ai 1,血0,^3 1; 若要选中RAM #7,必须丫5输出为低电平的同时A,。 1 , Y s 0对应于An 1人2 0,人3 1;而每一个存储器的最小地址为:A9A8A7A6A5A4A3A2A1A0 ~ 000000000
最大地址为:A9A8A7A6A5A4A3A2A1A0 ~111111111。
3.1 8051单片机有多少个特殊功能寄存器?它们可以分为几组?各完成什么主要功能?
解:8051单片机内部有21个特殊功能寄存器,它们可以分成6组:用于CPU控制和运算的
有6个,即ACC,B, PSW, SP和DPTR(16位寄存器,算2个8位寄存器);有4个用作并行接口,即P0,P1,P2和P3;有2个用于中断控制,即IE和IP ;有6个用于定时/计数器,它们是TMOD,TCON及两个16位寄存器T0和T1 ;还有3个寄存器用于串行口,即SCON,SBUF和PCON。当然其中有些寄存器的功能不只是一种,也可以有另外的分组方法。
如电源控制寄存器PCON除了用于串行口通信外,还可用于供电方式的控制。
3.2决定程序执行顺序的寄存器是哪个?它是几位寄存器?它是不是特殊功能寄存器?
解:决定程序执行顺序的寄存器是程序计数器PC。它是一个16位寄存器,但它不属于特殊
功能寄存器。
3.3 DPTR 是什么寄存器?它的作用是什么?它是由哪几个寄存器组成?
解:DPTR是数据存储器指针。因为在MCS-51系列单片机中,指令存储器和数据存储器是完
全分开的,因此,当向数据存储器读写数据时,就需要有一个寄存器来存放数据存储器的地址,这个寄