单片机第三章答案Word格式文档下载.docx
- 文档编号:21393790
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:15
- 大小:514.41KB
单片机第三章答案Word格式文档下载.docx
《单片机第三章答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机第三章答案Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
(2)MOVXA,@DPTRMOVX@DPTR,A
(3)MOV@R0,AMOVX@R0,A
(4)MOVCA,@A+DPTRMOVXA,@DPTR
【3-21】假定累加器A中的内容为30H,执行指令1000H:
MOVCA,@A+PC后,把程序存储器()单元的内容送入累加器A中。
【3-22】在AT89S51中,PC与DPTR都用于提供地址,但PC就是为访问()提供地址,而DPTR就是为访问()与()提供地址。
【3-23】试写出完成以下数据传送的指令序列。
(1)R1的内容传送R0;
(2)片外RAM60H单元的内容送入R0;
(3)片外RAM60H单元的内容送入片内RAM40H单元;
(4)片外RAM1000H单元的内容送入片外RAM40H单元。
【3-24】试编程,将外部RAM1000H单元中的数据与内部RAM60H单元中的数据相互交换。
【3-25】对程序存储器的读操作。
只能使用()。
A)MOV指令B)PUSH指令C)MOVX指令D)MOVC指令
【3-26】
(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后,(DPH)=(),(DPL)=(),(SP)=()。
POPDPH
POPDPL
POPSP
【3-27】假定,(SP)=60H,(A)=30H,(B)=70H,执行下列指令后,SP的内容为(),61H单元的内容为(),62H单元的内容为()。
PUSHAcc
PUSHB
【3-28】已知程序执行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后,(A)=(),(SP)=(),(51H)=(),(52H)=(),(PC)=()。
POPDPL
MOVDPTR,#4000H
RLA
MOVB,A
MOVCA,@A+DPTR
MOVA,B
INCA
RET
ORG4000H
DB10H,80H,30H,50H,30H,50H
【3-29】已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。
(1)XCHA,R1
(2)XCHA,40H
(3)XCHA,@R1
(4)XCHDA,@Rl
(5)SWAPA
(6)ADDA,R1
(7)ADDA,40H
(8)ADDA,#40H
(9)ADDCA,40H
(10)SUBBA,40H
(11)SUBBA,#40H
【3-30】试分析下面两组指令的执行结果有何不同?
(1)MOVA,#0FFH
(2)MOVA,#0FFH
INCAADDA,#O1H
【3-31】DAA指令有什么作用?
怎样使用?
【3-32】已知(A)=87H,(R0)=42H,(42H)=24H,请写出执行下列程序段后A的内容。
ANLA,#23H
ORL42H,A
XRLA,@R0
CPLA
【3-33】写出完成如下要求的指令.但就是不能改变未涉及位的内容。
(1)把Acc、3,Acc、4,Acc、5与Acc、6清0。
(2)把累加器A的中间4位清0。
(3)把Acc、2与Acc、3置1。
【3-34】假定(A)=83H,(R0)=17H,(17H)=34H,执行以下指令后,(A)=()。
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLA
【3-35】假设(A)=55H,(R3)=0AAH,在执行指令“ANLA,R3”后,(A)=(),(R3)=()。
【3-36】已知组合逻辑关系式为F=AB+C,请编写模拟其功能的程序。
设A、B、C、F均代表位地址。
【3-37】编程完成下述操作。
(1)将外部RAM1000H单元的所有位取反;
(2)将外部RAM60H单元的高2位清零,低两位变反,其余位保持不变。
【3-38】试用位操作指令实现逻辑操作:
P1、0=(10H∨P1、0),PSW、1=(18H∨CY)。
【3-39】仔细辨析下列指令的意义,找出错误的指令,并简要说明原因。
(1)CLRA
(2)CLREOH
(3)CLRACC
(4)CLRACC.0
(5)CPLA
(6)CPLEOH
(7)CPLACC
(8)CPLACC.0
【3-40】指令LJMPaddrl6与AJMPaddrl1的区别就是什么?
【3-41】试分析以下两段程序中各条指令的作用,程序执行完将转向何处?
(1)MOVp1,#0CAH
MOVA,#56H
JBP1、22,L1
JNBACC.3,L2
……
L1:
:
L2:
(2)MOVA,#43H
JBACC.2,L1
JBCACC.6,L2
……
【3-42】判断以下指令的正误。
(1)MOV28H,@R2;
(2)DECDPTR;
(3)INCDPTR;
(4)CLRR0;
(5)CPLR5
(6)MOVR0,R1;
(7)PUSHDPTR;
(8)MOVF0,C;
(9)MOVF0,Acc、3;
(10)MOVXA,@R1;
(11)MOVC,30H;
(12)RLCR0
【3-43】借助指令表(附录B),对如下指令代码(十六进制)进行手工反汇编。
FFC0E0E5F0
【3-44】以下指令中,属于单纯读引脚的指令就是()。
A)MOVP1,A
B)ORLP1,#0FH
C)MOVC,Pl、5
D)ANLP1,#0FH
【3-45】用AT89S51单片机的P1口做输出,经驱动电路接8个发光二极管,见图3-11所示。
当输出位为“0”时,发光二极管点亮;
输出为“1”时,发光二极管为暗。
试编制程序①将8个发光二极管全部点亮;
②将8个发光二极管全部熄灭;
③将8个发光二极管隔一个点亮一个;
④每次亮一个,循环左移,一个一个地亮,循环不止。
图3-11单片机P1口驱动发光二极管
【3-46】如图3-12所示,这就是由AT89C51构建的最小系统,外部连接了4个按键S1~S4及4个发光二极管LEDl-LED4,P1口的高4位用于接收按键的输入状态,而低4位用于驱动发光二极管。
请结合图示,编写程序,完成以下要求。
(1)若Sl闭合,则发光二极管LEDl点亮;
若S2闭合,则发光二极管.LED2点亮……。
以此类推,即发光二极管实时反映按键状态。
(2)用4个发光二极管实现对按键键值的BCD编码显示。
即若Sl闭合,键值为1,编码为0001,LEDl点亮;
若S2闭合,键值为2,编码为0010,LED2点亮;
若S3闭合,键值为3,编码为0011,LEDI、LED2同时点亮;
若S4闭合,键值为4,编码为0100,LED3点亮。
图3-12
第三章思考题答案:
【3-1】解答:
(1)C语言那种语言的可读性与可移植性强,例如对于用C语言编制的51单片机程序,只需要稍作修改就可以移植到PIC类型的单片机上。
(2)汇编语言适用于对速度与时序敏感的场合。
(3)正确。
【3-2】解答:
(1)C语言与汇编语言经过编译后将就是二进制的机器语言。
(2)正确。
【3-3】解答:
(1)一条完整的汇编语言指令包括标号、操作码、操作数与注释四部分。
(2)其中标号与操作码用冒号分隔,操作码与操作数之间用空格,多个操作数之间用逗号分隔,注释用冒号开头。
(3)四个部分中操作码就是必须存在的,其她三部分在有的指令中可以不出现。
(4)标号就是一种符号地址。
标号以字母开头,由1-8个字母或数字组成。
【3-4】解答:
80C51系列单片机提供了七种寻址方式:
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址(基址寄存器+变址寄存器间接寻址)、相对寻址、位寻址。
【3-5】解答:
立即寻址寻址方式中的立即数就是存放在ROM中。
【3-6】解答:
(1)正确
(2)正确(3)错误(4)错误
【3-7】解答:
直接寻址方式可访问以下存储空间:
①内部RAM低128个字节单元,指令中直接地址以单元地址的形式给出。
②特殊功能寄存器。
【3-8】解答:
寄存器寻址中规定的寄存器有:
①工作寄存器R0~R7。
②累加器A。
③双字节AB。
④数据指针DPTR。
【3-9】解答:
(1)能用于间接寻址的寄存器有R0,R1,DPTR,SP。
其中R0、R1必须就是工作寄存器组中的寄存器。
(2)采用R0、R1作为间址寄存器,可寻址内部RAM的低128个单元与外部RAM低256个单元单元;
采用16位的DPTR作为间址寄存器,可寻址外部RAM的整个64KB地址空间。
【3-10】解答:
地址。
【3-11】解答:
(1)80C51单片机变址寻址方式中就是以DPTR或PC作基址寄存器,以累加器A作变址寄存器。
(2)就是的。
@A+PC,@A+DPTR寻址所找到的操作数就是在ROM中。
【3-12】解答:
正确。
80C51单片机凡就是指令中带有rel相对偏移量的指令,其PC的改变都就是相对的。
【3-13】解答:
若访问特殊功能寄存器,只可以采用直接寻址。
【3-14】解答:
若访问外部RAM单元,只可以使用寄存器间接寻址方式。
【3-15】解答:
若访问内部RAM单元,可使用直接寻址、寄存器寻址、寄存器间接寻址与位寻址。
【3-16】解答:
若访问内外程序存储器,可使用变址寻址方式。
【3-17】解答:
(1)还包含内部RAM的20H-2FH,共16个字节,16*8=128个位,每一位都有一个位地址,对应位地址00H-7FH。
(2)位地址就是00H、08H、22H、7FH、D0H、E0H对应的字节地址分别就是20H、21H、24H、2FH、D0H、E0H。
【3-18】解答:
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-19】解答:
因为寄存器间接寻址方式中R0或R1的内容就是操作数的RAM地址,内部RAM的寻址范围就是00H~7FH。
【3-20】解答:
外部数据传送指令有4条:
MOVXA,@DPTR;
MOVX@DPTR,A;
MOVXA,@Ri;
MOVX@R,A。
(1)都就是访问片外RAM,但二者寻址范围不同。
前1条指令就是对片外RAM低256个单元的“读”操作;
后1条指令就是对片外RAM64KB空间的“读”操作。
(2)访问空间相同,但数据传送方向不同。
前1条指令就是对片外RAM64KB空间的“读”操作;
后1条指令就是对片外RAM64KB空间的“写”操作。
(3)访问空间不同。
前1条指令就是对片内RAM低128个单元的“写”操作;
后1条指令就是对片外RAM低256个单元的“写”操作。
(4)二者访问的空间不同,寻址方式不同。
前1条指令就是变址寻址方式,对ROM操作;
后1条指令就是寄存器间接寻址方式,对片外RAM操作。
【3-21】解答:
1031H。
【3-22】解答:
ROM;
ROM与外部RAM。
【3-23】解答:
(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。
MOVA,R1
MOVR0,A
(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。
由于片外RAM就是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。
MOVR1,#60H
MOVXA,@R1
MOVR0,A
(3)MOVR1,#60H
MOV40H,A
(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。
MOVDPTR,#1000H
MOVXA,@DPTR
MOVR1,#40H
MOVX@R1,A
【3-24】解答:
片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。
数据交换需要使用数据交换指令XCH。
XCHA,60H
MOVX@DPTR,A
【3-25】解答:
D。
【3-26】解答:
3CH;
5FH;
50H。
【3-27】解答:
30H;
70H。
【3-28】解答:
50H;
52H;
5030H。
【3-29】解答:
(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-30】解答:
(1)该组指令执行后(A)=00H,不影响CY位。
(2)该组指令执行后(A)=00H,影响CY位。
说明:
单独执行INC指令,只影响奇偶标志位P,不影响半进位标志位AC与进位位CY位。
执行ADD指令后,将影响CY、AC与P位。
【3-31】解答:
DAA指令的作用就是对A中刚进行的两个BCD码的加法结果进行修正,即继续使BCD码加法运算的结果保持为BCD码。
使用时,DAA指令只能使用在加法指令后,即ADD指令与ADDC指令。
【3-32】解答:
A←(A)∧23H,(A)=03H
42H←(42H)∨(A),(42H)=37H
A←(A)
((R0)),(A)=34H
A←(
),(A)=CBH
(A)=CBH
【3-33】解答:
(1)ANLA,#87H
(2)ANLA,#0C3H
(3)ORLA,#0CH
【3-34】解答:
0CBH。
【3-35】解答:
00H;
0AAH。
【3-36】解答:
ANLA,B
ORLA,C
MOVF,C
【3-37】解答:
(1)MOVDPTR,#1000H
MOVXA,@DPTR
MOVX@DPTR,A
(2)MOVR0,#60H
MOVXA,@R0
ANLA,#3FH
XRLA,#03H
MOVX@R0,A
【3-38】解答:
(1)MOVC,10H
ANLC,P1、0
(2)ORLC,18H
MOVPSW、1,C
【3-39】解答:
(1)正确。
(2)错误。
原因:
清零指令只能用于累加器ACC与位操作,而本题中E0H只能就是字节地址(位地址的范围就是00H~7FH),所以该条指令错误。
(3)错误。
ACC就是直接字节地址,不能用于清零指令。
(4)正确。
ACC、0就是一个位,可以应用到清零指令中。
(5)正确。
(6)错误。
取反指令只能用于累加器ACC与位操作,而本题中E0H只能就是字节地址(位地址的范围就是00H~7FH),所以该条指令错误。
(7)错误。
ACC就是直接字节地址,不能用于取反指令。
(8)正确。
ACC、0就是一个位,可以应用到取反指令中。
【3-40】解答:
指令LJMPaddr16就是长转移指令,指令中提供了16位目的地址,寻址范围就是64KB。
指令AJMPaddr11就是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围就是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。
【3-41】解答:
(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清零
…
执行完本段程序后将转移至L2,因为ACC、2=0,ACC、6=1,所以转至L2,并且将ACC、6清零。
【3-42】解答:
(1)错误。
可以做间接寄存器的只有R0与R1,不包括R2。
(4)错误。
CLR的操作数只能就是C或bit。
(5)错误。
CPL的操作数只能就是C或bit。
两个寄存器间不能直接进行数据传送。
PUSH指令时字节操作指令。
(9)错误。
位传送指令只进行C与位地址间的数据互送。
(10)正确。
(11)正确。
位操作指令。
(12)错误。
RLC指令的操作数只能就是A。
【3-43】解答:
(1)FF:
MOVR7,A
(2)C0:
PUSHdirect
(3)E0:
MOVXA,@DPTR
(4)E5:
MOVA,direct
(5)F0:
MOVX@DPTR,A
【3-44】解答:
C。
【3-45】解答:
(1)MOVA,#00H
MOVP1,A
(2)MOVA,#0FFH
(3)MOVA,#AAH(或就是55H)
(4)MOVA,#0FEH
LOOP:
MOVP1,A
RLA
LCALLDELAY
SJMPLOOP
DELAY:
MOVR7,#01H
DELAY1:
MOVR6,#01H
DJNZR6,$
DJNZR7,DELAY1
RET
【3-46】解答:
(1)MOVA,P1
CPLA
ANLA,#0F0H
SWAPA
MOVP1,A
(2)LOOP:
JNBP1、4,L1
JNBP1、5,L2
JNBP1、6,L3
JNBP1、7,L4
LJMPLOOP
MOVP1,#01H
MOVP1,#02H
L3:
MOVP1,#03H
L4:
MOVP1,#04H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第三 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)