14
项项项 项项项项项项项 辽辽辽辽辽辽辽辽辽辽 项项项 项项项 项项项

项目三 机械手程序设计

  • Upload
    nay

  • View
    69

  • Download
    4

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 项目三 机械手程序设计

项目三机械手程序设计

辽宁机电职业技术学院

制作人:王洪庆 白天明

Page 2: 项目三 机械手程序设计

项目内容: 1 .通过程序控制机械手动作从而完成伸长、旋转、抓件等动作 2 .了解 MCS - 51 单片机指令的基本格式和寻址方式、 MCS-51 单

片 机的指令系统、汇编语言源程序的基本设计方法和调试方法 以及程序设计举例。介绍一些实用的小程序来培养学生的兴

趣并拓宽学生的知识面,结合程序设计强化学生对指令的解。

Page 3: 项目三 机械手程序设计

能力目标:课题 1.单片机的寻址方式课题 2.单片机指令课题 3.简单程序运行与调试课题 4.汇编语言程序设计课题 5.分支程序设计课题 6.循环程序设计

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

Page 4: 项目三 机械手程序设计

课 题 6循环程序设计

Page 5: 项目三 机械手程序设计

课题内容 1. 循环程序例 1 2. 循环程序例 2 . 

 

知识要点 掌握循环程序设计方法

能力训练: 1. 程序设计、调试能力 2. 创新能力和合作能力

技能操作  上机操作掌握机械手控制程序操作和调试

Page 6: 项目三 机械手程序设计

( 1 )、要求:  从片内 RAM DATA 单元开始连续存放一组无符号二进

制数,其个数存于 SHU 单元中,编一个程序,找出最大数,存放于内部 RAM MAX 单元中。

( 2)、根据上述要求编写程序入下:源程序

SHU EQU 30H MAX EQU 31H CD DQU 40H ORG 0100HMOV MAX , #00HMOV R0 , #CDMOV R2 , SHU

一、循环程序 1

Page 7: 项目三 机械手程序设计

LP : MOV A , @R0CJNE A , MAX , EP1SJMP EP2

EP1 : JC EP2MOV MAX , A

EP2 : INC R0DJNZ R2 , LP

HK : SJMP HKEND

( 3 )、将上述程序输入至仿真器中(相对转移指令的地址偏移量要事先算好)。

Page 8: 项目三 机械手程序设计

( 4 )、将下面一组五个数据送入指定内存单元中:5AH 、 3BH 、 8CH 、 9EH 、 6FH

( 5 )、在 INC R0 指令处设一个断点。为了调试程序,往往需要检查程序运行到某处的有关寄存器的状态,这时可采用断点运行程序和方法。所谓断点,就是程序运行到断点处指令地址。这时使用者可检查有关寄存器的状态。

( 6 )、用连续执行键 EXEC 执行程序,观察每次运行到断点时 R0 、 R2 累加器 A 及 MAX 单元的内容,填写下表:

Page 9: 项目三 机械手程序设计

1 2 3 4 5

( R0 )

计算值实际值

( R2 )

计算值实际值

( A )计算值实际值

MAX 单元

计算值实际值

Page 10: 项目三 机械手程序设计

二、循环程序 2

1 、要求:  将存储于内部 RAM 的多字节二进制无符号数(其首

地址存于 BADR 单元,字节数存放于 BYTE 单元)转换成紧凑格式 BCD 十进制数存储于内部 RAM 中(其首地址存于 DADR 单元),数据存放格式是先低位后高位。

2 、根据上述要求编写程序如下: BADR EQU 20H ;存储二进制首址 BYTE EQU 21H ;存储二进制字节数 DADR EQU 22H ;存储十进制首址 ORG 0300H MOV   SP , #5FH ;设堆栈初值

Page 11: 项目三 机械手程序设计

MOV R1 , DADRMOV R2 , BYTEINC R2CLR A

BBO : MOV @R1 , A ; BCD 十进制结果INC R1 ;单元清零DJNZ R2 , BBOMOV A , BYTEMOV B , #08HMUL AB ;二进制位数送入MOV R3 , A ; R3 寄存器

BB3 : MOV R0 , BADR ;循环入口处MOV R2 , BYTE ;将二进制数循环

Page 12: 项目三 机械手程序设计

BB1 : MOV A , @R0 ;左移一次,使最RLC A ;高位送入( Cy)中MOV @R0 , AINC R0DJNZ R2 , BB1MOV R1 , DADR ; BCD 十进制结果MOV R2 , BYTE ;单元乘 2并加上INC R2 ;进位( Cy)LCALL BCDC2DJNZ R3 , BB3 ;循环判断

HK: SJMP HK BCDC2 : MOV A , @R1

ADDC A , @R1 DA A MOV @R1 , A INC R1 DJNZ R2 , BCDC2 RET

Page 13: 项目三 机械手程序设计

(3)输入至仿真器中 设要转换的一个字节二进制数为 0EAH ,在运行程序之前先根据程序分析运行结果,指出执行每条指令后累加器 A与寄存器 B的值是多少。

(4)将 0EAH 数据输入至仿真器的 30H 单元中,然后单步运行程序,检查并记录执行每条指令后累加器 A与寄存器 B的值是多少。

(5)程序执行结束后,检查结果单元 32H 、 33H 的值。比较上述结果是否正确,如不正确,请查明原因,重复上述操作。

Page 14: 项目三 机械手程序设计

谢谢!