项目三 机械手程序设计
项目内容:
1.通过程序控制机械手动作。从而完成伸长、旋转、抓件等动作。 2.了解MCS-51单片机指令的基本格式和寻址方式、MCS-51单片机的指令系统、汇编语言源程序的基本设计方法和调试方法以及程序设计举例。介绍一些实用的小程序来培养学生的兴趣并拓宽学生的知识面,结合程序设计强化学生对指令的理解。
能力目标:
课题1 单片机的寻址方式 课题2 单片机指令
课题3 简单程序运行与调试 课题4 汇编语言程序设计 课题5 分支程序设计 课题6 循环程序设计
实践演练:
1.通过实践了解单片机的寻址方式、指令系统。会使用汇编语言进行顺序结构程序、分支结构程序、循环结构程序设计和调试。
2.通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。
项目三 课题4汇编语言程序设计
一、 知识要点:
掌握MCS-51单片机的指令系统、汇编语言源程序的基本设计方法。
二、 能力训练:
通过实践掌握用编语言进行简单的顺序结构程序、分支结构程序、循环结构程序设计。
三、 课题内容
1、程序设计基本方法
编写一个程序大致分为: 1)、确定计算方法,定出运算步骤和顺序,把运算过程画成框图。 2)、确定数据:包括工作单元的数量,分配存放单元 3)、按所使用计算机的指令系统,把确定顺序(框图)写成程序
2、应用实例
1)、多字节无符号数加法
编程说明:多字节运算一般是按从低字节到高字节的顺序依次进行。
入口:(R0)=被加数低位地址指针;
(R0)=加数低位地址指针; (R2)=字节数 出口:(R0)=和数高位地址指针 程序清单如下: ADDBIN:CLR C
LOOP1:MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1
DJNZ R2,LOOP1 JNC LOOP2 MOV @R0,#01H RET
LOOP2:DEC R0
RET
2)、多字节无符号减法
入口: (R0)=被减数低位字节地址指针
(R1)=减数低位字节地址指针 (R2)=字节数。
出口: (R0)=差的低字节
(R3)=差值字节数
07H单元为符号位
程序清单如下:SUBBIN:PUSH PSW
CLR C CLR 07H
MOV R3,#00H
LOOP3:MOV A,@R0
SUBB A,@R1 MOV @R0,A INC R0 INC R1 INC R3
DJNZ R2,LOOP3 JNC LOOP
LOOP4:POP PSW
3、程序结构 1)、顺序程序结构
顺序结构是一种最简单.最基本的程序,按照程序编写的顺序依次执行,编写时应注意正确的使用指令,提高效益。 程序清单如下: MOV A, R2 CLP A
ADD A, #01H MOV R2, A MOV A,R3 CPL A
ADDC A, #00H MOV R3, A RET 2)、分支程序结构
分支程序可根据要求无条件的改变程序的执行顺序,选择程序流向。编写这类程序主要是为了正确使用转换指令 。
例:设变量x 存放在VAR单元中 ,函数值Y存放在FUNC 中,按下式给Y赋值:
1 X > 0
Y= 0 X = 0
-1 X < 0
程序清单:
VAR EQU 30H X FUNC EQU 31H
START:MOV A,VAR
JZ COMP
JNB ACC.7 ,POSI MOV A, #0FFH SJMP COMP POSI: MOV A, #01H COMP:MOV FUNC , A
例:128种分支转移程序。本程序根据入口条件转移到128个目的的地址。 入口:(R3 )转移相应的子程入口。 程序清单:
MOV A ,R3 RL A
MOV DPTR ,#JMPTAB JMP @A+DPTR JMPTAB :AJ MP ROUT00 . . . . . .
AJMP ROUT7F 3)、循环程序结构
在程序设计中,常遇到反复执行某一或某一段指令,此时可利用循环程序结构,这有助于缩短程序 ,提高程序质量。
循环结构的程序一般包括:置循环初值.循环体.循环修改.循环控制等四个部分。在单片机中,一般用一个工作寄存器Rn 作为计数器,Rn中的初值即为循环次数,每循环一次 ,Rn 的值减1,直到为0 循环终止。
例:若XI均为单字节数,并按I(I=1~N)顺序存放在MCS-51 的内部RAM从50H开始的单元中,N放在R2中,现要求他们的和放在R3R4中 程序清单:
ADD1: MOV R3, #00H
MOV R4, #00H
MOV R2, #N
MOV R0 , #50H LOOP: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A
ADDC A, R3 MOV R3,A
DJNZ R2, LOOP
例:已知8051 单片机使用的晶振为6MHZ 要求设计一个软件延时程序,延时时间为10 MS 。 入口:(R0)=毫秒数
(R1)=1MS延时预定值
出口:定时到,退出程序。 程序框图
源程序清单如下:
MOV R0, #0AH DL2: MOV R1, #MT DL1: NOP NOP
DJNZ R1,DL1 DJNZ R0,DL2
说明: 延时程序的延时时间主要与所用晶振和 延时程序 循环次数有关。已知晶振为6MHZ,可知一个机器周期为2μS。 该延时程序实际上是一个双重循环程序。内循环的预定值MT 沿需计算,因为各条指令的执行时间是确定的,需延时的总时间也已确定,故而MT可按如下计算: (1+1+2)×2×MT=1000(μS)
MT=125=7DH
四、 技能操作
1.上机实践掌握用编语言进行简单的顺序结构程序、分支结构程序、循环结构程序设计。
2.能够进行机械手控制程序的调试运行。
项目三、机械手程序设计-课题4
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)