作业习题答案《单片机应用技术》部分习题与参考答案第1章单片机概述1-1什么是嵌入式系统?嵌入式系统的硬件和软件各包括哪些内容?答:以应用为中心,以计算机技术为基础,软/硬件可剪裁,针对具体应用系统,对功能、可靠性,成本、体积、功耗严格要求的专用计算机系统称为嵌入式计算机系统。简称为嵌入式系统。嵌入式系统的硬件包括:嵌入式处理器、存储器和外部设备器件、输入输出接口、图形控制器等。软件包括操作系统和应用程序。嵌入式系统是专用的计算机系统,嵌入式系统的核心是嵌入式处理器,单片机是嵌入式处理器的典型代表。1-2什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。1-3嵌入式处理器有何特点?嵌入式处理器分为哪几类?答:嵌入式处理器对实时和多任务系统有和强的支持能力、对存储区保护功能强、具有可扩展的处理器结构及低功耗等特点。嵌入式处理器分为:嵌入式微处理器、微控制器、嵌入式DSP处理器和片上系统等。1-4单片机系统的开发过程分为那几步进行?答:1.硬件的设计与调试。2应用程序的设计和调试。3系统联调。4程序的固化。5.脱机运行。1-5Intel公司的主要单片机产品分为哪几大系列?各系列的区别何在?答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。1-6叙述51子系列与52子系列的区别?答:51子系列包含8031/8051/8751三种型号,它们的基本组成、基本性能都相同,都具有一个8位CPU、片内数据存储器RAM128B、2个16位定时/计数器、有5个中断源,一个全双工串行接口,它们之间的区别在于片内程序存储器配置:8031片内没有ROM,使用时需在片外接EPROM。8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。52子系列包含8032/8052/8752三种型号,52子系列与51子系列的区别在于:片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。第2章MCS-51系列单片机的基本结构2-1画出微型计算机基本结构框图,简述各部分的基本功能。答:见教材图2-2。2-2MCS-51单片机的引脚有何功能?在使用8031时如何接法?使用8751时如何接法?答:引脚是片内外程序存储器的选择信号。当端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于8031片内没有程序存储器,所以在使用8031时,引脚必须接低电平。2-3微型计算机的存储器普林斯顿结构和哈弗结构有什么不同?答:按微型计算机的存储器地址空间的不同分配形式分为普林斯顿结构和哈弗结构。普林斯顿结构的特点是计算机只有一个地址空间。CPU访问ROM和RAM采用相同的指令。哈弗结构将ROM和RAM安排在相互独立的两个地址空间,ROM和RAM可以有相同的地址,但采用不同的指令访问。51系列单片机采用哈弗结构。2-4微型计算机存储器的地址线与存储的容量有什么关系?如果存储器的地址线有13条,则存储的容量为多大?答:存储的容量=2n,(n:存储器的地址线的条数)。213=8KB.2-589C51单片机的存储器从物理结构上分别可划分为几个空间?89C51单片机采用何种方式区分内外程序存储器和内外数据存储器?答:89C51单片机的存储器从物理结构上分别内外程序存储器和内外数据存储器。内外程序存储器采用引脚/EA、/PSEN接到不同的电平区分,内外数据存储器采用引脚/RD、/WR连接和不同的指令加以区分。2-6MCS-51单片机的内部存储空间是怎样分配的?答:MCS-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。2-7如何从MCS-51单片机的4个工作寄存器组中选择当前工作寄存器组?答:MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。具体关系如下表:RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器2-8内部RAM低128个单元是如何划分的?答:内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。2-9DPTR是什么寄存器?它的作用是什么?它由哪几个寄存器组成?答:DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。2-10什么是堆栈?堆栈有何作用?为什么在程序初始化时要对SP重新赋值?答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-11试述程序状态字寄存器PSW各位的含义。答:程序状态字寄存器PSW是8位寄存器,用于存放程序运行的状态信息。CY(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5)、F1(PSW.1):用户标志位。RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位。OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位。2-12P0、P1、P2、P3口的结构有何不同?使用时要注意什么?各口都有什么用途?答:P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。2-13请说出指令周期、机器周期、状态和拍的概念。当晶振频率为12MHz、8MHz时,一个机器周期为多少微秒?答:指令周期:执行一条指令所需要的时间。机器周期:CPU完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz时,一个机器周期为1μs;当晶振频率为8MHz时,一个机器周期为1.5μs。2-14什么是单片机复位?复位后单片机的状态如何?答:在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。程序指针Pc=0000H。第3章MCS-51系列单片机的指令系统3-1MCS-51系列单片机指令格式是怎样的?各有何含义?答:单片机指令格式由操作码和操作数组成。操作码说明指令操作性质,操作数说明操作对象。3-2MCS-51系列单片机有哪几种寻址方式?各种寻址方式所对应的寄存器或存储器寻址空间如何?答:MCS-51系列单片机提供了7种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。(2)直接寻址:在指令中直接给出操作数地址。对应片内低128个字节单元和特殊功能寄存器。(3)寄存器寻址:以寄存器的内容作为操作数。对应的寄存器有:R0~R7、A、AB寄存器和数据指针DPTR。(4)寄存器间接寻址:以寄存器的内容作为RAM地址,该地址中的内容才是操作数。对应片内RAM的低128个单元采用R0、R1作为间址寄存器,片外RAM低256个单元可用R0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器。(5)变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。对应片内、片外的ROM空间。(6)相对寻址:只在相对转移指令中使用。对应片内、片外的ROM空间。(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。3-4若访问特殊功能寄存器,可使用那些寻址方式?答:直接寻址方式。3-5若访问外部RAM单元,可使用那些寻址方式?答:寄存器间接寻址方式。3-6若访问内部RAM单元,可使用那些寻址方式?答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。3-7若访问内外程序存储器,可使用那些寻址方式?答:变址寻址方式3-8外部数据传送指令有几条?试比较下面每一组中两条指令的区别。(1)MOVXA,@R1,MOVXA,@DPTR(2)MOVXA,@DPTR,MOVX@DPTR,A(3)MOV@R0,A,MOVX@R0,A(4)MOVCA,@A+DPTR,MOVXA,@DPTR答:外部数据传送指令有6条:MOVXA,@DPTRMOVX@DPTR,AMOVXA,@RiMOVX@Ri,AMOVCA,@A+DPTRMOVCA,@A+PC(1)MOVXA,@R1MOVXA,@DPTR都是访问片外RAM,但二者寻址范围不同。前1条指令是对片外RAM低256个单元的“读”操作。后1条指令是对片外RAM64KB空间的“读”操作。(2)MOVXA,@DPTRMOVX@DPTR,A访问空间相同,但数据传送方向不同。前1条指令是对片外RAM64KB空间的“读”操作。后1条指令是对片外RAM64KB空间的“写”操作。(3)MOV@R0,AMOVX@R0,A二者访问的空间不同。前1条指令是对片内RAM低128个单元的“写”操作。后1条指令是对片外RAM低256个单元的“写”操作。(4)MOVCA,@A+DPTRMOVXA,@DPTR二者访问的空间不同,寻址方式不同。前1条指令是变址寻址方式,对ROM操作。后1条指令是寄存器间接寻址方式,对片外RAM操作。3-9已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=EFH,试写出执行以下程序段后有关单元的内容。MOVR0,#30HMOVA,@R0MOVR1,AMOVB,@R1MOV@R1,P1MOVP2,P1MOV10H,#