《单片机原理及接口技术》李全利高等教育答案章1绪论1.答:第一台电子数字计算机ENIAC问世,标志着计算机时代的到来。与现代的计算机相比,ENIAC有许多不足,但它的问世开创了计算机科学技术的新纪元,对人类的生产和生活方式产生了巨大的影响。2.答:由运算器、控制器、存储器、输入设备和输出设备组成,运算器与控制器合称为CPU。3.答:微型计算机由微处理器、存储器和I/O接口电路构成。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。4.答:微处理器集成了运算器和控制器(即CPU);而微型计算机包含微处理器、存储器和I/O接口电路等。5.答:在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。单片机主要特点有:控制性能和可靠性高;体积小、价格低、易于产品化;具有良好的性能价格比。。6.答:微型计算机有三种应用形式:多板机(系统机)、单板机和单片机。多板机,通常作为办公或家庭的事务处理及科学计算,属于通用计算机。单板机,I/O设备简单,软件资源少,使用不方便。早期主要用于微型计算机原理的教学及简单的测控系统,现在已很少使用。单片机,单片机体积小、价格低、可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。目前,单片机应用技术已经成为电子应用系统设计的最为常用技术手段。7.答:多年来的应用实践已经证明,80C51的系统结构合理、技术成熟。因此,许多单片机芯片生产厂商倾力于提高80C51单片机产品的综合功能,从而形成了80C51的主流产品地位,近年来推出的与80C51兼容的主要产品有:ATMEL公司融入Flash存储器技术推出的AT89系列单片机;Philips公司推出的80C51、80C552系列高性能单片机;华邦公司推出的W78C51、W77C51系列高速低价单片机;ADI公司推出的ADμC8xx系列高精度ADC单片机;LG公司推出的GMS90/97系列低压高速单片机;Maxim公司推出的DS89C420高速(50MIPS)单片机;Cygnal公司推出的C8051F系列高速SOC单片机等。8.答:系统需求分析,硬件方案设计,软件编程,仿真调试,实际运行。9.答:在系统编程(ISP)技术,在应用编程(IAP)技术。章280C51的结构和原理1答:功能上分为基本型和增强型;工艺上分为HMOS工艺和CHMOS工艺;在片内程序存储器的配置上有掩膜ROM、EPROM和Flash、无片内程序存储器形式。2答:采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间;80C51基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有21个SFR。3.答:作为通用I/O口时,P0、P1、P2和P3都是准双向口。P0可以作为地址/数据总线,此时是一个真正的双向口;P2口可以作为地址线的高8位;P3口是双功能口,每条口线还具有不同的第二功能。另外,P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。4.答:机器周期分别为2μs,1.085μs,1μs。5.答:复位后,PC内容为0000H,P0口~P3口内容为FFH,SP内容为07H,SBUF内容不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。复位方法一种是上电复位,另一种是上电与按键均有效的复位。6.答:80C51的引脚为访问片内、片外程序存储器的选择端。访问片内、片外数据存储器需要采用不同的指令加以区分。7.答:CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位);F0:用户标志位,由用户自己定义;RS1、RS0:当前工作寄存器组选择位;OV:溢出标志位。有溢出时OV=1,否则OV=0;P:奇偶标志位。存于ACC中的运算结果有奇数个1时P=1,否则P=0。8.答:当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0来决定。9.答:RST/VPD:复位信号输入引脚/备用电源输入引脚;ALE/:地址锁存允许信号输出引脚/编程脉冲输入引脚;/VPP:内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;:外部程序存储器选通信号输出引脚。10.答:0000H:单片机复位入口地址;0003H:外部中断0的中断服务程序入口地址;000BH:定时/计数器0溢出中断服务程序入口地址;0013H:外部中断1的中断服务程序入口地址;001BH:定时/计数器1溢出中断服务程序入口地址;0023H:串行口的中断服务程序入口地址。章380C51的指令系统1.答:执行时间短。1个机器周期指令有64条,2个机器周期指令有45条,而4个机器周期指令仅有2条(即乘法和除法指令);指令编码字节少。单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条;位操作指令丰富。这是80C51单片机面向控制特点的重要保证。2.答:80C51单片机的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。这些寻址方式所对应的寄存器和存储空间如下表所示。序号寻址方式寄存器或存储空间1寄存器寻址寄存器R0~R7,A、AB、DPTR和C(布尔累加器)2直接寻址片内RAM低128字节、SFR3寄存器间接寻址片内RAM(@R0,@R1,SP)片外RAM(@R0,@R1,@DPTR)4立即寻址ROM5变址寻址ROM(@A+DPTR,@A+PC)6相对寻址ROM(PC当前值的+127~-128字节)7位寻址可寻址位(内部RAM20H~2FH单元的位和部分SFR的位)3.答:直接寻址和位寻址方式。4.答:直接寻址、寄存器间接寻址和位寻址方式。5.答:寄存器间接寻址。6.答:立即寻址、变址寻址和相对寻址方式。7.答:单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时,借用了程序状态标志器(PSW)中的进位标志Cy作为位操作的“累加器”。8.寄存器间接寻址方式。9.(1)MOVA,#88H----------------74H,88H(2)MOVR3,50H----------------ABH,50H(3)MOVP1,#55H----------75H,90H,55H(4)ADDA,@R1---------------------27H(5)SETB12H----------------------D2H,12H10.答:(1)MOVA,R0MOVR1,A(2)MOVR2,60H(3)MOVDPTR,#1000HMOVXA,@DPTRMOV60H,A(4)MOVDPTR,#1000HMOVXA,@DPTRMOVR2,A(5)MOVDPTR,#1000HMOVXA,@DPTRMOVDPTR,#2000HMOVX@DPTR,A11.答:(R1)=7FH(A)=60H(30H)=08H(40H)=60H12.答:(1)(A)=2CH(2)(40H)=0CH(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0(4)(A)=8EH(5)(20H)=0EH,P=1(6)(A)=EFH,(20)=08H13.答:(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。14.答:(1)SETBACC.0(2)ANLA,#0FH(3)ANLA,#87H15.答:MOV2FH,20HMOV2EH,21HMOV2DH,22H16.答:CLRCYMOV30H,#7FHMOV31H,#4DHMOVR0,#31HMOVA,@R0SUBBA,#4EMOV@R0,A;保存低字节相减结果DECR0MOVA,@R0SUBBA,#2BHMOV@R0,A;保存高字节相减结果17.答:MOVA,R2ANLA,#0F0HORLR1,A18.答:MOVA,20HMOVB,21HMULABMOVR3,AMOVR2,B19.答:(CY)=1,(P1)=10111011B,(P3)=00111100B章480C51的汇编语言程序设计1.答:汇编语言结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。它是面向机器的语言,对于单片机硬件的操作直接、方便,有利于初学者对单片机结构的认知。但它与高级语言相比移植性不好、编程复杂、对编程人员的基础要求高。2.答:一、任务分析首先,要对单片机应用系统的设计目标进行深入分析,明确系统设计任务:功能要求和技术指标。然后对系统的运行环境进行调研。这是应用系统程序设计的基础和条件。二、算法设计经过任务分析和环境调研后,已经明确的功能要求和技术指标可以用数学方法(或模型)来描述,进而把一个实际的系统要求转化成由计算机进行处理的算法。并对各种算法进行分析比较,并进行合理的优化。三、流程描述程序的总体构建。先要确定程序结构和数据形式,资源分配和参数计算等。然后根据程序运行的过程,规划程序执行的逻辑顺序,用图形符号将程序流程绘制在平面图上。应用程序的功能通常可以分为若干部分,用流程图将具有一定功能的各部分有机地联系起来。流程图可以分为总流程图和局部流程图。总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关系;局部流程图反映程序模块的具体实施细节。3.答:顺序程序:无分支、无循环结构的程序,其执行流程是依指令在存储器中的存放顺序进行的;分支程序:可以改变程序的执行顺序;循环程序:按某种控制规律重复执行的程序,控制一部分指令重复执行若干次,以便用简短的程序完成大量的处理任务。4.答:利用累加器或寄存器;利用存储器;利用堆栈。5.答:伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。常用的伪指令包括:ORG,功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;END,功能是结束汇编;DB,功能是从标号指定的地址单元开始,在程序存储器中定义字节数据;DW,功能是从标号指定的地址单元开始,在程序存储器中定义字数据空间;EQU,功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名;BIT,功能是将位地址赋给指定的符号名。6.答:程序如下:ORG0000HMOVR0,#21HMOVR1,#23HMOVA,@R0ADDA,@R1MOV25H,ADECR0DECR1MOVA,@R0ADDCA,@R1MOV24H,ASJMP$END7.答:ORG0000HMOVDPTR,#1000HMOVR0,#30HMOVR7,#32LOOP:MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOPRET8.答:ORG0000HMOVA,R1ADDA,R7MOV61H,AMOVA,R0ADDCA,R6MOV60H,ASJMP$END9.答:延时时间:2µs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含调用指令2个机器周期)10.答:ORG0000HBIGDATA2FHONEDATA2AHTWODATA2BHSTART:MOVR7,#7;比较次数MOVR0,#30HLOOP:MOVA,@R0MOVONE,AINCR0MOVTWO,@R0CLRCSUBBA,@R0JCNEXT;ONE小,TWO大继续比下一对数MOV@R0,ONE;ONE大放后面(交换)DECR0MOV@R0,TWO;TWO小放前面INCR0;NEXT:DJNZR7,LOOPMOVBIG,37HSJMP$END11.答:单字节二进制数转换为压缩的BCD码仅需要2个字节;在将压缩的BCD码拆分存于3个单元。org0MOV52H,#0MOV51H