单片机作业习题答案Word格式文档下载.docx
- 文档编号:20503968
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:34
- 大小:62.73KB
单片机作业习题答案Word格式文档下载.docx
《单片机作业习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机作业习题答案Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。
第2章MCS-51系列单片机的基本结构
2-1
画出微型电脑基本结构框图,简述各部分的基本功能。
答:
见教材图2-2。
2-2
MCS-51单片机的
引脚有何功能?
在使用8031时
如何接法?
使用8751时
引脚是片内外程序存储器的选择信号。
当
端保持高电平时,访问内部程序存储器,但在PC〔程序计数器〕值超过0FFFH〔对于8051/8751/80C51〕或1FFFH〔对于8052〕时,将自动转向访问外部程序存储器。
端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。
由于8031片内没有程序存储器,所以在使用8031时,
引脚必须接低电平。
2-3微型电脑的存储器普林斯顿结构和哈弗结构有什么不同?
按微型电脑的存储器地址空间的不同分配形式分为普林斯顿结构和哈弗结构。
普林斯顿结构的特点是电脑只有一个地址空间。
CPU访问ROM和RAM采用相同的指令。
哈弗结构将ROM和RAM安排在相互独立的两个地址空间,ROM和RAM可以有相同的地址,但采用不同的指令访问。
51系列单片机采用哈弗结构。
2-4微型电脑存储器的地址线与存储的容量有什么关系?
如果存储器的地址线有13条,则存储的容量为多大?
存储的容量=2n,(n:
存储器的地址线的条数)。
213=8KB.
2-589C51单片机的存储器从物理结构上分别可划分为几个空间?
89C51单片机采用何种方式区分内外程序存储器和内外数据存储器?
89C51单片机的存储器从物理结构上分别内外程序存储器和内外数据存储器。
内外程序存储器采用引脚/EA、/PSEN接到不同的电平区分,内外数据存储器采用引脚/RD、/WR连接和不同的指令加以区分。
2-6
MCS-51单片机的内部存储空间是怎样分配的?
MCS-51单片机的内部存储空间分为数据存储器和程序存储器。
内部数据存储器:
共256字节单元,包括低128个单元和高128个单元。
低128字节又分成3个区域:
工作寄存器区〔00H~1FH〕,位寻址区〔20H~2FH〕和用户RAM区〔30H~7FH〕。
高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。
内部程序存储器:
在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。
2-7
如何从MCS-51单片机的4个工作寄存器组中选择当前工作寄存器组?
MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。
具体关系如下表:
RS1
RS0
当前寄存器组
第0组工作寄存器
1
第1组工作寄存器
第2组工作寄存器
第3组工作寄存器
2-8内部RAM低128个单元是如何划分的?
内部RAM低128个单元按用途分成3个区域:
2-9
DPTR是什么寄存器?
它的作用是什么?
它由哪几个寄存器组成?
DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。
DPTR由高位字节DPH和低位字节DPL组成。
2-10什么是堆栈?
堆栈有何作用?
为什么在程序初始化时要对SP重新赋值?
所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。
堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。
堆栈的用途是保护现场和断点地址。
在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。
从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。
因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。
2-11
试述程序状态字寄存器PSW各位的含义。
程序状态字寄存器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-12
P0、P1、P2、P3口的结构有何不同?
使用时要注意什么?
各口都有什么用途?
P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;
作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;
作为普通I/O口使用或低8位地址/数据总线使用。
P1口内没有转换开关,但有上拉电阻;
只用作普通I/O口使用。
P2口比P1口多了一个转换控制开关;
作为普通I/O口使用或高8位地址线使用。
P3口比P1口增加了与非门和缓冲器;
具有准双向I/O功能和第二功能。
上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。
2-13
请说出指令周期、机器周期、状态和拍的概念。
当晶振频率为12MHz、8MHz时,一个机器周期为多少微秒?
指令周期:
执行一条指令所需要的时间。
机器周期:
CPU完成一个基本操作所需要的时间。
状态:
振荡脉冲经过二分频后,得到的单片机的时钟信号。
拍:
振荡脉冲的周期。
当晶振频率为12MHz时,一个机器周期为1μs;
当晶振频率为8MHz时,一个机器周期为1.5μs。
2-14
什么是单片机复位?
复位后单片机的状态如何?
在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲〔两个机器周期〕以上的高电平,单片机就能实现复位。
复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。
程序指针Pc=0000H。
第3章MCS-51系列单片机的指令系统
3-1
MCS-51系列单片机指令格式是怎样的?
各有何含义?
单片机指令格式由操作码和操作数组成。
操作码说明指令操作性质,操作数说明操作对象。
3-2MCS-51系列单片机有哪几种寻址方式?
各种寻址方式所对应的寄存器或存储器寻址空间如何?
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〕相对寻址:
只在相对转移指令中使用。
〔7〕位寻址:
对可寻址的位单独进行操作。
对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。
3-4假设访问特殊功能寄存器,可使用那些寻址方式?
直接寻址方式。
3-5假设访问外部RAM单元,可使用那些寻址方式?
寄存器间接寻址方式。
3-6假设访问内部RAM单元,可使用那些寻址方式?
立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。
3-7假设访问内外程序存储器,可使用那些寻址方式?
变址寻址方式
3-8外部数据传送指令有几条?
试比较下面每一组中两条指令的区别。
〔1〕MOVXA,@R1,MOVXA,@DPTR
〔2〕MOVXA,@DPTR,MOVX@DPTR,A
〔3〕MOV@R0,A,MOVX@R0,A
〔4〕MOVCA,@A+DPTR,MOVXA,@DPTR
外部数据传送指令有6条:
MOVXA,@DPTRMOVX@DPTR,A
MOVXA,@Ri
MOVX
@Ri,A
MOVC
A,@A+DPTR
MOVC
A,@A+PC
〔1〕MOVX
A,@R1
A,@DPTR
都是访问片外RAM,但二者寻址范围不同。
前1条指令是对片外RAM低256个单元的“读”操作。
后1条指令是对片外RAM64KB空间的“读”操作。
〔2〕MOVX
A,@DPTR
@DPTR,A
访问空间相同,但数据传送方向不同。
前1条指令是对片外RAM64KB空间的“读”操作。
后1条指令是对片外RAM64KB空间的“写”操作。
〔3〕MOV
@R0,A
@R0,A
二者访问的空间不同。
前1条指令是对片内RAM低128个单元的“写”操作。
后1条指令是对片外RAM低256个单元的“写”操作。
〔4〕MOVCA,@A+DPTRMOVXA,@DPTR
二者访问的空间不同,寻址方式不同。
前1条指令是变址寻址方式,对ROM操作。
后1条指令是寄存器间接寻址方式,对片外RAM操作。
3-9已知〔30H〕=40H,〔40H〕=10H,〔10H〕=32H,〔P1〕=EFH,试写出执行以下程序段后有关单元的内容。
MOV
R0,#30H
A,@R0
R1,A
B,@R1
@R1,
P1
P2,P1
10H,#20H
30H,10H
R0←30H,〔R0〕=30H
A←〔〔R0〕〕,〔A〕=40H
R1←〔A〕,〔R1〕=40H
B←〔〔R1〕〕,〔B〕=10H
〔R1〕←〔P1〕,〔〔R1〕〕=〔40H〕=EFH
P2←〔P1〕,〔P2〕=EFH
10H←20H,〔10H〕=20H
30H←〔10H〕,〔30H〕=20H
结果:
〔R0〕=30H,〔A〕=40H,〔R1〕=40H,〔B〕=10H,〔40H〕=EFH,〔P2〕=EFH,〔10H〕=20H,〔30H〕=20H
3-10
试写出完成以下数据传送的的指令序列。
〔1〕R1的内容传送R0;
〔2〕片外RAM60H单元的内容送入R0;
〔3〕片外RAM60H单元的内容送入片内RAM40H单元;
〔4〕片外RAM1000H单元的内容送入片外RAM40H单元;
〔5〕ROM2000H单元的内容送入R2;
(6〕ROM2000H单元的内容送入片内RAM40H单元;
〔7〕ROM2000H单元的内容送入片外RAM0200H单元。
〔1〕由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。
MOVA,R1
MOVR0,A
〔2〕片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。
由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。
MOVR1,#60H
MOVXA,@R1
〔3〕MOVR1,#60H
MOVX
A,@R1
40H,A
〔4〕片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。
MOVDPTR,#1000H
R1,#40H
@R1,A
〔5〕ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。
DPTR,#2000H
A,#00H
A,@A+DPTR
R2,A
〔6〕
MOV
〔7〕
DPTR,#0200H
3-11
试编程,将外部RAM1000H单元中的数据与内部RAM60H单元中的数据相互交换。
片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。
数据交换需要使用数据交换指令XCH。
DPTR,#1000H
XCH
A,60H
3-12已知〔A〕=5BH,〔R1〕=40H,〔40H〕=C3H,〔PSW〕=81H,试写出各条指令的执行结果,并说明程序状态字的状态。
〔1〕XCH
A,R1
〔2〕XCH
A,
40H
〔3〕XCH
〔4〕XCHD
A,@R1
〔5〕SWAP
A
〔6〕ADD
R1
〔7〕ADD
40H
〔8〕ADD
#40H
〔9〕ADDC
〔10〕SUBB
A,40H
〔11〕SUBB
#40H
〔1〕结果:
〔A〕←→〔R1〕,〔A〕=40H,〔R1〕=5BH,〔PSW〕=81H
〔2〕结果:
〔A〕←→〔40H〕,〔A〕=C3H,〔40H〕=5BH,〔PSW〕=80H
〔3〕结果:
〔A〕←→〔〔R1〕〕,〔A〕=C3H,〔〔R1〕〕=〔40H〕=5BH,〔PSW〕=80H
〔4〕结果:
〔A〕0~3←→〔〔R1〕〕0~3,〔A〕=53H,〔〔R1〕〕=〔40H〕=CBH,〔PSW〕=80H
〔5〕结果:
〔A〕0~3←→〔A〕4~7,〔A〕=B5H,〔PSW〕=81H
〔6〕结果:
A←〔A〕+〔R1〕,〔A〕=9BH,〔PSW〕=05H
〔7〕结果:
A←〔A〕+〔40H〕,〔A〕=1EH,〔PSW〕=80H
〔8〕结果:
A←〔A〕+40H,〔A〕=9BH,〔PSW〕=05H
〔9〕结果:
A←〔A〕+〔40H〕+CY,〔A〕=1FH,〔PSW〕=81H
〔10〕结果:
A←〔A〕-〔40H〕-CY,〔A〕=97H,〔PSW〕=85H
〔11〕结果:
A←〔A〕-40H-CY,〔A〕=1AH,〔PSW〕=01H
3_13已知〔A〕=5BH,〔R1〕=40H,〔40H〕=C3H,〔PSW〕=81H,试写出各条指令的执行结果,并说明程序状态字的状态。
指令LJMP
addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。
指令AJMP
addr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值〔本指令所在地址+本条指令所占用的字节数2〕在同一个2K的区域内。
3-14
试分析以下两段程序中各条指令的作用。
程序执行完将转向何处?
〔1〕MOV
P1,#0CAH
MOV
A,#56H
JB
P1.2,L1
JNB
ACC.3,L2
…
L1:
┇
L2:
〔2〕MOV
A,#43H
JB
ACC.2,L1
JBC
ACC.6,L2
〔1〕
P1,#0CAH
;
P1←CAH,P1=CAH=11001010B
A,#56H
A←56H,A=56H=01010110B
P1.2,L1
假设P1.2=1,则转移至L1
JNB
ACC.3,L2
假设ACC.3=0,则转移至L2
…
执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。
〔2〕
A←43H,A=43H=01000011B
ACC.2,L1
假设ACC.2=1,则转移至L1
假设ACC.6=1,则转移至L2,同时将ACC.6清零
执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。
第4章汇编语言程序设计
4-1
什么是伪指令?
伪指令和指令有何区别?
它们的用途是什么
4-2基本程序结构有哪几种?
各有何特点?
4-3
存放在内部RAM的DATA单元中的变量X是一个无符号整数,试编程计算下面函数的函数值并存放到内部RAM的FUNC单元中。
ORG
0300H
A,DATA
CJNE
A,#20,LOP1
LOP1:
JC
LOP3
A,#50,LOP2
LOP2:
LOP4
B,#1
LJMP
LOP5
LOP3:
B,#2
LOP4:
B,#5
LOP5:
MUL
AB
FUNC,A
RET
4-5
某单片机应用系统有4×
4键盘,经键盘扫描程序得到被按键的键值〔00H~0FH〕存放在R2中,16个键的键处理程序入口地址分别为KEY0、KEY1、KEY2、…、KEY15。
试编程实现,根据被按键的键值,转对应的键处理程序。
0500H
DPTR,#JPTAB
A,R2
RL
A
JMP
@A+DPTR
JPTAB:
AJMP
KEY0
KEY1
KEY2
……
KEY15
KEY0:
KEY1:
KEY2:
KEY15:
4-6
试编程将片内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 作业 习题 答案