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