项目三 机械手程序设计

Post on 03-Jan-2016

116 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

项目三机械手程序设计

辽宁机电职业技术学院

制作人:王洪庆 白天明

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

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

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

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

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

课 题 3简单程序运行与调试

课题内容 1. 调试程序 1 2. 调试程序 2 3. 调试程序 3  4 .调试程序 4  

 

知识要点 掌握程序调试方法

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

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

(1)将下面程序输入至仿真器中源程序 计算值 实际值ORG   0100H (R0) (R0)MOV   00H,#01H   --       --MOV   08H,#02H   --    --MOV   10H,#03H -- --MOV   18H,#04H -- --SETB   RS0  -- --SETB   RS1  -- --CLR   RS0  -- --SJMP $   -- --END (2)单步运行(运行前先复位)上述程序,检查执行每条指令后 R0寄存器的内容,说明 SETB 和 CLR 等指令的功能及 R0寄存器内容变化的原因。

一、调试程序 1

MOV   00H,#01H   

01H

MOV   08H,#02H   

源程序

ORG   0100H   

MOV   10H,#03H   

02H

MOV   18H,#04H

03H

SETB   RS0  

04H

SETB   RS1  CLR   RS0  SJMP $  

END 下一页

二、调试程序 2

(1)将下面程序输入至仿真器中。 源程序ORG 0200HMOV SP, #5FHMOV A, #01HMOV DPTR, #0203HMOV R0, #04HPUSH ACCPUSH DPHPUSH DPLPUSH 00H

POP ACC POP DPHPOP DPL POP 00HHK : SJMP HKEND

(2)单步运行(运行前先复位)上述程序,检查执行每条指令后 SP寄存器的内容,说明 PUSH 和 POP 等指令的功能;

(3)程序执行结束后,回到监控状态,检查累加器 A、数据地址指针寄存器 DPTR 的内容。

  堆栈用了哪些单元,其内容是什么?  第一条指令 MOV SP , #5FH 起什么作用?如果去掉这条指令,上述结果有什么变化?

  根据上述结果总结一下堆栈有什么特点。

ORG 0200HMOV SP, #5FHMOV A, #01HMOV DPTR, #0203HMOV R0, #04H

PUSH ACCPUSH DPHPUSH DPLPUSH 00HPOP ACC POP DPHPOP DPL POP 00H

HK :  SJMP HK    END

5FH

地址 名称 内容E0H ACC

83H DPH

82H DPL

81H SP

63H

62H

61H

60H

5FH

00H R0

01H02H03H

04H

01H

02H03H

04H

04H03H02H01H

三、调试程 3( 1)多字节加法。 设有两个两字节二进制无符号数,分别存于内部 RAM 从 30H

和 40H 起始的内存单元是,试编写求和程序,将其和存放于 50H起始的内单元中(先存低位,后存高位)

( 2)根据上述要求编写源程序如下:ORG 0300HMOV A, 30HADD A, 40HDA AMOV 50H,AMOV A, 31HADDC A, 4 1H DA A MOV 51H,A

JC VERMOV 52H, #00HSJMP HK

VER : MOV 52H, #01HHK : SJMP HK END

( 3)将下面两数输入至 30H 和 40H 起始的地址单元中: 甲 =9A3DH 乙 =8CE1H( 4)运行上述程序,检查执行完加法指令后,有关寄

存 器状态添写下表。

指令 A PSW标示位

CY AC OV P

ADD A , 40H

计算实际

ADDC A , 41H

计算实际

( 5)程序运行结束后,检查 50H 、 51H 、

52H 单元内容。上述程序只需把 NOP 指令改成 DA A 指令,就可以进行十进制 BCD 数运算,设两十进制数分别为:

甲 = 4875 乙 = 7996( 6)按上述步骤运行程序,并分别检查执行完加法指令和十进制调整指令后,有关寄存器状态,添写下表。

指令 A SW标志位

CY AC OV P

( 1) ADD A , 40H

计算实际

( 2) DA A计算实际

( 3) ADD A , 40H

计算实际

( 4) ADD A , 41H

计算实际

( 7)根据上输实验结果,总结一下 ADD 、 ADDC 、 DA 等指令对 CY、AC、

OV 等标志位的影响情况。

四、调试程序 4( 1)数制转换程序。将片内 RAM 30H 单元中的 二进制数转换成压缩 BCD码十进制数的形 式存放于 32H 、 33H 单元中,先存低位后存高

位。( 2)根据上述原理编写源程序如下:

源程序 计算值 实测值 ORG 0400H ( A)( B) ( A)( B) MOV A , 30H -- -- MOV B , #64H -- -- DIV AB -- -- MOV 33H , A -- -- MOV A , #0AH -- -- XCH A , B -- -- DIV AB -- -- SWAP A -- -- ORL A , B -- -- MOV 32H , A -- --HK : SJMP HK -- -- END

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

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

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

THANK  YOU!

top related