1 / 22

项目三 机械手程序设计

辽宁机电职业技术学院. 项目三 机械手程序设计. 制作人:王洪庆 白天明. 项目内容: 1 .通过程序控制机械手动作从而完成伸长、旋转、抓件等动作 2 .了解 MCS - 51 单片机指令的基本格式和寻址方式、 MCS-51 单片 机的指令系统、汇编语言源程序的基本设计方法和调试方法 以及程序设计举例。介绍一些实用的小程序来培养学生的兴 趣并拓宽学生的知识面,结合程序设计强化学生对指令的解。. 能力目标: 课题 1 .单片机的寻址方式 课题 2 .单片机指令 课题 3 .简单程序运行与调试

tamar
Download Presentation

项目三 机械手程序设计

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. 辽宁机电职业技术学院 项目三 机械手程序设计 制作人:王洪庆 白天明

  2. 项目内容: 1.通过程序控制机械手动作从而完成伸长、旋转、抓件等动作 2.了解MCS-51单片机指令的基本格式和寻址方式、MCS-51单片 机的指令系统、汇编语言源程序的基本设计方法和调试方法 以及程序设计举例。介绍一些实用的小程序来培养学生的兴 趣并拓宽学生的知识面,结合程序设计强化学生对指令的解。

  3. 能力目标: 课题1.单片机的寻址方式 课题2.单片机指令 课题3.简单程序运行与调试 课题4.汇编语言程序设计 课题5.分支程序设计 课题6.循环程序设计 实战演练: 1.通过实践掌握单片机的寻址方式、指令系统。会使用汇编语言 进行顺序结构程序、分支结构程序、循环结构程序设计和调试。 2.通过该项目的训练,提高学生的实际动手操作能力,养成学 生的工程道德观念,建立工程敬业精神和团队合作精神。

  4. 课 题 2 单 片 机 指 令

  5. 课题内容 1. 数据传送类指令 2. 算术运算类指令 3.位操作类指令   4.逻辑操作类指令   5.控制转移类指令 知识要点 • 掌握MCS-51单片机的指令系统 能力训练: 1. 程序调试能力 2. 创新能力和合作能力 技能操作 上机操作掌握机械手控制程序操作和调试

  6. 一、数据传送类指令 • 1、向累加器A的传送 • MOV A,Rn ;(A)←(Rn) • MOV A,direct ;(A)← (direct) • MOV A,@Ri ; (A)←((Ri)) • MOV A,#data ; (A)←data • 2、向通用寄存器传送 • MOV Rn,A ;(Rn)←(A) • MOV Rn,direct ;(Rn)←(direct) • MOV Rn,#data ;(Rn)←data

  7. 3、向直接地址传送 • MOV direct,A ;(direct)←(A) • MOV direct,Rn ;(direct)←(Rn) • MOV direct,direct ;(direct)←(direct) • MOV direct,@Ri ;(direct)←((Ri)) • MOV direct,#data ;(direct)←data • 4、间址传送 • MOV @Ri,A ;((Ri))←(A) • MOV @Ri,direct ;((Ri))←(direct) • MOV @Ri,#data ;((Ri))←data • 5.十六位数的传递指令 • MOV DPTR,#data16 ;(DPTR)data16

  8. 6、累加器A与片外RAM之间的数据传递类指令 • MOVX A,@Ri ;(A)((Ri)) • MOVX A,@DPTR ;(A)((DPTR)) • MOVX @Ri,A ;((Ri))(A) • MOVX @DPTR,A ;((DPTR))(A) • 7、程序存储器向累加器A传送指令 • MOVC A,@A+DPTR ;(A)((A)+(DPTR)) • MOVC A,@A+PC ;(A)((A)+(PC)) • 8、堆栈操作 • PUSH direct ;(sp)←(sp)+1,((sp))←(direct) • POP direct ;(direct)←((sp)),(sp)←(sp)-1

  9. 9、字节交换指令 • XCH A,Rn ;(A) (Rn) • XCH A,direct ;(A) (direct) • XCH A,@Ri ;(A) ((Ri)) • 10、半字节交换指令 • XCHD A,@Ri

  10. 二、算术运算类指令 • 1、不带进位位的加法指令 • ADD A,Rn ;(A)(A)+(Rn) • ADD A,direct ;(A)(A)+(direct) • ADD A,@Ri ;(A)(A)+((Ri)) • ADD A,#data ;(A)(A)+data • 注:加法减法指令影响Ac,Cy,OV • 2、带进位加法 • ADDC A,Rn ;(A)(A)+(Rn)+(C) • ADDC A,direct ;(A)(A)+(direct)+(C) • ADDC A,@Ri ;(A)(A)+((Ri))+(C) • ADDC A,#data ; (A)(A)+data +(C)

  11. 3、带借位的减法指令 • SUBB A,Rn ;(A)(A)-(Rn)-(C) • SUBB A,direct ;(A)(A)-(direct)-(C) • SUBB A,@Ri ;(A)(A)-((Ri)) -(C) • SUBB A,#data ;(A)(A)-data-(C) • 4、乘法指令 • MUL AB ;(BA)(A)*(B) • 5、除法指令 • DIV AB ;(A)(A)/(B) ,(B)(A)%(B)

  12. 6、加1指令 • INC A ;(A)(A)+1 • INC Rn ;(Rn)(Rn)+1 • INC direct ;(direct)(direct)+1 • INC @Ri ;((Ri))((Ri))+1 • INC DPTR ;(DPTR)(DPTR)+1 • 注:加1减1指令不影响标志位 • 7、减1指令 • DEC A ;(A)(A)-1 • DEC Rn ;(Rn)(Rn)-1 • DEC direct ;(direct)(direct)-1 • DEC @Ri ;((Ri))((Ri))-1 • 8、十进制调整指令 • DA A

  13. 三、位操作指令 • 1.位传送指令 • MOV C,bit ;(C)(bit) • MOV bit,C ;(bit)(C) • 2、位状态控制指令 • (1)清零指令 • CLR C ;(C)0 • CLR bit ;(bit)0 • (2)取反指令 • CPL C ;(C) (C) • CPL bit ;(bit) (bit) • (3)置1指令 • SETB C ;(C)1 • SETB bit ;(bit)1

  14. 3、位逻辑运算指令 • (1)位与指令 • ANL C,bit ;(C) (C)∧(bit) • ANL C,/bit ;(C) (C)∧(bit) • (2)位或指令 • ORL C,bit ;(C) (C)∨(bit) • ORL C,/bit ;(C) (C)∨(bit) • 4、位条件转移指令 • JC rel ;当(C)为1,则转移;否则,顺序执行。 • JNC rel ;当(C)为0,则转移;否则,顺序执行。 • JB bit,rel;当(bit)为1,则转移;否则,顺序执行。 • JNB bit,rel;当(bit)为0,则转移;否则,顺序执行。 • JBC bit,rel;当(bit)为1,则(bit)0,转移;否则, • 顺序执行。

  15. 四、逻辑操作指令 1.循环移位指令 RL A ; RR A  ; RLC A   ; RRC A ; 2.累加器半字节交换指令 SWAP A ;(A0-3) (A4-7) 3.求反指令 CPL A ;(A)(A) 4.清零指令 CLR A ;(A)0

  16. 5、逻辑与指令 • ANL A,Rn ;(A)(A)∧(Rn) • ANL A,direct ;(A)(A)∧(direct) • ANL A,@Ri ;(A)(A)∧((Ri)) • ANL A,#data ;(A)(A)∧data • ANL direct,A ;(direct)(direct)∧(A) • ANL direct,#data ;(direct)(direct)∧data • 6、逻辑“或”指令 • ORL A,Rn ;(A)(A)∨(Rn) • ORL A,direct ;(A)(A)∨(direct) • ORL A,@Ri ;(A)(A)∨((Ri)) • ORL A,#data ;(A)(A)∨data • ORL direct,A ;(direct)(direct)∨(A) • ORL direct,#data ;(direct)(direct)∨data

  17. 7、逻辑异或指令 • XRL A,Rn ;(A)(A)⊕(Rn) • XRL A,direct ;(A)(A)⊕(direct) • XRL A,@Ri ;(A)(A)⊕((Ri)) • XRL A,#data ;(A)(A)⊕data • XRL direct,A ;(direct)(direct)⊕(A) • XRL direct,#data ;(direct)(direct)⊕data

  18. 五、控制转移类指令 • 1、无条件转移类指令 • (1)绝对转移 • AJMP addr11 ;跳转范围2KB • (2)长转移 • LJMP addr16 ;跳转范围64KB • (3)相对转移 • SJMP rel ;跳转范围256B • (4)间接转移指令 • JMP @A+DPTR ;(pc)(A)+(DPTR)

  19. 2、条件转移指令 • (1)判断A内容是否为0转移指令 • JZ rel ;当(A)为0,则转移。否则,顺序执行 • JNZ rel ; 当(A)非0,则转移。否则,顺序执行 • (2)比较转移指令 • CJNE A,direct,rel • CJNE A,#data,rel • CJNE Rn,#data,rel • CJNE @Rn,#data,rel • ;若不相等,(pc)(pc)+rel。否则,顺序执行。

  20. (3)减1不为零转移指令 • DJNZ Rn,rel • DJNZ direct,rel • ;若减一非0,则(pc)(pc)+rel否则,顺序执行 • 3、调用与返回指令 • (1)调用指令 • LCALL addr16 ;调用范围64KB • ACALL addr11 ;调用范围2KB • (2)返回指令 • RET ;子程序返回 • RETI ;中断程序返回 • 4、空操作指令 • NOP ;不进行任何操作

  21. 谢谢!

More Related