第一章习题答案
1-1 请说明CPU的功能以及CPU是如何执行指令和程序的。 答:CPU的功能是执行程序和统筹处理计算机系统中各类事务。
CPU执行指令分为3步:取指令、分析指令、执行指令;计算机程序是由一条条指令按一定的顺序排列组成的,CPU执行程序的过程就是一条条指令累计执行的过程,其方式分为串行作业方式和流水线作业方式。 1-2 请说明单片机内部主要是由哪些部件组成的,并说明各部件的作用。
答:CPU:由控制器和运算器构成,控制器的作用是执行指令和协调系统各部件的工作;运算器的作用是进行逻辑运算和算术运算。 存储器:存储计算机工作时使用的信息,即指令代码和数据代码。 I/O接口电路:具有数据缓冲、数据隔离及数据转换的功能。 1-3 请问对于容量位8K的存储器芯片,它的地址线是多少根? 答:8K=8192=213,故地址线为13根。
另附:存储器的数据线由存储器的字长决定,例如一块32K×16(存储器容量显示格式:存储单元数×存储单元的字长)的存储器,其地址线为15根,数据线为16根。
1-4 将十进制数78,134,分别用二进制数、十六进制数和8421BCD吗表示。 答:(78)D=(1001110)B=(4E)H=(01111000)8421BCD (134)D=(10000110)B=(86)H=(000100110100)8421BCD
注:8421BCD码为4位表示一个十进制数符,本质是符号不是数值,所以不可省略0。 1-5 将下列真值分别转化为用8位和16位二进制数表示的原码、补码和反码。
X=1000100; [X]8位原=[X]8位反=[X]8位补=01000100;[X]16位原=[X]16位反=[X]16位补=0000000001000100
X= -1000100
[X]8位原=11000100,[X]8位反=10111011,[X]8位补=10111100;
[X]16位原=1000000001000100,[X]16位反=1111111110111011,[X]16位补=1111111110111100;
X= -0111111
[X]8位原=10111111,[X]8位反=11000000,[X]8位补=11000001;
[X]16位原=1000000000111111,[X]16位反=1111111111000000,[X]16位补=1111111111000001; 1-6 将下列补码转化成二进制数的真值。
[X]补=00101100; X=101100 [X]补=11111111; X= -1
[X]补=10000000; X= -10000000
1-7 已知下列补码[X]补和[Y]补,分别求[X+Y]补、[X-Y]补。并判断运算结果是否出现溢出。
[X]补=10011001, [Y]补=00101100;
[-Y]补=11010100, [X+Y]补=[X]补+[Y]补=11000101不溢出;[X-Y]补=[X]补+[-Y]补=[X]补-[Y]补=01101101溢出;
[X]补=11111111, [Y]补=10000000;
[-Y]9位补=010000000, [X+Y]补=[X]补+[Y]补=01111111溢出;[X-Y]补=[X]补+[-Y]补=[X]补-[Y]补=01111111不溢出;
[X]补=00110111, [Y]补=11100000;
[-Y]补=00100000, [X+Y]补=[X]补+[Y]补=00010111不溢出;[X-Y]补=[X]补+[-Y]补=[X]补-[Y]补=01010111不溢出;
[X]补=10000111, [Y]补=11000000;
[-Y]补=01000000, [X+Y]补=[X]补+[Y]补=01000111溢出;[X-Y]补=[X]补+[-Y]补=[X]补-[Y]补=11000111不溢出; 方法提示:由于补码是按序列排列的,所以可以直接进行加和减,即[X+Y]补=[X]补+[Y]补;[X-Y]补=[X]补-[Y]补 另补码减法也可用加法实现[X-Y]补=[X]补+[-Y]补。上题的第2小题,由于[Y]8位补=10000000=28,Y=-28,所以(-Y)= 28,已不能用8位补码表示,可以先扩补位9位补码,然后进行运算,或直接用[X-Y]补= [X]补-[Y]补进行计算。判断结果是否溢出,可按下列方法:加法时,如果正负数相加(即两数的符号位不同),则结果肯定不溢出;如果同号数相加,结果与被加数和加数异号的则溢出(即正正相加结果为负或负负相加结果为正时)。减法时,如果同号数相减(即两数的符号位相同),则结果肯定不溢出;如果异号数相减,结果与被加数异号的则溢出(即正负相减结果为负或负正相减结果为正时)。此法比用变形补码直观,加和减都适用。
第二章习题答案
2-1 请说明单片机89C52内部有哪些资源。 答:1个8位CPU、8KB的FLASH程序存储器、256B的SRAM数据存储器、4个8位的并行I/O口(P0,P1,P2,P3)、1个全双工串行口、中断系统(5个中断源、2个中断优先级)、3个16位的定时/计数器(T0,T1,T2)、时钟电路(时钟频率6~24MHZ)。
2-2 为什么51系列单片机的存储器系统采用哈佛结构。
答:哈佛结构指的是指令代码和数据分别存放在程序存储器和数据存储器中,两部分存储器分别采用不同的地址总线系统。单片机在工作时一般执行固定不变的应用程序代码,而作为嵌入式控制系统的核心,受限于体积要求,单片机系统一般不会带有辅助存储器(例如硬盘等),为了在断电时也能保存用户的应用程序,故需将程序固化在只读存储器中,而单片机工作时程序运行过程中的数据是变化的,所以需要放在随机访问存储器中。
2-3 51单片机中的工作寄存器分布在存储器的哪个区域? 答:分布在内部数据存储器的00H~1FH区域。
2-4 在51系列单片机中,工作寄存器分几个区?如何改变工作寄存器区?
答:分为0、1、2、3四个区。修改特殊功能寄存器PSW的RS1和RS0位可改变当前工作寄存器区。 2-5 特殊功能寄存器和工作寄存器在存放信息方面有和区别?
答:特殊功能寄存器(SFR)中存放的是一些专用信息,这些信息与下列内容有关:计算机指令的执行条件及状态标志,定时/计数器的使用控制、中断系统的使用、并行I/O及串行I/O接口的使用。 工作寄存器只是用于暂时存放指令执行过程中一般的被操作数据。
2-6 特殊功能寄存器的地址空间如何?
答:特殊功能寄存器(SFR)的地址为8为二进制编码,地址范围为80H~0FFH,但各特殊功能寄存器的地址并非连续分布的。指令通过直接寻址的方式才能访问到。
2-7 51单片机中的位寻址区在哪里?它们的地址空间如何?
答:51单片机的位寻址区分布在两个地方。一部分位于内部数据存储器中字节地址为20H~2FH的16个单元中,这部分包括128个位,位地址空间为00H~7FH;另一部分位于字节地址能被8整除的特殊功能寄存器中, 位地址空间为80H~0FFH。
2-8 请指出下列位地址所在的内部数据存储器单元的字节地址或SFR名称。 答: 00H 内部RAM的20H单元;(20H).0 20H 内部RAM的24H单元;(24H).0 0A0H P2;P2.0 0B0H P3;P3.0 64H 内部RAM的2CH单元;(2CH).4 E6H 累加器ACC; ACC.6。
提示:1) 内部数据存储器内的可寻址位,其位地址(00H~7FH)与所在单元的字节地址(20H~2FH)间的关系如下:
位地址=(字节地址-20H)×8+DX, DX-该位在字节单元中的位置(D0~D7) 位地址÷8,商+20H=字节地址,余数=DX
2) SFR中的可位寻址(位地址80H~0FFH)的寄存器,其最低位的位地址与其字节地址相同。关系如下: 位地址÷8,商*8=SFR的字节地址,余数=DX,DX-该位在SFR中的位置(D0~D7)
2-9 若某51单片机应用系统将F000H~FFFFH地址空间分配给它外部的I/O接口,那么该单片机应用系统最多给外部数据存储器分配多少单元?地址空间如何?
答:51单片机的外部I/O接口和外部数据存储器是统一编制的,占用同一个地址空间,地址空间的容量为64KB,地址范围为0000H~FFFFH。据题意,系统已将F000H~FFFFH地址空间分配给它外部的I/O接口,则只剩下0000H~EFFFH可分配给外部数据存储器,容量为60KB。
2-10 在图2-9中的电容C,如果它取值太小,对复位电路有何影响?
答:51单片机上电复位,需要在RST引脚上保持10ms以上的高电平。如果C太小,则其充电时间变短,上电后,RST引脚上高电平保持的时间太短,则单片机内部复位将不能完全完成,有些寄存器内容将变得不确定。
2-11 上电复位和人工按钮复位后对内部数据存储器具有什么不同的影响? 答:上电复位后,内部数据存储器中的内容为不确定的状态。 人工按钮复位后,内部数据存储器中的内容不变(因为没有断电)。
2-12 51应用系统中,为何要对堆栈指针SP重新设置?
答:复位后(SP)=07H,则堆栈是从08H开始存放数据的。而内部数据存储器中00H~1FH单元为工作寄存器区,而20H~2FH单元为位寻址区,在实际的应用系统中,这些区域都可能使用到。故一般将堆栈设置在地址30H以后的单元中,所以需要对堆栈指针SP重新设置。
2-13 51单片机中的I/O接口中,那个接口在作为准双向口时需要外接电阻?若对某一接口进行读引脚的操作,必须事先对该接口做什么操作?
答:P0口需外接上拉电阻(因为P0是集电极开路结构)。 若需对某个接口读引脚(即读取外部输入信号的状态),需要对该接口的口锁存器写入1(例如:若需要读取P1.0、P1.1、P1.2、P1.3的引脚状态时,需要先执行MOV P1, #0FH。这也是为什么复位后(P0)= (P1)=(P2)=(P3)=0FFH的道理。)
第三章习题答案
3-1 指令的格式是由哪些部分组成的?每部分的含义是什么?
答:指令由操作码和操作数组成。在形式上操作码和操作数都是二进制代码。操作码用来表示指令的种类和功能,经由控制器中的指令译码器译码后产生控制信号。操作数是指令的操作对象,表示被操作数据或数据所在的存储单元地址。
3-2 什么是寻址方式?51系列指令系统有哪些寻址方式?
答:指令中给出操作数的方式叫做寻址方式。51系列机给出的寻址方式一般有7中:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址(直接寻址的一个特例――地址指向位单元)。
3-3 对于内部数据存储器00H~1FH区域的访问有哪些寻址方式?对于外部数据存储器的访问有哪些寻址方式?对于特殊功能寄存器的访问有哪些寻址方式?
答:对于内部数据存储器00H~1FH区域的访问有直接寻址、寄存器寻址、寄存器间接寻址三种方式。 对于外部数据存储器的访问只有寄存器间接寻址一种方式(以DPTR或R0、R1为指针)。
对于特殊功能寄存器的访问只有直接寻址一种方式。同时对于内部数据存储器80H~0FFH的128个单元的访问只有寄存器间接寻址一种方式(以R0、R1或SP为指针);借助于两种不同的寻址方式,可以将在地址上重合(80H~0FFH)的SFR和内部RAM高128字节单元的两部分空间加以区分。
3-4 51系列单片机有哪些标志位?这些标志位存放在哪里? 答:51单片机在程序运行时通常需要一下标志位:
Cy,AC,OV,P,RS1,RS0,它们都存放在特殊功能寄存器PSW(程序状态字寄存器)中。
3-5 分析下列各指令的操作数,指出它们的寻址方式。
MOV R4, 38H ;寄存器寻址,直接寻址 ADD A, @R1 ;寄存器寻址,寄存器间接寻址 MOVC A, @A+DPTR ;寄存器寻址,变址寻址(又称基址寄存器加变址寄存器间接寻址) MOVX A, @DPTR ;寄存器寻址,寄存器间接寻址 DEC B ;直接寻址 SETB 24H ;位寻址(直接寻址的一种,只是给出的直接地址是位地址) CJNE A, #100, NEXT ;寄存器寻址,立即寻址,相对寻址 ANL 30H, #00H ;直接寻址,立即寻址 PUSH P1 ;寄存器间接寻址(指针为SP,只是在堆栈操作指令中省略了),直接寻址 堆栈操作除了用PUSH和POP指令,完全可以用其它指令来完成,举例如下:
PUSH P1 可用下列程序段完成 INC SP MOV R0, SP MOV @R0, P1 POP P1 可用下列程序段完成 MOV R0, SP MOV P1, @R0 DEC SP
提示:上题答案中按操作数先后顺序给出其对应的寻址方式。
3-6 下列各指令或指令组执行前有关寄存器和存储器的状态如下表,要求分析各指令或指令组执行后有关寄存器、存储器和标志位的状态。 内部数据存储器和特殊功能寄存外部数据存储器 程序存储器 器 寄存器内容 单元地内容 单元地内容 单元地内容 程序计数器内容 名 址 址 址 B 64H 73H 10H 900BH 12H 1206H 35H (PC)=1200H ACC 03H 72H 11H 900AH 83H 1205H 34H PSW 80H 71H 00H 9009H D1H 1204H 33H 标号及标号值 DPL 05H 70H 80H 9008H 79H 1203H 32H NEXT1=0800H DPH 90H 9007H 0CH 1201H 31H NEXT2=0900H SP 71H 36H F8H 9006H 23H 1200H 30H NEXT3=1280H R0 00H 35H 2BH 9005H 13H LOOP=1148H R1 36H 34H 36H 9004H 4DH R2 35H 33H 74H 9003H 2EH R3 B7H 32H 59H 9002H 7FH R4 03H 9001H 54H R5 F6H 26H 66H 9000H 38H R6 E4H 25H 55H R7 21H 24H 44H P0 7CH P2 90H
提示:在上表中需注意几点:(PSW)=80H,即Cy=1, AC=0, RS1=RS0=0(故当前工作寄存器区为0区)。工作寄存器区为0区时,R0~R7指向内部数据存储器的00H~07H,所以当指令中出现直接地址00H~07H中的某个时,其初始条件即为R0~R7中某个对应的寄存器的值。另,因为(DPH)=90H, (DPL)=05H, 所以(DPTR)=9005H。标号值实质上是代表标号所在处的指令在程序存储器中的地址,标号往往出现在程序转移指令中,指出转移指令的目标地址。
1) MOV R0,#32; (R0)=32=20H 2) MOV 25H,@R1; (25H)= 0F8H 3) MOVX A,@DPTR; (A)= 13H P=1 4) MOVX A,@R0; (A)= 38H P=1 5) MOVC A,@A+PC; (A)= 33H P=0 6) MOV A,04H; (A)= 03H P=0 7) XCH A,34H; (A)= 36H (34H)= 03H 8) XCHD A,@R1; (A)= 08H (36H)=0F3H 9) PUSH DPL; (SP)=72H (72H)=05H 10) POP DPH; (DPH)=00H (SP)=70H 11) SUBB A,R1; (A)= 0CCH Cy=1 P=0 AC=1 OV=0 12) ADD A,R6; (A)= 0E7H Cy=0 P=0 AC=0 OV=0 13) ADDC A,36H; (A)= 0FCH Cy=0 P=0 AC=0 OV=0 14) MUL AB; (A)= 2CH (B)=01H 15) INC R0; (R0)= 01H 16) DEC A; (A)= 02H P=1 17) ADD A,#49H;
DA A; (A)=52H Cy=0 P=1 18) ANL A, R1; (A)= 02H (R1)=36H P=1 19) ORL A,32H; (A)= 5BH P=1
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库51单片微型机原理和接口教程 习题答案(完整版)在线全文阅读。
相关推荐: