《单片机原理及应用》习题答案
第一章 计算机基础知识
1-1 微型计算机主要由哪几部分组成?各部分有何功能?
答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3 什么叫单片机?其主要由哪几部分组成?
答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?
答:单片机片内ROM的配置状态可分四种:
(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;
(2)片内EPROM型单片机(如8751),适合于研制产品样机;
(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;
(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制) 1100010 98 62H 1001110 20039 4E47H 585 249H 10 111111 16236 3F6CH 11101 29 1D 101 1495 5D7 1-6 写出下列各数的BCD参与:
59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010 389.41:001110001001.01000001
第二章 MCS-51单片机的硬件结构
2-1 8052单片机片内包含哪些主要逻辑功能部件? 答:8052单片机片内包括: ①8位中央处理器CPU一个 ②片内振荡器及时钟电路 ③256B数据存储器RAM。 ④8KB片内程序存储空间ROM ⑤21个特殊功能寄存器SFR
⑥4个8位并行I/O端口(32条线) ⑦1个可编程全双工串行口
⑧可寻址64KB的外部程序存储空间和外部数据存储空间 ⑨3个16位的定时器/计数器
⑩6个中断源、2个优先级嵌套中断结构
2-2 8052的存储器分哪几个空间?如何区别不同空间的寻址? 答:?8052的存储器分为6个编址空间:
①片内ROM的容量为8KB,其地址为0000H~1FFFH; ②可扩展片外ROM的容量为64KB,其地址为0000H~FFFFH;
片内RAM的容量为256B,其地址为00H~FFH分为二块:③地址00H~7FH共128B为片内RAM低区,④另128B为片内RAM高区,其地址空间为80H`FFH,其地址空间与SFR功能寄存器地址重叠;
⑤可扩展片外RAM的容量为64KB,其地址为0000H~1FFFH;
⑥特殊功能寄存器SFR的空间为128B,其地址为80H~FFH,但实际只定义了26B单元,这26B单元分散在80H`F0H。
?程序存储器和数据存储器在逻辑上是完全分开的。
CPU通过指令MOVC访问程序存储器。当8052第31脚EA接高电平时, CPU将从片内程序存储器0000H单元开始执行,当PC值超出片内程序存储空间,即大于1FFFH时,会自动转向片外程序存储空间。当EA接低电平时,CPU将从片外程序存储器ROM的0000H单元开始执行。
CPU通过MOV指令访问片内数据存储空间RAM,低区128B地址空间00H~7FH中地址为00H~1FH这32个单元分为4个工作寄存器组,分别用R0~R7表示,通过工作寄存器指令进行访问。片内RAM中的20H~2FH单元除可作为一般字节寻址单元使用外,这16个单元共128位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为00H`7FH;对片内高区128B寻址只能用寄存器间接寻址,而对特殊功能寄存器建起必须使用直接寻址。
CPU通过指令MOVX访问片外数据存储器。
2-3 DPTR的作用是什么?它由哪几个寄存器组成?
答:相对于地址指针,DPTR被称为数据指针,但实际上DPTR中存放的是一个16位的地址,作为访问程序存储器和外部数据存储器的地址指针。当对64KB外部数据存储器空间寻址时,作为间址寄存器使用,而在访问程序存储器时,作为基址寄存器使用。DPTR是一个16位的特殊功能寄存器,由两个8位寄存器DPH、DPL组成,使用SFR中的82H和83H单元。
2-4 简述布尔处理存储器的空间分配。
答:在单片机中位处理又称布尔处理,允许按位处理的存储器称为布尔处理存储器。其地址空间由二部分构成:一部分是片内RAM中字节地址为20H~2FH的16字节的128个位,这些位编址为00H`7FH;另一部分在特殊寄存器中,其地址码能被8整除的12个特殊功能寄存器可以按位寻址,但其中4个未定义,一共有92位可按位寻址。这二部分结合起来形成一个具有220位的位寻址空间。
2-5 8052单片机设置4组工作寄存器,如何选择确定和改变当前工作寄存器?
答:8052片内数据存储器的00H~1FH这32个单元分为4级作为4个工作寄存器第0组地址00H`07H,第一组08H~0FH,第二组10H~17H,第3组18H~1FH。每个工作寄存器都有8个单元,分别用R0~R7表示。4组寄存器中每一组都可能被选为CPU的工作寄存器,这是通过程序状态字PSW的PSW.3(RS0)和PSW.4(RS1)两位的状态来选择决定的。见下表: PSW.4(RS1) 0 0 1 1 PSW.3(RS0) 0 1 0 1 当前使用的工作寄存器组R0`R7 0组(00H`07H) 1组(08H`0FH) 2组(10H`17H) 3组(18H`1FH) 通过程序改变RS1和RS0的状态,就可方便地更换工作寄存器组。 2-6 程序状态字寄存器PSW的作用是什么?常用的状态标志位有哪些位?作用分别是什么?
答:PSW是一个8位的特殊功能寄存器,由一些标志位组成,用于存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用如下:
Cy:进位标志位。在进行加(或减)法运算时,若操作结果的最高位(D7位)有进位(或借位)时,Cy由硬件置1,否则Cy清0。在进行位操作时,Cy又是位累加器,指令助记符用C表示。
AC:辅助进位标志位。在进行加(或减)运算时,若操作结果的低半字节(D3
位)向高半字节产生进位(或借位)时,AC位将由硬件自动置1,否则AC位清0。
F0:用户标志位。用户根据需要对F0置位或复位,作为软件标志。 RS1和RS0:工作寄存器组选择控制位。由用户用软件改变RS1和RS0的状态,以选择内RAM中的哪组工作寄存器为当前工作寄存器组。
OV:溢出标志位。当进行补码运算时,运算结果超出-128~+127范围时,产生溢出,则OV自动置1,否则OV清0。
PSW.1:保留位。8051中未定义。
P:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器A中1的数目的奇偶性。如果A中有奇数个1,则P=1;否则P=0。
2-7 8052单片机的EA引脚有何功能?在使用8032时,EA引脚就如何处理?
答:8052单片机的31脚为EA, EA为访问外部或内部程序存储器控制信号。当EA引脚接高电平且PC值小于1FFFH时,CPU访问内部程序存储器读取指令,当EA引脚接低电平时,CPU只访问外部等量齐观存储器读取指令。
在8032芯片中没有内部程序存储器,因此,8032芯片的31脚EA只能接地。 2-8 8052内部RAM中低128 B单元划分为哪几个主要部分?各部分主要功能是什么?
答:8052内部数据存储器RAM中低128B单元地址空间00H~7FH被划分为三个部分。第一部分地址为00H~1FH这32个单元分为4个工作寄存器组,分别用R0~R7表示,通过工作寄存器指令进行访问。片内RAM中的第二部分20H~2FH单元除可作为一般字节寻址单元使用外,这16个单元共128位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为00H`7FH;第三部分地址30H~7FH,这部分存储区域可作为8位数据缓冲区使用,一般地,用户把堆栈就设置在这部分区域。
2-9 8052内部RAM中高128B单元与特殊功能寄存器区地址空间重叠,使用中是如何区分这两个空间的?
答:对8052片内高区(80H`0FFH)128B只能 采用寄存器间接寻址,而对特殊功能寄存器SFR建起必须采用直接寻址。
2-10 什么叫堆栈?堆栈指针SP的作用是什么?
答:堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内部RAM区域,这个存储器区域的一端是固定的(栈底),另一端是活动的(栈顶),每个存储单元是不能按字节任意访问的。
堆栈指针SP始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。
2-12 什么是时钟周期、机器周期和指令周期?
答:(1)时钟周期(又称为振荡周期)是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为拍节。
(2)机器周期是指CPU完成某一个规定操作所需的时间,8051单片机的一个机器周期包含6个状态,并依次表示为S1~S6,每个状态分为2个节拍。因此一个机器周期包含12个时钟周期(振荡周期),依次表示为:S1P1、S1P2、S2P1、?、S6P1、S6P2。
(3)指令周期是指CPU执行一条指令所需要的时间称为指令周期。MCS-51单片机指令周期根据指令的不同,可包含有1或2或4个机器周期。
第三章 MCS-51单片机指令系统
3-1 指出下列每一条指令的寻址方式及其完成的操作。 MOV 2FH,#40H MOV A,2FH MOV R1,#2FH MOV A,@R1 累加器A
MOV 2FH,A 答:直接寻址:
间接寻址:
;隐含寻址,将累加器A中的值移入片内2FH单元 MOV R1,4FH MOV R1,#4FH
3-2 内部RAM的4FH单元,可用哪几种寻址方式?分别举例说明。
;立即寻址,将40H移入片内2FH单元 ;直接寻址,将片内2FH单元的数移入累加器A ;立即寻址,将2FH移入当前寄存器组的R1单元 ;寄存器间接寻址,将寄存器R1中所存地址中的值移入
寄存器间接寻址: MOV A,@R1 3-3 指出下列各条指令中,45H代表什么? MOV A,#45H MOV A,45H MOV 45H,46H MOV 45H,#45H MOV C,45H 条指令的执行结果:
答:PSW的各位为11110000,即Cy=1,AC=1,F0=1,RS1=1,RS0=0,OV=0,P=0 (1)SUBB A,30H
结果:(A)=D4H,CY=1,AC=0,OV=1,P=0 (2)SUBB A,#30H
结果:(A)=49H,CY=0,AC=0,OV=0,P=1
;数值 ;源地址 ;目标地址 ;目标地址和数值 ;源地址
3-4 已知:(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,请写出下列各