单片机原理与应用及C51程序设计--杨加国主编-完整版答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用及C51程序设计--杨加国主编-完整版答案
单片机原理与应用及C51程序设计
第一章
第二章
第三章
1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?
答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。
2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别?
答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。
3.在位处理中,位地址的表示方式有哪几种?
答:1.直接位地址(00H~0FFH)。例如:20H
2.字节地址带位号。例如:20H.3表示20H单元的3位。
3.特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。
4.位符号地址。例如:TR0是定时/计数器T0的启动位。4.写出完成下列操作的指令。
(1)R0的内容送到R1中。
MOV A,R0
MOV R1,A
(2)片内RAM的20H单元内容送到片内RAM的40H单元中。
MOV 40H,20H
(3)片内RAM的30H单元内容送到片外RAM的50H单元中。
MOV A,30H
MOV R0,#50H
MOVX @R0,A
(4)片内RAM的50H单元内容送到片外RAM的3000H单元中。
MOV A,50H
MOV DPTR,#3000H
MOVX @DPTR,A
(5)片外RAM的2000H单元内容送到片内RAM的20H单元中。
MOV DPTR,#2000H
MOVX A,@DPTR
MOV 20H,A
(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。
MOV DPTR,#1000H
MOVX A,@DPTR
MOV DPTR,#4000H
MOV @DPTR,A
(7)ROM的1000H单元内容送到片内RAM的50H单元中。
MOV A,#0
MOV DPTR,#1000H
MOVC A,@A+DPTR
MOV 50H,A
(8)ROM的1000H单元内容送到片外RAM的1000H单元中。
MOV A,#0
MOV DPTR,#1000H
MOVC A,@A+DPTR
MOVX @DPTR,A
5.区分下列指令有什么不同?
(1)MOV A,20H和MOV A,#20H
答:前者源操作数是直接寻址,后者源操作数立即寻址。
(2)MOV A,@R1和MOVX A,@R1
答:前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。
(3)MOV A,R1和MOV A,@R1
答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。(4)MOVX A,@R1和MOVX A,@DPTR
答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。
(5)MOVX A,@DPTR和MOVC A,@A+DPTR
答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。
6.设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析下列指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。
MOV R0,#20H ;R0=20H
MOV A,@R0 ;A=40H
MOV R1,A ;R1=40H
MOV A,@R1 ;A=10H
MOV @R0,P1 ;(40H)=0CAH
MOV P2,P1 ;P2=0CAH
MOV 10H,A ;(10H)=10H
MOV 20H,10H ;(20H)=10H
结果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH 7.已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令执行后目标单元的内容。
(1)MOV A,@R1 结果:累加器A等于70H
(2)MOVX @DPTR,A 结果:片外RAM(2FFCH)单元等于02H (3)MOVC A,@A+DPTR 结果:累加器A等于64H
(4)XCHD A,@R1 结果:累加器A等于00H,片内RAM(7FH)单元等于72H
8.已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。
(1)ADD A,@R1 ;累加器A等于55H,CY等于1
(2)SUBB A,#77H ;累加器A等于00H,CY等于0
(3)MUL AB ;累加器A等于E0H,B寄存器等于01H,CY 等于1,OV等于0
(4)DIV AB ;累加器A等于1EH,B寄存器等于00H,CY、OV等于0
(5)ANL 78H,#78H ;片内RAM(78H)单元等于58H
(6)ORL A,#0FH ;累加器A等于7FH
(7)XRL 80H,A ;片内RAM(80H)等于14H
9.设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、R0、17H单元的内容。
ANL A,#17H ;A=03H
ORL 17H,A ;(17H)=37H
XRL A,@R0 ;A=34H
CPL A ;A=CBH
结果:A=CBH,(R0)=17H,(17H)=37H
10.写出完成下列要求的指令。
(1)累加器A的低2位清零,其余位不变。
ANL A,#11111100B