单片机作业习题答案.docx
- 文档编号:27405289
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:35
- 大小:41.15KB
单片机作业习题答案.docx
《单片机作业习题答案.docx》由会员分享,可在线阅读,更多相关《单片机作业习题答案.docx(35页珍藏版)》请在冰豆网上搜索。
单片机作业习题答案
作业习题答案
《单片机应用技术》部分习题与参考答案
第1章单片机概述
1-1什么是嵌入式系统?
嵌入式系统的硬件和软件各包括哪些内容?
答:
以应用为中心,以计算机技术为基础,软/硬件可剪裁,针对具体应用系统,对功能、可靠性,成本、体积、功耗严格要求的专用计算机系统称为嵌入式计算机系统。
简称为嵌入式系统。
嵌入式系统的硬件包括:
嵌入式处理器、存储器和外部设备器件、输入输出接口、图形控制器等。
软件包括操作系统和应用程序。
嵌入式系统是专用的计算机系统,嵌入式系统的核心是嵌入式处理器,单片机是嵌入式处理器的典型代表。
1-2什么叫单片机?
一个完整的单片机芯片至少有哪些部件?
答:
将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3嵌入式处理器有何特点?
嵌入式处理器分为哪几类?
答:
嵌入式处理器对实时和多任务系统有和强的支持能力、对存储区保护功能强、具有可扩展的处理器结构及低功耗等特点。
嵌入式处理器分为:
嵌入式微处理器、微控制器、嵌入式DSP处理器和片上系统等。
1-4单片机系统的开发过程分为那几步进行?
答:
1.硬件的设计与调试。
2应用程序的设计和调试。
3系统联调。
4程序的固化。
5.脱机运行。
1-5Intel公司的主要单片机产品分为哪几大系列?
各系列的区别何在?
答:
Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;
48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。
51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。
96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。
1-6叙述51子系列与52子系列的区别?
答:
51子系列包含8031/8051/8751三种型号,它们的基本组成、基本性能都相同,都具有一个8位CPU、片内数据存储器RAM128B、2个16位定时/计数器、有5个中断源,一个全双工串行接口,它们之间的区别在于片内程序存储器配置:
8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
子系列的区别在51子系列与52三种型号,8032/8052/8752子系列包含52.
/8051子系列各增加一倍,另外,增加了一个定时和RAM的容量比于:
片内ROM计数器和一个中断源。
MCS-51系列单片机的基本结构第2章2-1画出微型计算机基本结构框图,简述各部分的基本功能。
。
2-2答:
见教材图如何接法?
使用时单片机的引脚有何功能?
在使用80312-2MCS-51如何接法?
8751时端保持高电平时,访问内引脚是片内外程序存储器的选择信号。
当答:
)8051/8751/80C51(程序计数器)值超过0FFFH(对于部程序存储器,但在PC端保持低电平)时,将自动转向访问外部程序存储器。
当1FFFH(对于8052或时,不管是否有内部程序存储器,则只访问外部程序存储器。
引脚必须接低电平。
8031时,由于8031片内没有程序存储器,所以在使用微型计算机的存储器普林斯顿结构和哈弗结构有什么不同?
2-3
答:
按微型计算机的存储器地址空间的不同分配形式分为普林斯顿结构和哈弗采RAMROM和结构。
普林斯顿结构的特点是计算机只有一个地址空间。
CPU访问和ROMRAM安排在相互独立的两个地址空间,用相同的指令。
哈弗结构将ROM和51系列单片机采用哈弗结构。
RAM可以有相同的地址,但采用不同的指令访问。
微型计算机存储器的地址线与存储的容量有什么关系?
如果存储器的地2-4
13条,则存储的容量为多大?
址线有213=8KB.
)。
答:
存储的容量=2n,(n:
存储器的地址线的条数单单片机的存储器从物理结构上分别可划分为几个空间?
89C512-589C51片机采用何种方式区分内外程序存储器和内外数据存储器?
单片机的存储器从物理结构上分别内外程序存储器和内外数据存储答:
89C51接到不同的电平区分,内外数据存储器、/PSEN器。
内外程序存储器采用引脚/EA连接和不同的指令加以区分。
/RD采用引脚、/WR单片机的内部存储空间是怎样分配的?
2-6MCS-51单片机的内部存储空间分为数据存储器和程序存储器。
答:
MCS-51个单元。
低128字节单元,包括低128个单元和高内部数据存储器:
共256)和20H~2FH00H~1FH),位寻址区(128字节又分成3个区域:
工作寄存器区(字节是供给特殊功能寄存器使用的,因此称之12830H~7FH)。
高用户RAM区(为特殊功能寄存器区。
,掩模ROM片内无程序存储器,8051片内具有4KB内部程序存储器:
在8031。
4KBEPROM8751片内具有个工作寄存器组中选择当前工作寄存器组?
MCS-51单片机的42-7如何从组工作寄存器,对于当前工作寄存器组的选择,4MCS-51单片机提供了答:
RS0来进行选择。
具体关系如下表:
PSW是通过中的RS1和
RR当前寄存器组S0
S1
00第0组工作寄存器10组工作寄存器第10
1
组工作寄存器2第
1
1组工作寄存
2-8内部RAM低128个单元是如何划分的?
答:
内部RAM低128个单元按用途分成3个区域:
工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。
2-9DPTR是什么寄存器?
它的作用是什么?
它由哪几个寄存器组成?
答:
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-12P0、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-1MCS-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)相对寻址:
只在相对转移指令中使用。
对应片内、片外的ROM空间。
(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条:
A
,@DPTRMOVX@DPTR,MOVXA.
MOVXA,@RiMOVX@Ri,A
MOVCA,@A+DPTRMOVCA,@A+PC
(1)MOVXA,@R1MOVXA,@DPTR
都是访问片外RAM,但二者寻址范围不同。
前1条指令是对片外RAM低256个单元的“读”操作。
后1条指令是对片外RAM64KB空间的“读”操作。
(2)MOVXA,@DPTRMOVX@DPTR,A
访问空间相同,但数据传送方向不同。
前1条指令是对片外RAM64KB空间的“读”操作。
后1条指令是对片外RAM64KB空间的“写”操作。
(3)MOV@R0,AMOVX@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,试写出执行以下程序段后有关单元的内容。
MOVR0,#30H
MOVA,@R0
MOVR1,A
MOVB,@R1
MOV@R1,P1
MOVP2,P1
MOV10H,#20H
MOV30H,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单元;
;R2单元的内容送入ROM2000H)5(.
(6)ROM2000H单元的内容送入片内RAM40H单元;
(7)ROM2000H单元的内容送入片外RAM0200H单元。
答:
(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。
MOVA,R1
MOVR0,A
(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。
由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。
MOVR1,#60H
MOVXA,@R1
MOVR0,A
(3)MOVR1,#60H
MOVXA,@R1
MOV40H,A
(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。
MOVDPTR,#1000H
MOVXA,@DPTR
MOVR1,#40H
MOVX@R1,A
(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。
MOVDPTR,#2000H
MOVA,#00H
MOVCA,@A+DPTR
MOVR2,A
(6)MOVDPTR,#2000H
MOVA,#00H
MOVCA,@A+DPTR
MOV40H,A
(7)MOVDPTR,#2000H
MOVA,#00H
MOVCA,@A+DPTR
MOVDPTR,#0200H
MOVX@DPTR,A
3-11试编程,将外部RAM1000H单元中的数据与内部RAM60H单元中的数据相互交换。
答:
片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。
数据交换需要使用数据交换指令XCH。
MOVDPTR,#1000H
MOVXA,@DPTR
XCHA,60H
A
,MOVX@DPTR.
3-12已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。
(1)XCHA,R1
(2)XCHA,40H
(3)XCHA,@R1(4)XCHDA,@R1
(5)SWAPA(6)ADDA,R1
(7)ADDA,40H(8)ADDA,#40H
(9)ADDCA,40H(10)SUBBA,40H
(11)SUBBA,#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,试写出各条指令的执行结果,并说明程序状态字的状态。
(1)XCHA,R1
(2)XCHA,40H
(3)XCHA,@R1(4)XCHDA,@R1
(5)SWAPA(6)ADDA,R1
(7)ADDA,40H(8)ADDA,#40H
(9)ADDCA,40H(10)SUBBA,40H
(11)SUBBA,#40H
答:
指令LJMPaddr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。
指令AJMPaddr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。
3-14试分析以下两段程序中各条指令的作用。
程序执行完将转向何处?
(1)MOVP1,#0CAH
MOVA,#56H
JBP1.2,L1
JNBACC.3,L2
…
L1:
┇
┇:
L2.
(2)MOVA,#43H
JBACC.2,L1
JBCACC.6,L2
…
L1:
┇
L2:
┇
答:
(1)MOVP1,#0CAH;P1←CAH,P1=CAH=11001010B
MOVA,#56H;A←56H,A=56H=01010110B
JBP1.2,L1;若P1.2=1,则转移至L1
JNBACC.3,L2;若ACC.3=0,则转移至L2
…
L1:
…
L2:
…
执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。
(2)MOVA,#43H;A←43H,A=43H=01000011B
JBACC.2,L1;若ACC.2=1,则转移至L1
JBCACC.6,L2;若ACC.6=1,则转移至L2,同时将ACC.6清零
…
L1:
…
L2:
…
执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。
第4章汇编语言程序设计
4-1什么是伪指令?
伪指令和指令有何区别?
它们的用途是什么
4-2基本程序结构有哪几种?
各有何特点?
4-3存放在内部RAM的DATA单元中的变量X是一个无符号整数,试编程计算下面函数的函数值并存放到内部RAM的FUNC单元中。
答:
ORG0300H
MOVA,DATA
CJNEA,#20,LOP1
LOP1:
JCLOP3
CJNEA,#50,LOP2
LOP2:
JCLOP4
MOVB,#1
LJMPLOP5
LOP3:
MOVB,#2
LJMPLOP5
LOP4:
MOVB,#5
LOP5:
MULAB
MOVFUNC,A
RET
4-5某单片机应用系统有4×4键盘,经键盘扫描程序得到被按键的键值(00H~0FH)存放在R2中,16个键的键处理程序入口地址分别为KEY0、KEY1、KEY2、…、KEY15。
试编程实现,根据被按键的键值,转对应的键处理程序。
答:
ORG0500H
MOVDPTR,#JPTAB
MOVA,R2
RLA
JMP@A+DPTR
JPTAB:
AJMPKEY0
AJMPKEY1
AJMPKEY2
……
AJMPKEY15
KEY0:
…
KEY1:
…
KEY2:
…
……
KEY15:
…
4-6试编程将片内40H~60H单元中内容传送到外部RAM以2000H为首地址的存储区中。
答:
ORG0600H
MOVR0,#40H
MOVDPTR,#2000H
MOVR7,#21H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP
RET
4-7试编程将片内40H~60H单元中内容传送到外部RAM以2000H为首地址的存储区中。
答:
ORG0700H
MOVDPTR,#DATA
MOVR7,#10
LOOP:
MOVXA,@DPTR
ORLA,#80H
MOVX@DPTR,A
INCDPTR
DJNZR7,LOOP
RET
4-8编写程序将外部RAM3000H开始的13个单元中的数据隔一个传送到内部RAM30H开始的区域。
答:
ORG0800H
MOVDPTR,#3000H
MOVR0,#30H
MOVR7,#7
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCDPTR
INCR0
DJNZR7,LOOP
RET
4-9编程将片外RAM地址为1000H~1030H的数据块,全部搬迁到片内RAM
30H~60H中,并将原数据区全部清0。
答:
ORG0900H
MOVDPTR,#1000H
MOVR1,#30H
MOVR7,#31H
LOOP:
MOVXA,@DPTR
MOV@R1,A
CLRA
MOVX@DPTR,A
INCDPTR
INCR1
DJNZR7,LOOP
RET
4-10试编程把长度为10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 作业 习题 答案