单片机原理及接口技术教材习题全部解答第1章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。它的特点是:计算机字长为12位,运算速度为5000次/s,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为100多万美元。它的诞生,标志着人类文明进入了一个新的历史阶段。1-2解答:单片微型计算机简称单片机。一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。8031片内没有ROM,使用时需在片外接EPROM。8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。其中片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。(3)80C31/80C51/87C51BH是8051子系列的CHMOS工艺芯片,80C32/80C52/87C52是8052子系列的CHMOS工艺芯片,两者芯片内的配置和功能兼容。1-6解答:8052子系列片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。1-7解答:AT89系列单片机是美国Atmel公司的8位Flash单片机产品。它的最大特点是在片内含有Flash存储器,在系统的开发过程中可以十分容易地进行程序的修改,使开发调试更为方便。AT89系列单片机以8031为内核,是与8051系列单片机兼容的系列。1-8解答:高档型单片机有AT89S51、AT89S52、AT89S53和AT89S8252等型号,其中AT89S51有4KB可下载Flash存储器,AT89S52、AT89S8252有8KB可下载Flash存储器,AT89S53有12KB可下载Flash存储器。第2章MCS-51系列单片机的结构及原理2-1解答:MCS-51单片机由8个部件组成:中央处理器(CPU),片内数据存储器(RAM),片内程序存储器(ROM/EPROM),输入/输出接口(I/O口,分为P0口、P1口、P2口和P3口),可编程串行口,定时/计数器,中断系统及特殊功能寄存器(SFR)。中央处理器(CPU):单片机的核心部分,它的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。片内数据存储器(RAM):存放各项操作的临时数据。片内程序存储器(ROM/EPROM):存放单片机运行所需的程序。输入/输出接口(I/O口):单片机与外设相互沟通的桥梁。可编程串行口:可以实现与其它单片机或PC机之间的数据传送。定时/计数器:具有可编程功能,可以完成对外部事件的计数,也可以完成定时功能。中断系统:可以实现分时操作、实时处理、故障处理等功能。特殊功能寄存器(SFR):反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,以及各种初始值。2-2解答:EA引脚是片内外程序存储器的选择信号。当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。当EA端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于8031片内没有程序存储器,所以在使用8031时,EA引脚必须接低电平。2-3解答:在MCS-51单片机中,除P3口具有第二功能外,还有3条控制线具有第二功能。P3口的第二功能:P3.0—RXD:串行数据接收端P3.1—TXD:串行数据发送端P3.2—0INT:外部中断0申请输入端P3.3—1INT:外部中断1申请输入端P3.4—T0:定时器0计数输入端P3.5—T1:定时器1计数输入端P3.6—WR:外部RAM写选通P3.7—RD:外部RAM读选通3条控制线的第二功能:ALE—PROG:片内EPROM编程脉冲。片内具有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。RESET—VPD:备用电源。VCC掉电期间,此引脚可接备用电源,以保持内部RAM数据不丢失。EA—VPP:片内EPROM编程电源。在对片内具有EPROM的芯片进行编程时,此引脚用于施加21V编程电源。2-4解答:MCS-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元。低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。2-5解答:MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。具体关系如下表:RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器2-6解答:内部RAM低128个单元按用途分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。2-7解答:DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。DPTR由高位字节DPH和低位字节DPL组成。2-8解答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。堆栈的用途是保护现场和断点地址。在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。2-9解答:程序状态字寄存器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-10解答:P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。2-11解答:指令周期:执行一条指令所需要的时间。机器周期:CPU完成一个基本操作所需要的时间。状态:振荡脉冲经过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12MHz时,一个机器周期为1μs;当晶振频率为8MHz时,一个机器周期为3μs。2-12解答:在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。2-13解答:8051单片机应用系统的电压检测电路监测到电源下降时,触发外部中断,在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存。(内部RAM由备用电源供电)80C51单片机应用系统的电压检测电路监测到电源降低时,也出发外部中断,在中断服务子程序中,除了要将外部RAM中有用的数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。2-14解答:单片机退出空闲状态有两种方法:中断退出和硬件复位退出。第3章MCS-51系列单片机的指令系统3-1解答:指令是规定计算机进行某种操作的命令,一台计算机所能执行的指令集合称为该计算机的指令系统。计算机内部只识别二进制数,因此,能别计算机直接识别、执行的指令时使用二进制编码表示的指令,这种指令别称为机器语言指令。以助记符表示的指令就是计算机的汇编语言指令。3-2解答:[标号:]操作码[操作数][;注释]3-3解答: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解答:寄存器间接寻址方式。3-6解答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。3-7解答:变址寻址方式3-8解答:对于8052单片机内部RAM的高128B,必须采用寄存器间接寻址方式进行访问。3-9解答:外部数据传送指令有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低