第一章
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
1
注: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;
2
[-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]补进行计算。判断结果是否溢出,可按下列方法:加法时,如果正负数相加(即两数的符号位不同),则结果肯定不溢出;如果同号数相加,结果与被加数和加数异号的则溢出(即正正相加结果为负或负负相加结果为正时)。减法时,如果同号数相减(即两数的符号位相同),则结果肯定不溢出;如果异号数相减,结果与被加数异号的则溢出(即正负相减结果为负或负正相减结果为正时)。此法比用变形补码直观,加和
3
减都适用。
第二章
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 特殊功能寄存器和工作寄存器在存放信息方面有和区别?
4
答:特殊功能寄存器(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 20H
内部RAM的20H单元;(20H).0
内部RAM的24H单元;(24H).0
0A0H P2;P2.0 0B0H P3;P3.0
5