您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 单片机原理、应用及PROTEUS仿真课后题答案
第1章单片机技术基础1.填空题(1)微控制器、嵌入式微控制器。(2)CPU、存储器和I/O接口,总线。(3)地址总线,第二功能。(4)外部程序存储器选通信号输出引脚,复位引脚,外部。(5)5,0003H,000BH,0013H,001BH,0023H。(6)地址,数据,总线复用。(7)0000H,FFH,00H,07H。(8)28H,D7。(9)2,10H、17H。(10)内,8。(11)2。(12)XTAL1,XTAL2。2.选择题(1)D(2)B(3)C(4)D(5)C(6)B(7)B(8)B(9)A(10)B3.简答题(1)8051单片机内部都集成了哪些主要功能部件?这些功能部件都有什么作用?答:主要集成了CPU、存储器、I/O接口、时钟振荡电路、中断系统、定时/计数器等功能部件;CPU是整个单片机的控制核心,完成数据的运算和各种控制功能,存储器用于存储数据或者程序,I/O接口主要用于数据的输入和输出,时钟振荡电路用于提供单片机工作所需要的时钟信号,中断系统用于实现单片机的中断功能,定时/计数器用于实现单片机的定时和计数功能。(2)8051单片机内部RAM可以划分成几个区域?各自特点和功能是什么?答:8051单片机内部RAM可以划分成4个区域,分别为工作寄存器组区、位寻址区、用户RAM区和特殊功能寄存器区;工作寄存器组区用于存储工作寄存器的数值,位寻址区同时支持位数据和字节数据的存储,用户RAM区用于存储单片机的各种临时数据,特殊功能寄存器区用于存放各种特殊功能寄存器的参数。(3)何谓PC?它属于特殊功能寄存器吗?其主要作用是什么?答:PC称为程序计数器,不属于特殊功能寄存器,作用在于存储程序在存储器中的存放地址,并具有自动加1功能,保证能够连续取指令。(4)何谓堆栈和堆栈指针?8051单片机如何设置堆栈?答:堆栈是内存中设置的一段地址连续的存储区域,用于保存现场信息、断点地址等重要数据,堆栈指针是一个能永远指向堆栈顶部的指针。单片机的堆栈可以采用系统默认(07H)的方式设置,也可以通过对堆栈指针赋值的方式来设置。(5)程序状态字PSW的作用是什么?包含哪些标志位?分别作用是什么?答:程序状态字PSW的作用是用于反应CPU运行状态或者控制CPU运行的寄存器。主要包含:进位标志位CY,用于显示数据运算时最高位是否有进位(借位);辅助进位标志位AC,用于显示数据运算时低4位是否有向高4位进位(借位);溢出标志位OV,用于指示数据运算后是否溢出;奇偶标志位P用于指示运算结果中1的个数是奇数个还是偶数个;工作寄存器选择控制位RS1、RS0,用于设置工作寄存器组安排在哪个区域;用户标志位F0,留给程序设计人员存储相应标志位用。(6)8051单片机内部有哪些区域支持位寻址?答:主要包含位寻址区和地址能够被8整除的特殊功能寄存器。(7)8051单片机内部RAM和ROM容量各为多少?外部最大能扩展多大存储空间?答:8051单片机内部RAM和ROM容量分别为256B和4KB,外部最大能扩展的RAM和ROM存储空间分别为64KB。(8)8051单片机的四个I/O端口在结构上有什么特点?分别作用是什么?答:8051单片机的四个I/O端口的结构特点见书1.4节,P0口可作为地址/数据复用总线,P2口可提供高8位地址总线,P3口可作为第二功能用,除此之外,4个并行口均可作为普通I/O口用。(9)8051单片机如何复位?主要有几种复位方法?答:8051单片机复位时,需要在RST引脚上输入时间大于2个机器周期宽度的高电平,结合实际应用情况,通常采用手动复位、自动复位和二者结合的方式进行复位。(10)单片机都有哪些工作方式?这些工作方式分别应用于哪些场合?不同的工作方式之间是如何切换的?答:单片机都有复位方式、程序运行方式、掉电方式和低功耗方式等工作方式,复位方式主要用于系统上电或者程序飞车的情况下;程序运行方式是单片机最主要的工作方式,在实现检测和控制时都属于该工作方式;掉电方式是指单片机系统主电源掉电后被迫进入省电工作方式,备用电源用于维持RAM供电,保证数据不丢失;低功耗方式是单片机完成相关任务空闲后,为了降低系统功耗,主动进入省电模式。通过设置电源控制器PCON来进入掉电和低功耗方式,通过中断等方式退出掉电和低功耗方式。第2章指令系统和汇编语言1.填空题(指出下列指令中源操作数的寻址方式)(1)直接寻址(2)立即寻址(3)间接寻址(4)基址加变址寻址(5)寄存器寻址(6)基址加变址寻址(7)位寻址(8)相对寻址2.程序分析题(1)指出下面程序段执行后的结果。(A)=75H,(30H)=45H,(R0)=40H,(40H)=4CH。(2)已知(A)=74H,(R0)=9BH,CY=1,写出执行指令后结果。ADDCA,R0(A)=10H,(CY)=1,(AC)=1,(P)=1。(3)分析下面程序段运行结果。MOVA,#88H(A)=88HXRLA,#0FFH(A)=77HANLA,#0FH(A)=07HORLA,#20H(A)=27H(4)已知片内RAM(20H)=11H,(CY)=1,分析下列程序段运行结果。则:(A)=12H,(CY)=1。3.判断题(判断下列指令的正误,对的打“√”,错的打“×”。)(1)√(2)×(3)×(4)√(5)×(6)×(7)×(8)×(9)√(10)×4.编程题(1)将内部RAM50H-60H单元内容清零。答:MOVR0,#50HMOVA,#00HMOVR7,#17NEXT:MOV@R0,AINCR0DJNZR7,NEXTRET(2)将内部RAM40H单元中的16进制数转换成十进制数,百位存于52H中,十位存于51H中,个位存于50H中。答:MOVA,40HMOVB,#100DIVABMOV52H,AMOVA,BMOVB,#10DIVABMOV51H,AMOV50H,B(3)将内部RAM50H单元中的组合BCD码转换成非组合BCD码,分别存于51H(低位)和52H(高位)单元中。答:MOVA,50HANLA,#0FHMOV51H,AMOVA,50HSWAPAANDA,#0FHMOV52H,A(4)将片外RAM1000H单元中的数据传送到片内RAM30H单元中。答:MOVDPTR,#1000HMOVXA,@DPTRMOV30H,A(5)将片外ROM3000H单元中的数据传送到片外RAM1000H单元。答:MOVDPTR,#3000HMOVA,#00HMOVCA,@A+DPTRMOVDPTR,#1000HMOVX@DPTR,A(6)将外部RAM2000H单元中的高2位取反,低4位清零,其余位保持不变。答:MOVDPTR,#2000HMOVXA,@DPTRMOV40H,AANLA,#11000000BCPLAMOV41H,AMOVA,40HANLA,#00110000ORLA,41HMOVX@DPTR,A(7)将内部RAM60H单元中数据的中间4位取反,其余位保持不变。答:MOVA,60HCPLAANLA,#00111100MOV61H,AMOVA,60HANLA,#11000011ORLA,61HMOV60H,A第3章KEILC511.填空题(1)bit,sfr(sfr16),sbit。(2)头文件中。(3)data,bdata,程序存储器类型,xdata。2.简答题(1)汇编语言和C语言的各有何优缺点?在程序设计时,选择的主要依据是什么?答:汇编语言的特点是:代码执行效率高;占用存储空间少;可读性差,调试、维护困难;可移植性差。C语言的特点是:可读性强;编程及调试效率高;函数结构的程序,结构规范易于移植;库函数包含许多标准子程序,可直接调用,开发周期缩短;寄存器的分配、存储器的寻址以及数据类型等细节可由编译器来管理。在程序设计时,通常汇编语言和C语言都能完成设计要求,但是对于程序执行时间要求非常精确时,通常采用汇编语言,而对于复杂计算代码设计通常选用C语言。(2)简要说明C51与标准C的主要区别。答:C51是在标准C语言的基础上发展起来的,专用于51系列单片机的程序设计,其根据51系列单片机硬件特点扩展了许多相关的编译特性,C51提供了包括C编译器、宏汇编、连接器、库管理和功能强大的仿真调试器等在内的完整开发方案,是目前流行的51系列单片机开发软件。(3)C51中如何访问8051单片机的特殊功能寄存器?答:C51编译器可以利用扩展的关键字sfr和sfr16对特殊功能寄存器进行访问,格式为:sfr特殊功能寄存器名=特殊功能寄存器地址常数(4)C51中对指定地址的内部RAM、外部RAM以及ROM的访问方法有哪些?答:所谓对指定地址的存储器访问是指将数据存放在指定地址的存储器中,也称为对存储器的绝对地址访问。51系列单片机有不同的存储区,可以利用绝对地址访问头文件“absacc.h”中的函数来对不同的存储区进行访问。如:C51中要将60H这个数存储在地址为50H的内部RAM单元中,那么可以采用如下方法。#includereg51.h#includeabsacc.hmain(){DBYTE[0x50]=0x60;while(1){};}(5)简要说明C51中断服务函数的设置方法。答:8051单片机C51程序结构也有固定的结构,其中断服务函数的一般结构形式为:函数类型函数名()[interruptn][usingi],C51编译器扩展增加了关键字interrupt,使用这个关键字可以将一个函数定义成中断服务函数,其中,n为中断类型号,取值范围为n=0~4,用以区分5个中断源,C51还扩展了关键字using,i的取值范围为n=0~3,分别对应工作寄存器组的0区~3区,即指明将工作寄存器组安排在哪个区域,(6)简要说明汇编语言和C语言混编的主要方法和步骤。答:C51程序中嵌入汇编程序段的常用混合编程方法,可以通过语句“#pragmaasm”和“#pragmaendasm”包含嵌入的汇编语言程序段。程序段编译前进行相应设置,方法是:选中C源文件,选择右键菜单“optionforfile…”,将“properties”中三个可选项的“GenerateAssemblerSRCFile”和“AssembleSRCFile”分别选中,“LinkPublicOnly”选项取消选中。3.编程题(用C51实现)(1)将8051单片机内部RAM50H单元中的内容加“1”。答:#includereg51.h#includeabsacc.hmain(){while(1){DBYTE[0x50]++;}}(2)将十六进制数0xB0存储于外部RAM1000H单元中。答:#includereg51.h#includeabsacc.hmain(){XBYTE[0x1000]=0xb0;}(3)读取外部RAM2000H单元中的内容,取反后存储于内部RAM60H单元中。答:#includereg51.h#includeabsacc.hunsignedchardataxyz;main(){xyz=XBYTE[0x2000];xyz=~xyz;DBYTE[0X60]=xyz;}(4)将内部RAM40H单元中的十六进制数转换成十进制数,按照高位到低位的顺序分别存于内部RAM50H开始的单元中。答:#includereg51.h#includeabsacc.hunsignedchardataxyz;main(){xyz=DBYTE[0x40];DBYTE[0x50]=xyz/100;DBYTE[0x51]=xyz%100/10;DBYTE[0x52]=xyz%100%10;}(5)读取P1口的引脚状态,将其取反后,存储于外部RAM3000H单元中。答:#includereg51.h#includeabsacc.hunsignedchardataxyz;main(){xyz=P1;xyz=~xyz;XBYTE[0x3000]=xyz;}第4章单片机与PROTEUS仿真1.填空题(1)ISIS,ARES。(2)
本文标题:单片机原理、应用及PROTEUS仿真课后题答案
链接地址:https://www.777doc.com/doc-5333272 .html