《单片机原理及应用-基于Proteus单片机系统设计及应用》课后习题毕业资料_第1页
《单片机原理及应用-基于Proteus单片机系统设计及应用》课后习题毕业资料_第2页
《单片机原理及应用-基于Proteus单片机系统设计及应用》课后习题毕业资料_第3页
《单片机原理及应用-基于Proteus单片机系统设计及应用》课后习题毕业资料_第4页
《单片机原理及应用-基于Proteus单片机系统设计及应用》课后习题毕业资料_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理及应用-基于Proteus单片机系统设计及应用》习题解答第2章80C51单片机的指令系统1.简述下列基本概念。答指令:CPU根据人的意图来执行某种操作的命令。指令系统:一台计算机所能执行的全部指令集合。机器语言:用二进制编码表示,计算机能直接识别和执行的语言。汇编语言:用助记符、符号和数字来表示指令的程序语言。高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言。2.什么是计算机的指令和指令系统?答见1题。3.简述80C51汇编指令格式。答操作码[目的操纵数][,源操作数]4.简述80C51的寻址方式和所能涉及的寻址空间。答立即数寻址:程序存储器ROM。直接寻址:片内RAM低128B和特殊功能寄存器。寄存器寻址:R0~R7,A,B,C,DPTR。寄存器间接寻址:片内RAM低128B,片外RAM。变址寻址:程序存储器64KB。相对寻址:程序存储器256B范围。位寻址:片内RAM的20H~2FH字节地址,部分特殊功能寄存器。5.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?答SFR:直接寻址,位寻址;片外RAM:寄存器间接寻址。6.在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请分析下面各是什么指令,说明源操作数的寻址方式及按顺序执行后的结果。答MOVA,40H直接寻址MOVR0,A寄存器寻址MOVP1,#0F0H立即数寻址MOV@R0,30H直接寻址MOVDPTR,#3848H立即数寻址MOV40H,38H直接寻址MOVR0,30H直接寻址MOVP0,R0寄存器寻址MOV18H,#30H立即数寻址MOVA,@R0寄存器间接寻址MOVP2,P1直接寻址均为数据传送指令,结果(参见下图)为RAM30H38H38H40H40H48H48H90H(18H)=30H,(30H)=38H,(38H)=40H(40H)=40H,(48H)=90HR0=38H,A=40H,P0=38H,P1=FOH,P2=FOH,DPTR=3848H7.对80C51片内RAM高128B的地址空间寻址要注意什么?答用直接寻址,寄存器寻址,位寻址。8.指出下列指令的本质区别。答MOVA,data直接寻址MOVA,#data立即数寻址MOVdata1,data2直接寻址MOV74H,#78H立即数寻址9.设R0的内容为32H,A的内容为48H,片内RAM的32H内容为80H,40H的内容为08H。请指出在执行下列程序段后各单元内容的变化。MOVA,@R0;((R0))=80H→AMOV@R0,40H;(40H)=08H→(R0)MOV40H,A;(A)=80H→40HMOVR0,#35H;35H→R0解(R0)=35H(A)=80H(32H)=08H(40H)=80H10.如何访问SFR,可使用哪些寻址方式?答访问SFR:直接寻址,位寻址,寄存器寻址。11.如何访问片外RAM单元,可使用哪些寻址方式?答只能采用寄存器间接寻址(用MOVX指令)。12.如何访问片内RAM单元,可使用哪些寻址方式?答低128B:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)。高128B:直接寻址,位寻址,寄存器寻址。13.如何访问片内外程序存储器,采用哪些寻址方式?答采用变址寻址(用MOVC指令)。14.说明十进制调整的原因和方法。答压缩BCD码在进行加法运算时本应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DAA指令调整(加06H,60H,66H)。15.说明80C51的布尔处理机功能。答用来进行位操作。16.已知(A)=83H,(R0)=17H,(17H)=34H,请指出在执行下列程序段后A的内容。解ANLA,#17H;83H∧17H=03H→AORL17H,A;34H∨03H=37H→17HXRLA,@R0;03H异或37H=34HCPLA;34H求反等于CBH所以(A)=CBH17.使用位操作指令实现下列逻辑操作。要求不得改变未涉及位的内容。解(1)使ACC.0置1SETBACC.0或SETBEOH(2)清除累加器高4位CLRACC.7CLRACC.6CLRACC.5CLRACC.4(3)清除ACC.3,ACC.4,ACC.5,ACC.6CLRACC.6CLRACC.5CLRACC.4CLRACC.318.编写程序,将片内RAMR0~R7的内容传送到20H~27H单元。解MOV27H,R7MOV23H,R3MOV26H,R6MOV22H,R2MOV25H,R5MOV21H,R1MOV24H,R4MOV20H,R019.编写程序,将片内RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH,2DH中。解MOV2FH,20HMOV2EH,21HMOV2DH,22H20.编写程序,进行两个16位数的减法:6F5DH一13B4H,结果存入片内RAM的30H和31H单元,30H存差的低8位。解CLRCMOVA,#5DH;被减数低8位→AMOVR2,#B4H;减数低8位→R2SUBBA,R2;被减数减去减数,差→AMOV30H,A;低8位结果→30HMOVA,#6FH;被减数高8位→AMOVR2,#13H;减数高8位→R2SUBBA,R2;被减数减去减数,差→AMOV31H,A;高8位结果→31H21.编写程序,若累加器A的内容分别满足下列条件时,则程序转至LABEL存储单元。设A中有的是无符号数。解(1)A≥10CJNEA,#10,L1;(A)与10比较,不等转L1或:CLRCL2:LJMPLABEL;相等转LABELSUBBA,#0AHL1:JNCL2;(A)大于10,转LABELJZLABELJNCLABEL(2)A>10CJNEA,#10,L1;(A)与10比较,不等转L1或:CLRCSJMPL3;相等转L3SUBBA,#0AHL1:JNCL2;(A)大于10,转L2JNCLABELSJMPL4;(A)小于10,转L4L2:JMPLABEL;无条件转LABEL(3)A≤10CJNEA,#10,L1;(A)与10比较,不等转L1或:CLRCL2:LJMPLABEL;相等转LABELSUBBA,#0AHL1:JC,L2;(A)小于10,转LABELJCLABELJZLABEL22.已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行“RET”指令后,SP=?PC=?解SP=23H,PC=3412H23.已知SP=25H,PC=2345H,标号LABEL所在的地址为3456H。问执行长调用指令“LCALLLABEL”后,堆栈指针和堆栈内容发生什么变化?PC的值等于什么?解SP=27H,(26H)=48H,(27H)=23H,PC=3456H24.上题中LCALL能否直接换成ACALL指令,为什么?如果使用ACALL指令,则可调用的地址范围是多少?解不能。ACALL是短转指令,可调用的地址范围是2KB。25.阅读下列程序,要求:(1)说明程序功能;(2)试修改程序,使片内RAM的内容成为如图所示的结果。MOVR2,#0AH50H00HMOVR0,#50H51H01HCLRA52H02HLOOP:MOV@R0,A53H03HINCR054H04HDJNZR2,LOOP55H05HDONE:56H06H57H07H58H08H59H09H解(1)功能是将片内RAM中50H~59H单元清零。(2)7A(OA)(7850)DA(FC)(3)在INCR0后添一句INCA。26.设(R0)=7EH,(DPTR)=10FEH,片内RAM中7EH单元的内容为0FFH,7F单元的内容为38H,试为下列程序注释其运行结果。解INC@R0(7EH)=00HINCR0(R0)=7FHINC@R0(7FH)=39HINCDPTR(DPTR)=10FFHINCDPTR(DPTR)=1100HINCDPTR(DPTR)=1101H27.下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么?ORG1000HTAB1EQU1234HTAB2EQU3000HDB“START”DWTAB1,TAB2,70H解(1000H)=53H(1001H)=54H(1002H)=41H(1003H)=52H(1004H)=54H(1005H)=12H(1006H)=34H(1007H)=30H(1008H)=00H(1009H)=70H28.阅读下列程序,并要求:(1)说明程序功能;(2)写出涉及的寄存器及片内RAM单元(如图所示)的最后结果。40H98HAFHMOVR0,#40H;40H→R0MOVA,@R0;98H→AINCR0;41H→R0ADDA,@R0;98+(A)=47H→AINCR0MOV@R0,A;结果存入42H单元CLRA;清AADDCA,#0;进位位存入AINCR0MOV@R0,A;进位位存入43H解功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H。29.同上题要求,程序如下:61HF2HCCHMOVA,61H;F2H→AMOVB,#02H;02H→BMULAB;F2H×02H=E4H→AADDA,62H;积的低8位加上CCH→AMOV63H,A;结果送63HCLRA;清AADDCA,B;积的高8位加进位位→AMOV64H,A;结果送64H解功能:将61H单元的内容乘2,低8位再加上62H单元的内容放人63H,将结果的高8位放在64H单元。(A)=02H(B)=01H(61H)=F2H(62H)=CCH(63H)=BOH(64H)=02H30.编写程序,采用“与”运算,判断8位二进制数是奇数个1还是偶数个1。解MOVA,#XXH;待判断的数→AANLA,#0FFH;与0FFH相与JBP,REL;是奇数转REL┇;是偶数程序顺序执行REL:┅┇┇31.编写程序,采用“或”运算,使任意8位二进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论