当前位置:首页 > 59单片微机原理及应用 - 徐春辉 - 电子工业出版社习题答案 - -1(2)
AT89S51中堆栈的最大容量理论上可以达到128B。
答:第0组。地址是00H~07H。通过修改PSW中RS1、RS0两位的值来改变当前工作寄存器组。
6.开机复位后,CPU使用哪一组工作寄存器?它们的地址是什么?如何改变当前工作寄存器组?
7.64KB程序存储器空间有5个单元地址对应AT89S51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源。答:64K程序存储器空间中5个特殊单元所分别对应的5个中断源的中断服务程序入口地址如下表所示:
8.在程序设计时,为什么有时要对复位后的堆栈指针SP重新赋值?如果在操作中需要使用三组工作寄存器,SP的初值应该至少多大?
答:系统复位后,SP初始化为07H,使得堆栈事实上由08H 单元开始。考虑到08H~1FH单元分属于工作寄存器区的1~3组,如果程序设计中要用到这些寄存器组,则必须在复位后对堆栈指针SP重新赋值。最好把SP值改置为1FH或更大的值如60H,SP的初始值越小,堆栈深度就越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。如果在操作中需要使用三组工作寄存器,SP的初值至少应该为17H。
9.AT89S51的寻址范围是多少?最多可以配置多大容量的外部ROM和多大容量的外部RAM?答:64KB、64KB、64KB。10.AT89S51单片机运行出错或程序进入死循环时如何摆脱困境?答:通过硬件复位。
11.AT89S51单片机扩展系统中片外程序存储器和片外数据存储器,使用相同的地址编码,是否会在数据总线上出现争总线现象?为什么?
答:不会。因为这两种存储器使用的选通信号不同。片外程序存储器使用
出使能控制信号,而片外数据存储器分别使用和作为读写控制信号。作为输12.AT89S51的P0口和P2口各有何作用?P0口为什么要外接锁存器?
答:P0口通常作为分时复用的地址/数据总线使用,作为地址总线使用时用于提供16位地址总线的低8位地址信号。P2口通常用于提供16位地址总线的高8位地址信号。在前述功能不使用的情况下,这两端口也可以作为一般的I/O使用。P0口外接锁存器的目的是使CPU发出的地址信号在P0口作为数据通道时依然保持有效。13.AT89S51的ALE引脚有何作用?AT89S51不接外部RAM时,ALE信号有何特点?
答:AT89S51的ALE引脚用于对低8位地址信号的锁存控制。AT89S51不接外部RAM时,ALE信号是频率为时钟频率六分之一的固定周期信号。
14.举例说明单片机工业控制系统中掉电保护的意义和方法。
答:单片机工业控制系统在运行程序的过程中,如果发生掉电故障将会丢失RAM和寄存器中的数据,其后果有时是很严重的。为此,需要掉电保护功能,进行掉电保护处理。
掉电保护方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中。掉电模式的退出有两种方法:硬件复位和外部中断。硬件复位时要重新初始化SFR,但不改变片内RAM的内容。当VCC恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。
15.内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为()和()。答:28H;88H。
16.片内字节地址为2AH单元最低位的位地址是();片内字节地址为88H单元的最低位的位地址为()。答:50H;88H。
17.若A中的内容为63H,那么P标志位的值为()。答:P标志位的值为0。
18.在AT89S51单片机中,如果采用6 MHz晶振,那么一个机器周期为()。答:2μs
19.判断下列说法是否正确。
A.使用AT89S51且引脚= 1时,仍可外扩64 KB的程序存储器。()
B.区分片外程序存储器和片外数据存储器的最可靠的方法是,看其位于地址范围的低端还是高端。()
C.在AT89S51中,为使准双向的I/O口工作在输入方式,必须事先预置为1。()D.PC可以视为程序存储器的地址指针。()答:(A)错;(B)错;(C)对;(D)对
20.AT89S51单片机复位后,R4所对应的存储单元的地址为(),因上电时PSW = ()。这时当前的工作寄存器区是()组工作寄存器区。
答:04H、00H、第0
21.判断以下有关PC和DPTR的结论是否正确。
A.指令可以访问寄存器DPTR,而PC不能用指令访问。()B.它们都是16位寄存器。()
C.在单片机运行时,它们都具有自动加1的功能。()
D.DPTR可以分为2个8位的寄存器使用,但PC不能。()答::(A) 对;(B) 对;(C) 错;(D) 对。
22.内部RAM中,可作为工作寄存器区的单元地址为()H~()H。答:字节地址00H-1FH的单元可作为工作寄存器区。23.判断下列说法是否正确。
A.AT89S51中特殊功能寄存器(SFR)就是片内RAM中的一部分。()
B.片内RAM的位寻址区,只能供位寻址使用,而不能进行字节寻址。()
C.AT89S51共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此是可以进行位寻址的。()D.SP称为堆栈指针,堆栈是单片机内部的一个特殊区域,与RAM无关。()答:(A) 错;(B) 错;(C) 错;(D) 错。24.在程序运行中,PC的值是()。
A.当前正在执行指令的前一条指令的地址B.当前正在执行指令的地址
C.当前正在执行指令的下一条指令的首地址D.控制器中指令寄存器的地址答:(C)。
26.AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S51的PC是16位的,因此其寻址的范围为()KB。答:64
27.AT89S51的4个并行双向口P0~P3的驱动能力各为多少?要想获得较大的输出驱动能力,是采用低电平输出还是采用高电平输出?
答:P0口每位可驱动8个LSTTL输入,而P1、P2、P3口的每一位的驱动能力,只有P0口的一半。当P0口的某位为高电平时,可提供400?A的电流;当P0口的某位为低电平(0.45V)
时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应加大。所以,任何一个口要想获得较大的驱动能力,只能用低电平输出。
28.当AT89S51单片机运行出错或程序陷入死循环时,如何摆脱困境?答:通过硬件复位。练习与思考题4
1.按长度分,51系列单片机的指令有字节的、字节的和3 字节的。2.按指令的执行时间分,51和机器周期的指令。
3.51系列单片机汇编语言指令格式中,唯一不可缺少的部分是(B )。A.标号B.操作码C.操作数D.注释
4.简述8051的寻址方式和每种寻址方式所涉及的寻址空间。答:
5.51系列单片机的寻址方式中,位寻址的寻址空间是(D )。A.工作寄存器R0~R7B.专用寄存器SFR
C.程序存储器ROM
D.片内RAM的20H~2FH字节中的所有位和地址可被8整除的SFR的有效位6.分析下面各指令源操作数的寻址方式。MOV A,32H ;直接寻址
MOV R7,A ;寄存器寻址
MOV @R0,#0FEH ;立即寻址
MOV DPTR,#1E00H ;立即寻址 MOVC A,@A+DPTR ;变址寻址 MOV C,20H ;位寻址 JC 10H ;相对寻址
MOV A,@R1 ;寄存器间接寻址
7.访问特殊功能寄存器和外部数据存储器,分别可以采用哪些寻址方式?答:访问特殊功能寄存器只能用直接寻址;访问外部数据存储器只能用寄存器间接寻址。
8.在寄存器寻址方式中,指令中指定寄存器的内容就是操作数。9.在寻址方式中,只能使用8 位二进制数作为直接地址。
10.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
11.在变址寻址方式中,以作变址寄存器,以或作基址寄存器。。
12.三种传送指令MOV、MOVC和MOVX,使用时有什么区别?
答:MOV指令用来实现单片机内部寄存器、存储单元、特殊功能寄存器之间的数据传送。MOVC指令用来读程序存储器中的数据表。
MOVX 指令用来实现累加器A和外部数据存储器之间的数据传送。
13.假定DPTR的内容为8100H,累加器的内容为40H,执行指令“MOVC A,@A+DPTR”后,程序存储器单元的内容送累加器A中。14.单片机中PUSH和POP指令常用来(C )。A.保护断点B.保护现场
C.保护现场,恢复现场D.保护断点,恢复断点
15.假定(A)=85H,(R0)=20H,(20H)=AFH。执行指令:ADD A,@R0
后,累加器A的内容为34H ,CY 的内容为1 ,AC的内容为1 ,OV的内容为1 。16.假定(A) = 56H,(R5) = 67H。执行指令ADD A,R6DA A
后,累加器A的内容为23H ,Cy的内容为1 。17.假定(A) = 50H,(B) = 0A0H,
LCALLSUBR;ADDA,#10H;MOVB,A;SJMP$;SUBR:MOVDPTR,#100AH;PUSHDPL;PUSHDPH;RET;答:(SP)=42H、(A)=30H,(B)=3;
ADD A,#10H MOV B,A SJMP $
LCALL SUBR
SUBR:MOV DPTR,#100AH
PUSH DPH RET
PUSH DPL
答:(SP)=42H、(A)=30H,(B)=30H练习与思考题5
1. 用于程序设计的语言分为哪几种?它们各有什么特点?
答:51系列单片机的编程语言可以分为汇编语言和高级语言(如C语言)两种,各自的特点如下:2. 说明伪指令的作用。“伪”的含义是什么?常用的伪指令有哪些?其功能是什么?
答:伪指令是在“机器汇编”过程中,用来对汇编过程进行某种控制或者对符号和标号进行赋值。“伪”的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。常用伪指令有ORG、EQU、DATA、DB、DW、DS、BIT 、END。功能:
ORG --指出后面程序块或数据块在程序存储器中存放的起始地址。EQU --赋值命令
DATA--对数据地址或代码地址赋予规定的字符名称DB --定义字节数据DW --定义字数据
DS--从指定的地址单元开始,保留若干单元备用。BIT --定义位地址符号命令END --汇编结束命令
3. 设常量和数据标号的定义为:ORG 2000H
DAT1:DB 1,2,3,4,5DAT2:DB ?ABCD?
DAT3:DW 1200H,-2
TAB:DW DAT1,DAT3
(1)画出上述数据或地址的存储形式。
(2)写出各标号的地址。答:(1)地址
(2)DAT1=2000H;;DAT3=2009H;TAB =200DHDAT2=2005H
5. 试编写程序,找出片内RAM 30H~5FH单元中无符号数的最大数,并将结果存入60H单元。答:ORG 0000H
MOV R7, #2FH MOV A, @R0 AGAIN: INC R0 MOV B, A CLR C SUBB A, @R0 JNC L1
MOV R0, #30H
MOV A, @R0 AJMP L2L1: MOV A, B L2: DJNZ R7, AGAIN MOV 60H, A SJMP $ END7.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。答:ORG 0000H
START: MOV A, #0MOV R7, #0
共分享92篇相关文档