第三章课后题_第1页
第三章课后题_第2页
第三章课后题_第3页
第三章课后题_第4页
第三章课后题_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、 第三章 80C51系列微控制器的指令系统及程序设计1简述80C51系列MCU的寻址方式及所涉及的寻址空间。80C51系列MCU指令系统的寻址方式共有7种。(1)立即寻址:在指令中直接给出操作数。寻址空间为数据存储器区。(2)直接寻址:在指令中直接给出操作数单元的地址。寻址空间为内部RAM低128B,特殊功能寄存器。(3)寄存器寻址:在指令中指定寄存器的内容作为操作数。寻址空间为工作寄存器R0R7、寄存器对AB、数据指针DPTR、进位位CY。(4)寄存器间接寻址:在指令中要到寄存器的内容所指定的地址去取操作数。寻址空间为全部RAM。(5)相对寻址:在指令中给出的操作数为程序转移的偏移量。寻址空

2、间为程序存储器区。(6)变址寻址:以DPTR及PC作为基址寄存器,累加器A作为变址寄存器,以两者内容相加形成的16位程序存储器地址作为操作数地址。寻址空间为程序存储器区。(7)位寻址:对数据位的操作。寻址空间为内部RAM中的位寻址区和可位寻址的SFR位。2变址寻址方式有什么优点?主要用于什么场合? 优点:可以方便地访问全部程序存储器区。用途:查表和多分支转移(散转)。3访问SFR和片外RAM应采用哪种寻址方式? 访问SFR应采用直接寻址、位寻址(部分寄存器,A、AB、DPTR可寄存器寻址);访问片外RAM应采用寄存器间接寻址。4.对80C51系列MCU片内数据区地址80H0FFH的空间寻址时应

3、注意些什么? 注意:只有80C52(例如89C52)中有这部分地址空间;在这部分空间,只能采用间接寻址。580C51系列MCU的指令系统具有哪些主要特点? 80C51的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令、46条双字节指令和16条三字节指令,以单字节指令为主;如果按指令执行时间分类,有64条单周期指令、45条双周期指令和2条(乘、除)四周期指令,以单周期指令为主。 由此看来,80C51的指令系统具有存储效率高、执行速度快的特点。除此而外,指令系统还有如下特点: 可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A

4、或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。 580C51系列MCU的指令系统具有哪些主要特点? 用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编程翻译算法提供了方便。 在算术运算指令中设有乘法(MUL)和除法(DIV)指令。 指令系统中,一些对I/O口进行操作的指令具有读一修改一写的功能。读一修改一写指令是指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2读 人内部,进行修改、改变,然后重新写到锁存器中去。这一特点是由I/O口的准双向特性所决定的。这种类型的指令包含所有的口的逻辑操作(ANL

5、、ORL、XRL)和位操作(JBC、CPL、 MOV、SETB、CLR等)指令。 80C51单片机内部有一个布尔(位)处理器,对位地址空间具有丰富的位操作指令。布 尔(位)操作类指令共有17条,其中包括布尔传送指令、布尔状态控制指令、布尔(位)逻辑操作指令及布尔(位)条件转移指令。680C51系列MCU有哪些逻辑运算功能?各有什么用处? (1)逻辑运算功能 单操作数逻辑运算指令,其操作对象都是累加器A,包括:清0、取反、循环左移、带进位循环左移、循环右移、带进位循环右移和半字节互换指令。 双操作数逻辑运算指令,包括:逻辑与(ANL)、逻辑或(ORL)及逻辑异或(XOR)三类操作。 布尔(位)逻

6、辑操作指令,包括:位逻辑与(ANL)及位逻辑或(ORL)两类操作。 680C51系列MCU有哪些逻辑运算功能?各有什么用处? ( 2 ) 逻辑运算的用处 若是对口的操作,即为读一改一写。 逻辑与运算指令用做清除。 逻辑或运算指令用做置位。 逻辑异或运算指令用做取反。 用RLC A指令将累加器A的内容作乘2运算。 用RRC A指令将累加器A的内容作除2运算。780C51系列MCU的转移类指令有何独特优点?无条件转移指令有哪几种?如何选用?1. 条件转移指令 在条件转移指令中两类指令有独特的优点。(1)比较转移(CJNE)指令CJNE A,direct,rel A内容与直接寻址单元内容比较,并转移

7、。 CJNE A,#data,rel A内容与立即数比较,并转移。CJNE Rn,#data,rel 寄存器内容与立即数比较,并转移。CJNE Ri,#data,rel 间址单元内容与立即数比较,并转移。这4条指令能对所有单元内容进行比较,当不相等时程序作相对转移,并指出其大小,以备作第二次判断。780C51系列MCU的转移类指令有何独特优点?无条件转移指令有哪几种?如何选用?其功能可从程序转移和数值比较两个方面说明。 程序转移:若目的操作数=源操作数,则 程序顺利执行 PC(PC)+3 进位位清0 CY0 若目的操作数源操作数,则 程序转移 PC(PC)+3+rel 进位位清0 CY0 若目

8、的操作数源操作数,则程序转移 PC(PC)+3+rel 进位位清0 CYl 780C51系列MCU的转移类指令有何独特优点?无条件转移指令有哪几种?如何选用?数值比较:在80C51的指令系统中没有比较指令,两个数值的比较可利用这4条指令来实现,即可按指令执行后,根据CY的状态来判断数值的大小。若(CY)=0,则目的操作数源操作数; 若(CY)=1,则目的操作数源操作数。 (2)循环转移(DJNZ)指令 80C51设有功能极强的循环转移指令: DJNZ Rn,rel 以工作寄存器作控制计数器。DJNZ direct,rel 以直接寻址单元作控制计数器。 这2条基本指令可派生出很多条不同控制计数器

9、的循环转移指令,大大扩充了应用范围 和多重循环层次。 780C51系列MCU的转移类指令有何独特优点?无条件转移指令有哪几种?如何选用?2. 无条件转移指令无条件转移指令的功能是程序无条件地转移到各自指定的目标地址去执行,不同的指令 形成的目标地址不同。共有4条: (1)相对转移(SJMP)指令SJMP rel 指令的目标地址是由PC(程序计数器)和指令的第二字节带符号的相对地址相加而成的。 指令可转向指令前128B或指令后127B。(2)短转移(AJMP)指令 AJMP addr11 指令提供11位地址,目标地址由指令第一字节的高三位a10a8和指令第二字节的a7a0所组成。因此,程序的目标

10、地址必须包含AJMP指令后第一条指令的第一个字节在内的2KB范围内。780C51系列MCU的转移类指令有何独特优点?无条件转移指令有哪几种?如何选用? (3)长转移(LJMP)指令 LJMP addrl6 指令提供16位地址,目标地址由指令第二字节和第三字节组成。因此,程序转向的目标地址可以包含程序存储器的整个64KB空间。 (4)间接转移(JMP)指令 JMP A+DPTR 指令的目标地址是将累加器A中的8位无符号数与数据指针DPTR的内容相加而得。 相加运算不影响累加器A和数据指针DPTR的原内容。若相加的结果大于64KB,则从程序存储器的零地址往下延续。880C51系列MCU的短调用和长

11、调用指令本质上有何区别?如何选用? 这两条指令都是在主程序中调用子程序,两者的区别:对短调用指令,被调用子程序入口地址必须与调用指令的下一条指令的第一字节在相同的2KB存储区之内。入口地址与指令在2K内可选用ACALL或LCALL,超出2K范围只能选用LCALL。980C51系列MCU的片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。分析下面各条指令,说明源操作数的寻址方式,给出按顺序执行各条指令后的结果。10已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,请填写下列各条指令的执行结果:11试分析以下程序段的执行

12、结果。 执行结果:A、B内容交换,即:(A)=30H,(B)=20H12已知(A)=81H,(R0)=17H,(17H)=35H,指出执行完下列程序段后A的内容。 ANL A, #17H ORL 17H, A XRL A, R0 CPL A 执行结果:(A)=0CBH13设R0的内容为32H,A的内容为48H,内部RAM的32H单元内容为80H,40H单元内容为08H,指出在执行下列程序段后上述各单元内容的变化。14将片外RAM区100CH单元中的内容传送到120CH单元中,请编程实现。 MOV DPTR, #100CH MOVXA, DPTR MOV DPTR, #120CH MOVXDPT

13、R, A15将片外RAM区40H单元中内容和41H单元中内容相乘,并将结果存放在片外RAM区42H和43H单元中,高位存放在高地址中,请编程实现。16将片外RAM区40H60H区域的数据块,全部搬移到片内RAM区的相同地址区域,并将原数据区全部填00H,请编程实现。17计算片内RAM区50H57H区域的数据的算术平均值,结果存放在58H中,请编程实现。18已知16位二进制数放在片内RAM区20H和21H单元,高位存放在高地址中,请编写将其右移一位的程序。19请用位操作指令,求下列逻辑方程:20已知16位二进制数放在R7R6中,请编写对它们进行求补操作的程序,结果存放在R1R0中。 MOV A,R0 CPL A ADD A,#01H MOV R2,A MOV A,R1 CPL A ADDC A,#00H MOV R3,A END21在起始地址为1200H,长度为64的数据表中找出ASCII码“F”,将其送到1000H单元中,请编程实现。22试编写一段程序,把0500H0506H单元中的压缩BCD码转换成ASCII码,存放在0500H为首地址的存储单元中。23请编写一个延时2ms的子程序。24利用查表技术将累加器中的一位BCD码转换为相应的十进制数的七段码,结果仍放在A中(设显示数字09的七段码分别是:40H

温馨提示

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

最新文档

评论

0/150

提交评论