机械手实验报告#仅供借鉴_第1页
机械手实验报告#仅供借鉴_第2页
免费预览已结束,剩余29页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息系统工程硬件基础综合实验报告机械手群控系统设计2010年8月1日第一章 信息系统工程硬件基础综合实验的目的意义41.1 实验目的41.2 课程在教学计划中的地位和作用4第二章 机械手群控系统软硬件设计任务52.1 设计内容及要求52.2 课程设计的要求5第三章 总体设计方案63.1 设计思想63.1.1 机械手群控系统设计的需求分析63.1.2 实验设备73.1.3 方案设计73.2 总体设计83.2.1 总体硬件结构设计83.2.2 总体软件流程设计8第四章 硬件设计104.1 硬件设计概要104.3 硬件电路设计系统原理图及其说明13第五章 软件设计145.1 流程图及其说明145.2

2、 软件系统的使用说明19第六章 系统调试与使用226.1 系统调试226.2 使用说明23第七章 综合实验讨论24参考文献(补充)24附录25第一章 信息系统工程硬件基础综合实验的目的意义1.1 实验目的实验教学时课堂教学的补充、延伸和深化,是课程教学的重要组成部分。实验教学的总目的是,通过与课堂教学的密切配合,巩固和扩充课堂讲授的理论知识,加深对课堂教学内容的理解;训练科学实验的基本技能和工程实践的基本方法,养成严谨的科学态度和工作作风,培养应用所学理论知识独立分析、解决实际问题的能力和实际动手能力。1.2 课程在教学计划中的地位和作用微机应用系统设计与综合实验课程是自动化专业本科生必修的一

3、门技术基础课程。通过该课程的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。为了使我们微机应用课程设计目标更明确,要求更具体,学生收获更大,我们特编写课程设计任务书,学生可根据本人的爱好任选其中一个课题,要求独立完成课题,写出课程设计说明书,设计出电路原理图,说明工作原理,画出电路板图,编写程序及程序流程图。希望同学认真阅读本任务书,认真查阅资料与上机调试,圆满完成课程设计。通过课程设计进一步锻炼同学们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实

4、际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。第二章 机械手群控系统软硬件设计任务2.1 设计内容及要求在工业控制系统中,利用一台计算机对多台机械设备进行控制的应用越来越广泛,本实验旨在通过机械手群控系统的设计,使学生能够:1. 了解微机在群控系统中的应用。2. 熟悉计算机分时操作的原理和方法。3. 掌握机械手群控系统的设计方法和一般结构。2.2 课程设计的要求设计一个由微机控制两台机械手完成指定操作序列的控制系统,要求被控制的机械手的动作顺序按照事先

5、设定的操作顺序进行。具体要求如下:1. 对两台机械手进行群控操作,使它们能够完成:平伸、平缩、上升、下降、左旋、右旋、握紧和松开等8种基本操作。2. 两台机械手的基本操作顺序可以不同,可有由用户自行设定。3. 在实验中,可以用继电器和LED显示灯来模拟机械手的各个基本操作的状态;而用钮子开关来模拟机械手的各个动作是否完成的状态信号。第三章 总体设计方案3.1 设计思想利用一台微机同时控制几台甚至几十台机械设备工作的系统被称为“微机群控”系统,实际上该群控系统是利用微机时分操作的原理来实现的。也就是说,微机将一直处于一种繁忙的中断方式之中,在微机对每一次中断响应的过程中,微机将控制完成某一台设备

6、的一个动作。因此,实现微机群控的基本条件是所有被控设备的工作均为单一动作的组合,并且每一个单一动作都能够由开关量来控制。机械手的操作过程就恰好可以满足这一条件。实验要求用C程序进行编写,进一步锻炼同学们用C语言设计微机实验的能力,因此,应该在进行需求分析的基础上,先进行总体功能设计和设计方案设计,主要对各个功能模块接口和功能进行分析和设计,这样程序的可阅读性和可调试就比较好,易于程序功能扩展和调试。设计中,将功能写成过程函数的形式,便于调用和调试;对于各个端口的使用,通过符号进行定义,这样程序的通用性和移植性也比较好。3.1.1 机械手群控系统设计的需求分析结合本实验的基本要求,考虑到实验平台

7、的限制,通过分析和设计,本实验要实现如下功能:1) 两台机械手的基本操作顺序可以不同,可有由用户自行设定。2) 在实验中,可以用继电器和LED显示灯来模拟机械手的各个基本操作的状态;而用钮子开关来模拟机械手的各个动作是否完成的状态信号。3) 对两台机械手进行群控操作,使它们能够完成:平伸、平缩、上升、下降、左旋、右旋、握紧和松开等8种基本操作。3.1.2 实验设备1. 80X86系列微机一台。2. DVCC型微机硬件实验平台。3. 定时/计数器(8254)、并行接口(8255)芯片。4. 继电器、驱动器、数码管(LED)、钮子开关。5. 74LS138译码器等,以及基本TTL集成电路芯片。3.

8、1.3 方案设计1 定时中断设计由于要求设计一个分时操作的机械手群控系统,因此首先要求设计一个定时中断电路要求它每隔一段时间向微机发出一此中断请求,微机仅处理一台机械手的一个基本操作。定时电路不断向微机发出中断时,微机便轮流处理不同的机械手的一个动作。这样便实现了多机械手的分时操作。定时中断的周期应有群控系统中完成一个基本操作所需的时间来决定,在本实验中不妨假定该周期为20ms。2并行I/O接口电路当微机接收到中断请求信号后,中断服务程序将根据设定好的动作顺序、动作要求和中断标志寄存器值,将某一机械手下一个动作对应的控制字写入并行输出接口,再经继电器控制电路,使机械手完成指定动作。另外,对于机

9、械手的各个动作是否完成的状态信号,也可以通过并行输入接口反馈到微机中供查询和判断。3继电器控制电路当并行输出接口将动作控制字送入继电器控制电路以后,各继电器将驱动机械手完成相应的动作。3.2 总体设计3.2.1 总体硬件结构设计通过分析,本系统的总体硬件结构设计示意如图3.1所示。定时器电路 总 线 扩 展 插 孔D0D7时钟电路译码电路AB驱动电路并行口电路机械手继电器电路1 驱动电路机械手继电器电路2图3.1 机械手群控系统的总体设计硬件结构图3.2.2 总体软件流程设计根据以上说明,不难设计出本实验系统的软件。整个系统软件可分为三部分:主程序,定时中断程序和机械手操作子程序。主程序中,应

10、完成可编程接口芯片的初始化、中断向量设置等常规操作,以及按上述说明,设置两机械手动作控制信息表及表指针,并将表指针指向表首址。此外,还要设置一个中断标志寄存器,用来管理中断服务程序应该对一台机械手进行操作。在主程序中可以先将它赋值为0,表示下一次中断是对1号机械手进行操作。在定时中断服务程序中,首先需要判断中断标志寄存器中的内容,如果为0,则调第一台机械手的操作子程序;如果为1,则调第二台机械手的操作子程序。在机械手的操作子程序中,需要检测机械手的动作完成状态信号,如果动作未完成,则直接将中断标志寄存器中的内容改为另一台机械手的标志,表示在下一次中断时,对另一台机械手进行操作,而当以后再回到该

11、机械手操作时,将重新完成本次未完成的动作;若检测到机械手动作已结束,则使该机械手的动作控制信息表指针加1,并将中断标志寄存器中的内容改为另一台机械手的标志。第四章 硬件设计4.1 硬件设计概要硬件连接原理图:4.2.1芯片列表(1)8255A(2)82534.2.2 8255A功能简介8255A是目前应用最广泛的可编程并行接口芯片之一。8255是一种使用单一的+5V电源、40引脚双列直插式的大规模集成电路芯片.8255A的内部结构,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。 D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来

12、传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。 4.2.3 8253芯片功能简介8253可编程计数器/定时

13、器的工作频率为02MHz,它有3个独立编程的计数器,每个计数器有三个引脚,分别为时钟CLK、门控GATE、计数器和计时结束输出OUT;每个计数器分别有6种工作方式。8253的内部结构框图如图:4.3 硬件电路设计系统原理图及其说明8253采用通道0,方式2,一秒钟中断一次,即机械手的一个动作会持续一秒钟,然后切换到另一个机械手做动作。控制台会显示当前做动作的是哪个机械手,做的是哪个动作;8255采用方式0,即A口输出,B口输入,纽子开关信号输入PB7,按下开关则可以执行下一个操作,否则下次仍执行当前的操作;A口输出直接接到发光二极管,用来显示控制字。所以能够观察到发光二极管每一秒闪烁一次,显示

14、当前正在进行的动作对应的控制字。第五章 软件设计5.1 流程图及其说明根据以上说明,不难设计出本实验系统的软件。整个系统软件可分为三部分:主程序,定时中断程序和机械手操作子程序。图5.1是软件的主程序部分,图5.2和5.3共同描述了软件的中断处理程序部分,其中图5.2是判断分支,图5.3是一台机械手操作控制子程序流程图。1.主程序主程序中,应完成可编程接口芯片的初始化、中断向量设置等常规操作,以及按上述说明,设置两机械手动作控制信息表及表指针,并将表指针指向表首址。此外,还要设置一个中断标志寄存器,用来管理中断服务程序应该对哪一台机械手进行操作。在主程序中可以先将它赋值为0,表示下一次中断是对

15、1号机械手进行操作。 图5.1 机械手群控实验的主程序流程图主程序主要分为以下几个步骤:1.对定时器和并行口进行初始化,对于定时器8253是写控制字和向所选通道中写计数初值;对于并行口8255是写控制字。2.设置中断向量,包括保存旧的中断向量,设置新的中断向量;3.设置中断标志寄存器为0,设置两机械手动作控制信息表及表指针,并设置总动作次数。4.将表指针指向表首址5.开中断,循环等待,如果有键按下则主程序结束,否则继续等待。2.定时中断服务程序在定时中断服务程序中,首先需要判断中断标志寄存器中的内容,如果为0,则调第一台机械手的操作子程序;如果为1,则调第二台机械手的操作子程序。图5.2 机械

16、手群控实验的中断服务程序流程图 图5.3 一台机械手的操作控制子程序流程图中断处理程序的执行过程是:1.保护现场2.读中断标志寄存器,判断当前要执行哪个机械手的操作开始执行相应机械手的操作子程序。首先将控制字表中指针所指的控制字送到并行口,然后采样判断该操作是否完成,如果已经完成,则将指针加1,剩余动作次数减1,如果当前剩余动作次数不为0,则继续输出下一个动作的控制信号,然后修改中断标志寄存器中的内容,子程序返回;如果动作尚未完成,则直接跳到修改中断标志寄存器,然后子程序返回。3.恢复现场4.中断返回3.机械手操作子程序在机械手的操作子程序中,需要检测机械手的动作完成状态信号,如果动作未完成,

17、则直接将中断标志寄存器中的内容改为另一台机械手的标志,表示在下一次中断时,对另一台机械手进行操作,而当以后再回到该机械手操作时,将重新完成本次未完成的动作;若检测到机械手动作已结束,则使该机械手的动作控制信息表指针加1,并将中断标志寄存器中的内容改为另一台机械手的标志。5.2 软件系统的使用说明1.中断服务程序是本系统程序的核心部分。它主要用于判断当前要执行哪个机械手的操作,并执行相应机械手的操作子程序。下面是其具体分析和详细说明:void interrupt handler(_CPPARGS)/中断处理程序disable();/关中断int b;/cout0)/未结束 outportb(0x

18、250,Table1temp1);/向A口输出下一个控制字 cout机械手1做动作:hexTable1temp1 0)/动作未结束 outportb(0x250,Table2temp2);/控制字送至A口 cout机械手2做动作:hexTable2temp2endl; temp2+;/指针移动至下一个控制字 if(temp2=8) temp2=0;/返回起始点 num_action2-;/动作次数减1 label=(label+1)%2;/交替 enable();/开中断 outportb(0x20,0x20); /*结束中断服务*/2.初始化部分是各芯片正常运行的前提条件。下面是其具体实现代

19、码: outportb(0x253,0x8a); /8255初始化:方式0,A口输出,B口输入,C口高4位入,低4为出 outportb(0x213,0x14);/8253:定时器初始化,通道0,方式2 outportb(0x210,0x64);/计数次数100,以100HZ输入,每1s中断一次 disable();/关中断 oldhandler = getvect(INTR); /保存旧的的中断向量 setvect(INTR, handler); /设置新的中断向量 old_8259_1=inportb(0x21);/保存旧的8259 1口控制字 outportb(0x21,inportb(

20、0x21)&0x7f); /IRQ7,写中断屏蔽字 enable();/开中断 以上是软件设计的主要部分,我们在后面的报告附录中给出了本实验的完整代码。第六章 系统调试与使用6.1 系统调试在本实验的调试中,我才感觉到做好一个完整的哦微机实验是需要很细心和很好的掌握所学的知识,并灵活运用。在微机实验室,由于微机比较陈旧,操作系统还停留在Windows 98时代,加上DVCC型微机硬件实验平台已经使用很长时间,有不少实验仪器已经损坏,所以我们首先面对的就是要检查出实验平台的错误。呵呵,就如徐老师开玩笑说的,“在一个运行状态良好的实验平台上完成实验,那不就太简单了吗?而今考察的就是你们真正的能力,

21、发现问题的能力以及解决问题的能力。”我和我的同学尹晓晴、李佳云在做实验时,首先遇到的问题就是微机的陈旧,估计那电脑至少“服役”十多年了,“落后就意味着挨打”,对我们而言,碰到这样的机器,也意味着我们要“挨打”了。我们本来学的是VC6+编程,在微机上无法运行,于是换成从来没学过的Turbo C+,这也就算了,关键是电脑总是死机,每次死机后重启后又需要重新安装Turbo C,在整个实验中,我们组有80%的时间是在死机重启安装Turbo C的循环中度过的。以至于最后我们看见黑屏就感觉有点崩溃了。首先是电脑总是出现死机和黑屏的现象,然后就要重启,重装,非常耗费时间,记得第二天上午我们组没有任何进展,就

22、连最简单的中断也进不去,编译一切正常,就是一运行就死机,一上午大概重启了不下60次,没有任何进展。至于原因,我们组当时没想到是实验平台的问题,而最终的问题就是ISA总线的中断请求输入信号线IRQ4的问题。中午吃完饭后就回来实验室继续奋战,有些怀疑是电脑的问题,就接连换了5台电脑,全部是同样的症状:死机重启安装Turbo C,让人难以接受。呵呵,每次点运行的时候,我们组都害怕了,绝大多数的反应时蓝屏,然后报错“超出频率范围”。呵呵,那时候觉得真难啊,让人有些崩溃。但我们不可以放弃,绝不可以放弃,我的字典里从来就没有放弃这个词!中午没有午休,我的好朋友尹晓晴继续奋战,完全不休息,真让我敬佩!下午也

23、是一样的无奈,继续死机重启安装Turbo C,让我们都没了信心,闭上眼睛都可以装机了。但下午四点多的时候,尹晓晴尝试着把IRQ4换成IRQ7,在忐忑不安中点了运行,哈哈哈,居然可以了。当时的心情无法表达,终于知道了原来都是IRQ4得问题,根本没有把中断输送到系统中去,让我们费了那么久的原因!找到这个问题后,我们非常兴奋,在接下来的实验中,还是被那破电脑困扰着。呵呵,那台电脑运行的好坏就是一个概率事件,正常的概率小于40%,每次都是重启两三次才可以运行一次,又再次为我们设置了障碍。在我们组的共同努力之下,在尹晓晴的顽强奋战之下,我们的程序终于可以运行了,也实现了实验的基本要求。呵呵,但运行的问题

24、还是要看电脑的状况,基本上等三次可以运行一次,我们甚至发现了它死机开机的最佳时间。在徐老师来检查的时候,又崩掉了,呵呵,没办法,再次重启。最后又重启了多少次,已经记不清了,反正太多了。最户一次,徐老师来的时候,居然可以正常运行了,运气不错呵。6.2 使用说明首先要做好实验准备工作,实验箱加电,程序编译、连接,开始运行。8253采用通道0,方式2,一秒钟中断一次,即机械手的一个动作会持续一秒钟,然后切换到另一个机械手做动作。控制台会显示当前做动作的是哪个机械手,做的是哪个动作。8255采用方式0,即A口输出,B口输入,纽子开关信号输入PB7,按下开关则可以执行下一个操作,否则下次仍执行当前的操作

25、;A口输出直接接到发光二极管,用来显示控制字。所以能够观察到发光二极管每一秒闪烁一次,显示当前正在进行的动作对应的控制字。总动作次数设为30次,当剩余动作次数为0时不再输出下一个动作的控制信号。第七章 综合实验讨论由于基础不扎实的缘故,实验准备了很长时间,并且有些地方反复请教老师同学才完全弄懂。这次实验给我们的启迪是:不管什么课程都一定要踏踏实实地学,至少将书上的基础内容掌握,还要善于用实验验证和增强分析能力,要用实验巩固所学知识,以便以后能在生活学习和工作中真正的灵活应用自己所学知识。总之,我觉得这次实验,越是独立完成,实验的难度越大,对于自己硬件知识的学习理解的深入、动手能力的提高和对编程

26、思想的进一步掌握就越有益,而且对于学习兴趣、自信心的培养都十分有好处。我很高兴能够有这样一次经历。同时也得到一些经验:1) 实验前要充分做好准备工作,回顾相应的硬件知识,熟悉相关软件的操作2) 应首先明确实验最终要达到的效果,确定工程量3) 实验中用到的模块事先一一检验一次以确保无误,并编写相应模块的程序,再将整个电路连接好进行调试4) 根据实物图容易画出原理图5) 实验中因积极讨论互相学习参考文献(补充)1 刘乐善.微机原理接口技术及应用.武汉:华中科技出版社,2004 .7 2 徐晓红,滕秀梅.微型计算机原理与接口技术实验报告.清华出版社,2009.13邹逢兴、姚红、腾秀梅 计算机硬件技术

27、基础实验教程,高等教育出版社2010.2.9附录/本实验的必要注释:/*/* 机械手群控系统设计 */*/*实验书:计算机硬件技术基础实验教程11.4*/*实验功能:通过微机实现对多台机械手操作的控制 */*实验平台:微机硬件基础实验平台 */*编译环境:Turbo C+ 3.1*/*实验使用芯片:8259中断控制芯片(内置)、8253定时器计数器芯片*/*8255并行接口芯片*/*实验连线:通过ISA总线的IRQ7与内置8259进行连线 */*8253:片选接试验平台0x210,GATE0接高电平 */*CLK0接100HZ脉冲,OUT0接ISA总线IRQ7 */*8255:片选接实验平台0

28、x250,PA0-PA7接发光二极管 */* PB0接纽子开关 */*/*/#include#include#include iostream.h#include conio.h#include #define INTR 0x0F /IRQ7,中断向量号#ifdef _cplusplus#define _CPPARGS .#else#define _CPPARGS#endifvoid interrupt (*oldhandler)(_CPPARGS);/旧的的中断向量void interrupt handler1(_CPPARGS);/中断服务程序void interrupt handler(

29、_CPPARGS);int Table18=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/控制信息表1int Table28=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/控制信息表2int temp1,temp2;/当前位置int num_action1=30;/动作次数:机械手1操作30次int num_action2=30;/动作次数:机械手2操作30次int label=0;/中断标志寄存器int main()/主程序 int old_8259_1;/原来的8259 :1口 outportb(0x253,0x8a); /8255初始化:方式0,A口输出,B口输入,C口高4位入,低4为出 outportb(0x213,0x14);/8253:定时器初始化,通道0,方式2 outpo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论