1 / 124

MCS5-1 单片机

MCS5-1 单片机. MCS5-1 的指令系统. 寻址方式. MCS - 51 共有 7 种 址方寻式 ,现介绍如下:   ( 1 ) 立即寻址 : 操作数 就写在指令中,和 操作码 一起放在程序 存贮器 中。把“ #” 号放在 立即数 前面,以表示该寻址方式为立即寻址,如 mov A,#20H 。.  ( 2 ) 寄存器 寻址:操作数放在寄存器中,在指令中直接以寄存器的名来表示操作数地址。如 MOV A , R0 就属于 寄存器寻址 ,即 R0 寄存器的内容送到 累加器 A 中。.

conan-ortiz
Download Presentation

MCS5-1 单片机

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MCS5-1单片机 MCS5-1的指令系统

  2. 寻址方式 • MCS-51共有7种址方寻式,现介绍如下: •   (1)立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如mov A,#20H。

  3.  (2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名来表示操作数地址。如MOV A,R0就属于寄存器寻址,即R0寄存器的内容送到累加器A中。

  4.  (3)直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。

  5. (4)寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。 如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加@符号来表示这种间接寻址。如MOV A,@ R0。

  6.   (5)变址寻址:指定的变址寄存器的内容与指令中给出的偏移量相加,所得的结果作为操作数的地址。如MOVC A,@A+DPTR

  7. (6)相对寻址:由程序计数器中的基地址与指令中提供的偏移量相加,得到的为操作数的地址。如SJMP rel

  8. (7)位寻址:操作数是二进制中的某一位,其位地址出现在指令中。如SETB bit • MCS51的指令系统按功能分有:数据传送类、转移指令、算术运算类、逻辑运算类、和十进制指令及一些伪指令共111个。

  9. 算术运算指令 • 1.ADD A,Rn 将累加器与寄存器的内容相加,结果存回累加器

  10. 2.ADD A,direct 将累加器与直接地址的内容相加,结果存回累加器

  11. 3.ADD A,@Ri 将累加器与间接地址的内容相加,结果存回累加器

  12. 4.ADD A,#data 将累加器与常数相加,结果存回累加器

  13. 5.ADDC A,Rn 将累加器与寄存器的内容及进位C相加,结果存回累加器

  14. 6.ADDC A,direct 将累加器与直接地址的内容及进位C相加,结果存回累加器

  15. 7.ADDC A,@Ri 将累加器与间接地址的内容及进位C相加,结果存回累加器

  16. 8.ADDC A,#data 将累加器与常数及进位C相加,结果存回累加器

  17. 9.SUBB A,Rn 将累加器的值减去寄存器的值减借位C,结果存回累加器

  18. 10.SUBB A,direct 将累加器的值减直接地址的值减借位C,结果存回累加器

  19. 11.SUBB A,@Ri 将累加器的值减间接地址的值减借位C,结果存回累加器

  20. 12.SUBB A,#data 将累加器的值减常数值减借位C,结果存回累加器

  21. 13.INC A 将累加器的值加1

  22. 14.INC Rn 将寄存器的值加l

  23. 15.INC direct 将直接地址的内容加1

  24. 16.INC @Ri 将间接地址的内容加1

  25. 17.INC DPTR 数据指针寄存器值加1 •   说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位

  26. 18.DEC A 将累加器的值减1

  27. 19.DEC Rn 将寄存器的值减1

  28. 20.DEC direct 将直接地址的内容减1

  29. 21.DEC @Ri 将间接地址的内容减1

  30. 22.MUL AB 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器

  31. 说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。如果积大于FFH,则溢出标志位(OV)被设定为1,而进位标志位为0说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。如果积大于FFH,则溢出标志位(OV)被设定为1,而进位标志位为0

  32. 23.DIV AB 将累加器的值除以B寄存器的值,结果的商存回累加器,余数存回B寄存器

  33. 说明:无符号的除法运算,将累加器A除以B寄存器的值,商存入A,余数存入B。执行本指令后,进位位(C)及溢出位(OV)被清除为0说明:无符号的除法运算,将累加器A除以B寄存器的值,商存入A,余数存入B。执行本指令后,进位位(C)及溢出位(OV)被清除为0

  34. 24.DA A 将累加器A作十进制调整, •   若(A) 3-0>9或(AC)=1,则(A) 3-0←(A)3-0+6 •   若(A) 7-4>9或(C)=1,则(A) 7-4←(A)7-4+6

  35. 逻辑运算指令 • 25.ANL A,Rn 将累加器的值与寄存器的值做AND的逻辑判断,结果存回累加器

  36. 26.ANL A,direct 将累加器的值与直接地址的内容做AND的逻辑判断,结果存回累加器

  37. 27.ANL A,@Ri 将累加器的值与间接地址的内容做AND的逻辑判断,结果存回累加器

  38. 28.ANL A,#data 将累加器的值与常数做AND的逻辑判断,结果存回累加器

  39. 29.ANL direct,A 将直接地址的内容与累加器的值做AND的逻辑判断,结果存回该直接地址

  40. 30.ANL direct,#data 将直接地址的内容与常数值做AND的逻辑判断,结果存回该直接地址

  41. 31.ORL A,Rn 将累加器的值与寄存器的值做OR的逻辑判断,结果存回累加器

  42. 32.ORL A,direct 将累加器的值与直接地址的内容做OR的逻辑判断,结果存回累加器

  43. 33.ORL A,@Ri 将累加器的值与间接地址的内容做OR的逻辑判断,结果存回累加器

  44. 34.ORL A,#data 将累加器的值与常数做OR的逻辑判断,结果存回累加器

  45. 35.ORL direct,A 将直接地址的内容与累加器的值做OR的逻辑判断,结果存回该直接地址

  46. 36.ORL direct,#data 将直接地址的内容与常数值做OR的逻辑判断,结果存回该直接地址

  47. 37.XRL A,Rn 将累加器的值与寄存器的值做XOR的逻辑判断,结果存回累加器

  48. 38.XRL A,direct 将累加器的值与直接地址的内容做XOR的逻辑判断,结果存回累加器

  49. 39.XRL A,@Ri 将累加器的值与间接地扯的内容做XOR的逻辑判断,结果存回累加器

  50. 40.XRL A,#data 将累加器的值与常数作XOR的逻辑判断,结果存回累加器

More Related