汇编与微机原理课程设计报告-模拟自动门.docx_第1页
汇编与微机原理课程设计报告-模拟自动门.docx_第2页
汇编与微机原理课程设计报告-模拟自动门.docx_第3页
汇编与微机原理课程设计报告-模拟自动门.docx_第4页
汇编与微机原理课程设计报告-模拟自动门.docx_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

微机接口课程设计报告(题目: 模拟自动门 )指 导 老 师 郭兰英 班 级 2015240204 组员组员分工,介绍设计内容(10分)完成演示(30分)答辩(30分)设计报告的书写规范性(30分)基本要求:设计方案介绍;硬件原理以及软件流程图表述;设计代码(编码规范与命名);设计体会。附加功能及创意(10分)总成绩(满分110分) 目 录一 概述11.1 课程设计名称11.2 课程设计要求11.3 课程设计目的1二 设计思想1三 实施方案23.1 获得传感器和“门”的状态23.2 驱动步进电机和点阵模块23.3 实现硬件延时3四 硬件原理34.1 中断控制器825944.2 并行接口825544.3 定时/计数器825454.4 点阵LED显示屏54.5 步进电机64.6 红外距离传感器7五 软件流程8六 程序运行结果及分析116.1 开门状态116.2 关门状态126.3 关门操作进行时中断到开门操作146.4 特殊状态15七 个人感想16八 附录18 II1、 概述1.1 课程设计名称模拟自动门1.2 课程设计要求1) 用汇编语言编程完成硬件接口功能设计。 2) 硬件电路基于80x86微机接口。3) 程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。4) 传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。1.3 课程设计目的通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理, 编写设计程序及程序流程图。2、 设计思想本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能:1、 当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。2、 当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。3、 当“门”完全打开后一段时间后,传感器可检测范围内检测到物体,则继续维持“门”完全打开状态一段时间。4、 “门”正在关闭的过程中“有人靠近”,即传感器检测到物体,应立即终止“关门”动作,然后“开门”,即将“门”由当前状态转换到完全开的状态。5、 当传感器可检测范围内检测不到物体,并且“门”为“关”的状态,不做任何操作。考虑到试验箱的硬件资源,本次课设用步进电机和点阵显示模块模拟门的同状态,距离传感器采用红外传感器。3、 实施方案3.1 获得传感器和“门”的状态本次课程设计主要利用红外距离传感器检测是否有“人”靠近,即当传感器可检测范围内有物体时,传感器的OUT端会输出低电平信号。将传感器的OUT端与8255芯片的PA0引脚相连,CPU读8255 A口即可获得当前传感器的状态,该位为1表示没有人,该位为0表示有人。“门”的状态则是由一个单字节的内存量的第1位标记,该位为0表示门为关状态,该位为1表示门为开状态。3.2 驱动步进电机和点阵模块如图3.1所示,本次课程设计用步进电机顺时针转动和点阵模块闪烁显示两个反相的箭头表示正在开门状态;如图3.2所示,用步进电机逆时针转动和点阵模块闪烁显示两个相对的箭头表示关门状态;用步进电机指针指向“开”字样和点阵模块持续显示两个反向的箭头表示门完全打开状态;用步进电机指针指向“关”字样和点阵模块持续显示两个相向的箭头表示门完全关闭状态;步进电3机用82455 B口驱动,将8255 B口的低四位与步进电机的驱动部分连接,CPU向8255 B口写相应的值即可驱动步进电机做相应的动作;点阵模块则是直接与系统总线链接,IOY0IOY3与CS1、CS2、CS4、CS3相连,配合相应的程序即可实现箭头的显示。 图3.1 关门时系统状态 图3.2 关门时系统状态3.3 实现硬件延时门完全打开后,需要延时一段时间,才进行下一次检测,实现没人关门,有人则继续开门的功能。本次课程采用8254芯片计时3.5秒 ,门完全打开后,启动8254计时,CPU进入“忙等”状态,直到中断程序修2改标志量。由于8254芯片和点阵会同时工作,而且片选信号冲突,所以选择1通道,时钟频率选择18.432KHz,片选接IOY1。4、 硬件原理4.1 系统概述本次课设设计的的模拟自动门所用到的硬件电路基于80x86微机接口,用到的有中断控制器8259,并行接口8255,定时/计数器8254,点阵LED显示屏,步进电机。系统连线图如下:图4.1 系统连线图4.2 中断控制器8259在自动门系统中,当门完全打开时需要开中断,然后打开8254计数器进行延时。中断在 Intel 386EX 芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的 82C59A 是一致的,操作方法也相同。从片的 INT 连接到主片的 IR2 信号上构成两片 8259 的级联。在 TD-PITE 实验系统中,将主控制器的 IR6、IR7 以及从控制器的 IR1 开放出来供用户使用,主片 8259 的 IR4 供系统串口使用。8259 的内部连接及外部管脚引出如图4.2,系统接线图如图4.3。图4.2 8259内部连接及外部引脚图4.3 8259连线图4.3 并行接口8255 并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递 8 位、16 位或 32 位等。8255 可编程外围接口芯片具有 A、B、C 三个并行接口,用+5V 单电源供电,能在三种方式下工作,本系统使用方式0,定义A口为方式0输入,B口为方式0输出。工作时,8255负责从A口读入红外传感器输出,从B口输驱动步进电机转动。图4.4 8255连线图4.4 定时/计数器8254自动门系统中使用8254做定时器,当开门以后需要使用用8254做两秒的延时。8254 是 Intel 公司生产的可编程间隔定时器。是 8253 的改进型,比 8253 具有更优良的性能。8254有 3 个独立的 16 位计数器,每个计数器可按二进制或十进制(BCD)计数,每个计数器可编程工作于 6 种不同工作方式。本系统采用方式 0:计数到 0 结束输出正跃变信号方式。8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。8254的系统连线图如图4.5。图4.5 8254连线图4.5 点阵LED显示屏系统中的 1616 LED 点阵由四块 88 LED 点阵组成,如图 4-4-1 所示,88点阵内部结构图如图 4.6所示。当行为“0”,列为“1”,则对应行、列上的 LED 点亮。图 4.7为点阵外部引脚图。 图4.6 1616LED 点阵 图4.7 点阵外部引脚图 点阵显示模块与系统连线图如下:图4.8 LED点阵连线图4.6 步进电机系统通过驱动步进电机来实现开门/关门,顺时针旋转半圈表示门完全打开,打开状态下,逆时针旋转半圈表示门完全关闭。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动一次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。本系统所采用的步进电机为四相八拍电机。根据电机的励磁顺序(如图4.9),正序控制电机顺时针旋转,逆序控制电机逆时针旋转。步进电机每转动完整的一圈,该单元上的指针旋转一格,所以可以通过控制延时来控制电机的旋转速度。图4.9 励磁顺序图4.10 PB端口各线的电平在各步中的情况图4.11 步进电机驱动电路原理图图4.12 步进电机连线图4.7 红外距离传感器1、 当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离230cm,检测角度35,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。2、 传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。3、 比较器采用LM393,工作稳定。传感器引脚如图4.13所示,内部电路图如图4.14所示。4、 可采用3-5V直流电源对模块进行供电。当电源接通时,红色电源指示灯点亮;4.13 红外距离传感器图4.14 红外距离传感器内部电路图5、 软件流程程序开始后,装入中断程序,初始化8254、8259、8255三个接口芯片,点阵显示单元显示门是关闭状态,即两个向内的箭头,如图3.1所示。接下来进入主程序,CPU读8255A口,提取最低位获得传感器状态,该位为表示传感器可检测范围内有物体,反之则没有物体;获取内存变量FLAG的第位值得到当前门的状态,该位为表示门为完全打开状态,反之则为关闭状态;综合以上两个标志位共四种状态,进行以下测试:1、 若有人且门未开,即两个标志位为“00”时,执行开门操作,点阵闪烁显示两个向外的箭头,步进电机顺时针转动,直至门完全打开;当门完全打开后,修改门状态标志变量,置计时结束标志位TIMEOUT置0,8254开始计时,CPU循环调用点阵显示子程,持续显示向外的箭头,直至TIMEOUT等于0FFH;计时结束触发中断,中断子程BREAKDELAY置TIMEOUT为0FFH。此时CPU跳出循环,程序跳转至主程序入口。否则继续测试下一种情况。2、 若无人且门未开时,即两个标志位为“01”时,不做任何操作,程序跳转至主程序入口。否则继续测试下一种情况。3、 若有人且门已开时,即两个标志位为“10”时,置计时结束标志位TIMEOUT置0,8254开始计时,CPU循环调用点阵显示子程,持续显示向外的箭头,直至TIMEOUT等于0FFH;计时结束触发中断,中断子程BREAKDELAY置TIMEOUT为0FFH。此时CPU跳出循环,程序跳转至主程序入口。否则继续测试下一种情况。4、 若无人且门已开时,即两个标志位为“11”时,执行关门操作,修改门状态标志变量,即点阵闪烁显示两个向内的箭头,步进电机逆时针转动,并且步进电机每转动一小格,记录当前门关上的程度,读8255A口,检测是否有人,若无人,继则续关门操作,直到门完全关闭;否则程序跳转至主程序入口。若不是此状态则程序跳转至主程序入口。程序循环获取传感器状态和门状态标志,并依次检测以上四种状态,往复执行此过程,即可实时响应传感器的变化,实现模拟自动门。程序流程如图5.1所示。图5.1 程序流程图6、 程序运行结果及分析程序采用步进电机的转动表示门的开关动作,步进电机两侧有“开”“关”标识,点阵用于显示门此时的状态,当自动门完全打开后,8254开始计时,控制何时开始关门。程序运行过程中,当遇到物体并被检测到且门未开,自动门打开,自动执行开门的一系列动作。当门完全打开且传感器检测到物体存在,门一直处于打开状态不执行任何操作;否则,门执行关门的动作,若在关门过程中检测到有物体靠近,门在当前状态下继续执行开门动作,循环往复执行之前的过程。6.1 开门状态如图6.1所示为开门状态下试验箱的演示过程,当检测到物体存在时试验箱切换到当前显示并在每个单元进行如下显示:图6.1 开门时系统状态6.1.1 步进电机单元如图6.2所示为开门状态下步进电机的状态,步进电机两侧有“开”、“关”两个标识,正在开门时步进电机的指针由“关”缓慢转动半周到“开”,并停止在“开”的位置。图6.2 开门状态下的步进电机6.1.2 点阵显示单元如图6.3所示为正在开门时的点阵显示,由图中可以看出点阵显示的字符是两个箭头相向,代表正在开门,由于点阵和步进电机同步运行,点阵单元以相同的频率闪动字符,开门结束后停止闪烁。图6.3 开门状态下的点阵显示6.1.3 距离传感器 如图6.4所示为外接传感器,当距离传感器可检测范围内有物体时,即有人时,传感器会在out端输出低电平,并且指示灯发光。图6.4 开门状态下的传感器6.2 关门状态如图6.5所示为关门状态下试验箱的演示过程,当检测不到物体存在且门处于开状态下时试验箱切换到当前显示并在每个单元进行如下显示:图6.5 关门状态6.2.1 步进电机单元如图6.6所示为关门状态下步进电机的状态,步进电机开始回转,正在关门时步进电机的指针由“开”缓慢转动半周到“关”,并停止在“关”的位置。图6.6 关门状态下的步进电机6.2.2 点阵显示单元如图6.7所示为正在关门时的点阵显示,由图中可以看出点阵显示的字符是两个箭头相对,代表正在关门,显示内容在关门过程中持续闪烁,直到关门动作停止或切换到开门状态。图6.7 关门状态下的点阵显示6.2.3 距离传感器如图6.8所示为外接传感器,当距离传感器检测不到范围内有物体时,即无人时,传感器会在out端输出高电平,并且指示灯不发光。图6.8 关门状态下的传感器6.2.4 LED单元如图6.9所示为LED灯,当门完全打开时,LED灯最后一位亮起,表示此时8254单元开始计时,计时结束开始关门,计时的时间即为门完全打开后停留的时间,即等待客人进入的时间。图6.9 关门状态下的LED显示6.3 关门操作进行时中断到开门操作如图6.10所示为正在关门时距离传感器检测到有物体靠近,从当前状态下转换到开门操作的显示并在每个单元进行如下显示:图6.10 转换状态6.3.1 步进电机单元如图6.11所示为关门操作时检测到有物体的步进电机显示,由图可以看出,此时步进电机的指针可能停在任意位置,指针从当前位置回转,代表执行开门动作,转到“开”位置为止,回转过程中若再次检测到物体,状态不会改变。图6.11 转换状态下的步进电机6.3.2 点阵显示单元如图6.12所示为关门操作进行时检测到物体时的点阵显示,此时点阵显示单元立即更换字符,由“”转换为“”,代表此时由正在关门变为正在开门。图6.12 转换状态下的点阵显示6.3.3 距离传感器如图6.13所示为外接传感器,当关门时距离传感器检测范围内有物体时,即有人时,传感器会在out端输出低电平,并且指示灯发光。图6.13 转换状态下的传感器6.4 特殊状态实验进行时会出现某些特殊状态,在此做简单说明:当门完全打开时传感器检测到范围内有物体时,门会一直处于完全打开状态,直到检测到“无人”为止。7、 个人感想经过这次课设,我懂得了很多东西,组内明确分工,课设做的很快,让我懂得了团队合作的重要性,只有一起努力完成工作,才能提高效率。从开始不知如何下手,到有了明确的思路,再到具体落实,经过多次的修改最终完成课设,这是一个进步的过程,实验中遇到了很多问题和困难,我们都一一解决了,在基本功能实现后,我们做了一系列的拓展,但由于资源不足,总线不够等原因最终有些拓展功能并未实现,经过我们的努力,也成功将一些冲突的功能实现了。在其中发现了很多的不足,仍然需要今后继续努力完善,曾经很多在课本中不理解的东西,最后在动手实践中得到了解决,实践出真知,只有动手实践才能彻底理解其中的奥义,感谢老师给了我们这次宝贵的实践机会,既让我们看到了自己的不足,又锻炼了我们解决问题的能力,总得来说收获很大,受益良多。通过此次课程设计,使我更加扎实的掌握了有关汇编编程与接口设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。这使我明白在今后的学习实践过程中,不能遇到问题就想到要退缩。这次课程设计诚让我感触很深,使我对抽象的理论有了具体的认识。通过这次课程设计,我加深了我对80x86系统的认识,同时回顾并熟悉了前面学到的8259、8254等芯片的知识。在这次的实验中,不仅培养了自己独立思考、动手操作的能力,在汇编语言编程的能力上也有了很大的提高。在提出想法到编程实现的过程中,我们发现许多问题,而此时我们通过查阅资料,上网搜索相关信息的方法最终解决了问题,这是一个非常高效的学习方法。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。实验中个人的力量是不及群体的力量的,我们三个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。8、 附录附录一程序源代码;8255A口用作传感器输入,仅D0位有效,B口用作步进电机输出IOY0 EQU 0600H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*2 ;8255的A口地址MY8255_B EQU IOY0+01H*2 ;8255的B口地址MY8255_C EQU IOY0+02H*2 ;8255的C口地址MY8255_CON EQU IOY0+03H*2 ;8255的控制寄存器地址IOY1 EQU 0640HMY8254_CON EQU IOY1+03H*2 MY8254_INIT_1 EQU IOY1+01H*2ROW1EQU 0600H;端口定义IOY0ROW2EQU 0640H;端口定义IOY1COL1EQU 0680H;端口定义IOY2COL2EQU 06C0H;端口定义IOY3PUBLIC STEPPUBLIC FLAGSSTACK SEGMENT STACK DW 32 DUP(?)SSTACK ENDSDATA SEGMENTFLAG DB 0STEP DW 06HTIMEOUT DB 00HTABDTDB 01H,03H,02H,06H,04H,0CH,08H,09HCLOSEDOOR:DB 000H,000H,000H,000H,000H,000H,000H,000HDB 020H,004H,010H,008H,008H,010H,0FCH,03FHDB 008H,010H,010H,008H,020H,004H,000H,000HDB 000H,000H,000H,000H,000H,000H,000H,000HOPENDOOR:DB 000H,000H,000H,000H,000H,000H,000H,000HDB 000H,000H,010H,008H,020H,004H,040H,002HDB 0FCH,03FH,040H,002H,020H,004H,010H,008HDB 000H,000H,000H,000H,000H,000H,000H,000HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: PUSH DS MOV AX,0000H MOV DS,AX MOV AX,OFFSET BREAKDELAY MOV SI,003CH MOV SI,AX MOV AX,CS MOV SI,003EH MOV SI,AX CLI POP DS MOV DX,MY8255_CON MOV AL,90H OUT DX,AL CALL DALAY MOV AL,70H MOV DX,MY8254_CON OUT DX,AL CALL DALAY MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL MOV AL,6FH OUT 21H,AL STI MOV AX,DATA MOV DS,AX ;MOV AX,0131H ;INT 21HA0: MOV SI, OFFSET CLOSEDOORCALL DISP MOV DX,MY8255_A IN AL,DX AND AL,01H MOV BL,FLAG AND BL,02H OR AL,BL CMP AL,00H JNZ IS01H CALL OPEN ;MOV AX,0131H ;INT 21H MOV FLAG,02H CALL DALAY2S ;MOV AX,0132H ;INT 21H JMP A0IS01H: CMP AL,01H JNZ IS10H JMP A0IS10H: CMP AL,02H JNZ IS11H CALL DALAY2S JMP A0IS11H: CMP AL,03H JNZ A0 CALL CLOSE MOV FLAG,00H JMP A0BREAKDELAY: STI MOV TIMEOUT,0FFH MOV AL,20H OUT 20H,AL IRET DALAY2S: PUSH AX PUSH DX MOV DX,MY8254_INIT_1 MOV AL,0FFH OUT DX,AL MOV AL,0FFH OUT DX,AL CALL DALAY MOV TIMEOUT,00H BEGIN: CALL DISP CMP TIMEOUT,0FFH JNZ BEGIN POP DX POP AX RETOPEN: PUSH CX MOV SI, OFFSET OPENDOOR ;CALL DISP MOV CX,STEP OTT: CALL A1 LOOP OTT POP CX RETCLOSE: MOV SI, OFFSET CLOSEDOOR PUSH CX MOV STEP,0H MOV CX,0006H CTT: CALL A4 INC STEP MOV DX,MY8255_A IN AL,DX AND AL,01H CMP AL,01H JNZ EXITCLOSE LOOP CTT EXITCLOSE: POP CX RETDALAY: PUSH CX MOV CX,0FFH AN: PUSH BX POP BX LOOP AN POP CX RET A1:PUSH AXPUSH BXPUSH CXPUSH DXMOV BX, OFFSET TABDTMOV CX, 0008HA2:MOVAL,BX MOV DX, MY8255_B; 写B口 OUTDX, ALCALL DALLY; 控制步进电机的转速 PUSH BXPUSH CXCALL DISP POP CXPOP BXINCBX LOOP A2POP DXPOP CXPOP BXPOP AXRETA4:PUSH AXPUSH BXPUSH C

温馨提示

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

评论

0/150

提交评论