好文档 - 专业文书写作范文服务资料分享网站

项目三、机械手程序设计-课题4

天下 分享 时间: 加入收藏 我要投稿 点赞

项目三 机械手程序设计

项目内容:

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

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

微信扫码领取福利

微信扫码分享