单片机课后习题解答Word下载.docx
《单片机课后习题解答Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课后习题解答Word下载.docx(38页珍藏版)》请在冰豆网上搜索。
程序是根据任务要求有序编排指令的集合。
3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间?
89S51/52存储器空间在物理结构上设有4个存储器空间:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑上有3个存储器地址空间:
片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。
4、开机复位后,CPU使用的是哪组工作寄存器?
他们的地址是多少?
CPU如何确定和改变当前工作寄存器组?
开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。
5、什么是堆栈?
堆栈有何作用?
在程序设计时,有时为什么要对堆栈指针SP重新赋值?
如果CPU在操作中要使用两组工作寄存器,SP应该多大?
堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。
如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。
6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?
当振荡频率为8MHz时,一个单片机周期为多少微秒?
时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。
机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。
指令周期是执行一条指令所需要的时间,由若干个机器周期组成。
若fosc=8MHz,则一个机器周期=1/8×
12μs=1.5μs
7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?
访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。
8、程序状态字寄存器PSW的作用是什么?
常用状态标志有哪些位?
作用是什么?
程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。
各个标志位的意义如下:
PSW.7(Cy):
进位标志位。
PSW.6(AC):
辅助进位标志位,又称为半进位标志位。
PSW.5(F0):
用户标志位。
PSW.4、PSW.3(RS1和RS0):
寄存器组选择位。
PSW.2(OV):
溢出标志位。
PSW.1(空缺位):
此位未定义。
PSW.0(P):
奇偶校验位。
9、位地址7CH和字节地址7CH有何区别?
位地址7CH具体在内存中什么位置?
字节地址7CH是片内数据存储器中的一个地址单元,该地址单元中可以存放8位二进制数,位地址7CH是内部数据存储器中位寻址区中的一位,该地址单元中可以存放1位二进制数。
位地址7CH具体在片内数据存储器字节地址为2FH中的第4位(2FH.4)。
10、89S51/52中4个I/O端口的作用是什么?
89S51/52的片外三总线是如何分配的?
I/O端口是单片机与外界联系的重要通道,实现与外部设备的信息的传输。
总线分配:
片外数据总线(8根)通过P0口输出,片外地址总线(16根)通过P0口(低8位)和P2口(高8位)输出,片外控制总线(PSEN,ALE,RD,WR,EA)主要通过P3口。
11、89S51/52中4个I/O端口在结构上有何异同?
89S51/52单片机的4个I/O口在结构上是基本相同的,但又各具特点。
这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。
在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。
在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。
各自特点如下:
(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。
作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;
输入数据可以得到缓冲,增加了数据输入的可靠性。
每个引脚可驱动8个TTL负载。
(数字电路按工艺有肖特基双极晶体管和CMOS工艺两种,使用双极晶体管的数字电路称TTL数字电路,
单片机输出端带负载能力,意思就是单片机的P3端口只能并联4个TTL型集成电路输入端。
)
(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。
每个引脚可驱动4个TTL负载。
(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。
它与地址总线高8位复用,可驱动4个TTL负载。
一般作为外部扩展时的高8位地址总线使用。
(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。
作为通用I/O口时,功能与P1口相同,常用第二功能。
12、复位的作用是什么?
有几种复位方法?
复位后单片机的状态如何?
复位是单片机的初始化操作。
单片机在RST引脚产生两个机器周期(即24个时钟周期)以上的高电平即可实现复位。
主要的复位方法有上电自动复位和按键手动复位两种。
按键手动复位又分:
按键电平复位和按键脉冲复位。
第三章指令系统
1、简述下列名词术语的基本概念:
指令、指令系统、程序、汇编语言指令
指令:
规定单片机进行某种操作的命令称为指令。
指令系统:
单片机能够执行的各种指令的集合。
程序:
一系列指令的有序集合称为程序。
汇编语言指令:
用助记符形式来表示机器指令。
2、80C51单片机有哪几种寻址方式?
这几种寻址方式是如何寻址的?
共7种寻址方式,分别为:
寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,变址寻址,位寻址和相对寻址。
寄存器寻址方式:
由指令指出某一寄存器的内容做为操作数。
直接寻址方式:
指令中操作数直接以单元地址的形式给出。
寄存器间接寻址方式:
寄存器间接寻址方式,寄存器中存放的则是操作数的地址,即操作数是通过寄存器间接得到的。
立即寻址方式:
操作数在指令中直接给出。
变址寻址方式:
变址寻址是为了访问程序存储器中的数据和表格。
MCS-51的变址寻址是以DPTR或PC作基址寄存器,以累加器A作变址寄存器,并以两者内容相加形成的16位地址做为操作数地址,以达到访问数据和表格的目的。
位寻址方式:
指对片内RAM的位寻址区和某些可寻址的特殊功能寄存器进行位操作的寻址方式。
相对寻址方式:
相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。
3、要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?
访问特殊功能寄存器可以采用直接寻址、寄存器寻址和位寻址(针对可以进行位寻址的特殊功能寄存器)方式。
访问片外数据存储器可采用寄存器间接寻址方式。
4、80C51单片机的指令系统可以分为哪几类?
说明各指令的功能。
51单片机指令系统按功能可分为5类:
(1)数据传送指令 主要进行数据的传送、交换等;
(2)算术运算指令主要进行基本的加减乘除运算;
(3)逻辑运算指令主要实现逻辑运算与移位运算;
(4)控制转移指令主要是实现对程序流程的控制;
(5)位操作指令
5、外部数据传送指令有哪几条?
有和区别?
外部数据传送指令有读指令和写指令两类,每类指令的寻址范围不同,分别为:
读外部存储器指令:
MOVXA,@Ri;
寻址范围为256字节
MOVXA,@DPTR;
寻址范围为64K字节
写外部存储器指令:
MOVX@Ri,A;
MOVX@DPTR,A;
6、在89S51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,请分别分析下段程序按序执行后的结果。
MOVA,40H;
A=48H
MOVR0,A;
R0=48H
MOVP1,#0FFH;
P1=FFH
MOV@R0,30H;
(48H)=38H
MOVDPTR,#1246H;
DPTR=1246H
MOV40H,38H;
(40H)=40H
MOVR0,30H;
R0=38H
MOV90H,R0;
(90H)=38H
MOV48H,#30H;
(48H)=30H
MOVA,@R0;
A=40H
MOVP2,P1;
P2=38H
7、略
8、DAA指令的作用是什么?
怎样使用?
对十进制BCD数作加法时进行调整,当结果的低4位A0~A3>
9,或半进位AC=1,则A0~A3+6,否则不加;
当结果的高4位A4~A7>
9,或进位CY=1,则A4~A7+6,否则不加;
这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正,使其仍为BCD码表示形式。
9、试编程将片外数据存储器60H中的内容传送到片内RAM54H单元中。
MOVR0,#60H
MOVXA,@R0
MOV54H,A
10、试编程将寄存器R7的内容传送到R1中去。
MOVA,R7
MOVR1,A
11、已知当前PC值为210H,请用两种方法将程序存储器2F0H中的常数送入累加器A中。
(1)以程序计数器PC作为基址寄存器
MOVA,#0E0H
MOVCA,@A+PC
(2)以数据指针DPTR作为基址寄存器
MOVDPTR,#02F0H
MOVA,#00H
MOVCA,@A+DPTR
12、试说明下段程序中每条指令的作用,并分析当指令执行完后,R0中的内容是什么?
MOVR0,#0A7H;
R0=A7H,立即数送寄存器R0
XCHA,R0;
A=A7H,累加器A中的数据与R0中的数据进行交换
SWAPA;
A=7AH,累加器A中的高低四位进行交换
R0=7AH,数据交换回R0
13、请用两种方法实现累加器A与寄存器B的内容交换。
(1)MOVR0,A
MOVA,B
MOVB,R0
(2)MOVR0,B
XCHA,R0
14、试编程将片外RAM中40H单元的内容与R1的内容交换。
MOVR0,#40H
XCHA,R1
MOVX@R0,A
15、已知:
A=0C9H,B=8DH,CY=1。
执行指令ADDCA,B结果如何?
A=57H,CY=1,OV=1,AC=1,P=1
执行指