220 likes | 380 Views
辽宁机电职业技术学院. 项目三 机械手程序设计. 制作人:王洪庆 白天明. 项目内容: 1 .通过程序控制机械手动作从而完成伸长、旋转、抓件等动作 2 .了解 MCS - 51 单片机指令的基本格式和寻址方式、 MCS-51 单片 机的指令系统、汇编语言源程序的基本设计方法和调试方法 以及程序设计举例。介绍一些实用的小程序来培养学生的兴 趣并拓宽学生的知识面,结合程序设计强化学生对指令的解。. 能力目标: 课题 1 .单片机的寻址方式 课题 2 .单片机指令 课题 3 .简单程序运行与调试
E N D
辽宁机电职业技术学院 项目三 机械手程序设计 制作人:王洪庆 白天明
项目内容: 1.通过程序控制机械手动作从而完成伸长、旋转、抓件等动作 2.了解MCS-51单片机指令的基本格式和寻址方式、MCS-51单片 机的指令系统、汇编语言源程序的基本设计方法和调试方法 以及程序设计举例。介绍一些实用的小程序来培养学生的兴 趣并拓宽学生的知识面,结合程序设计强化学生对指令的解。
能力目标: 课题1.单片机的寻址方式 课题2.单片机指令 课题3.简单程序运行与调试 课题4.汇编语言程序设计 课题5.分支程序设计 课题6.循环程序设计 实战演练: 1.通过实践掌握单片机的寻址方式、指令系统。会使用汇编语言 进行顺序结构程序、分支结构程序、循环结构程序设计和调试。 2.通过该项目的训练,提高学生的实际动手操作能力,养成学 生的工程道德观念,建立工程敬业精神和团队合作精神。
课 题 2 单 片 机 指 令
课题内容 1. 数据传送类指令 2. 算术运算类指令 3.位操作类指令 4.逻辑操作类指令 5.控制转移类指令 知识要点 • 掌握MCS-51单片机的指令系统 能力训练: 1. 程序调试能力 2. 创新能力和合作能力 技能操作 上机操作掌握机械手控制程序操作和调试
一、数据传送类指令 • 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
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
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、字节交换指令 • XCH A,Rn ;(A) (Rn) • XCH A,direct ;(A) (direct) • XCH A,@Ri ;(A) ((Ri)) • 10、半字节交换指令 • XCHD A,@Ri
二、算术运算类指令 • 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)
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)
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
三、位操作指令 • 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
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,转移;否则, • 顺序执行。
四、逻辑操作指令 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
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
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
五、控制转移类指令 • 1、无条件转移类指令 • (1)绝对转移 • AJMP addr11 ;跳转范围2KB • (2)长转移 • LJMP addr16 ;跳转范围64KB • (3)相对转移 • SJMP rel ;跳转范围256B • (4)间接转移指令 • JMP @A+DPTR ;(pc)(A)+(DPTR)
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。否则,顺序执行。
(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 ;不进行任何操作