当前位置:文档之家› 汇编与微机原理课程设计报告

汇编与微机原理课程设计报告

微机接口课程设计报告(题目:模拟自动门)指导老师郭兰英班级2015240204目录一概述 (1)1.1 课程设计名称 (1)1.2 课程设计要求 (1)1.3 课程设计目的 (1)二设计思想 (1)三实施方案 (2)3.1 获得传感器和“门”的状态 (2)3.2 驱动步进电机和点阵模块 (2)3.3 实现硬件延时 (3)四硬件原理 (3)4.1 中断控制器8259 (4)4.2并行接口8255 (4)4.3 定时/计数器8254 (5)4.4 点阵LED显示屏 (5)4.5 步进电机 (6)4.6 红外距离传感器 (7)五软件流程 (8)六程序运行结果及分析 (11)6.1 开门状态 (11)6.2 关门状态 (12)6.3 关门操作进行时中断到开门操作 (14)6.4特殊状态 (15)七个人感想 (16)八附录 (18)一、概述1.1课程设计名称模拟自动门1.2课程设计要求1)用汇编语言编程完成硬件接口功能设计。

2)硬件电路基于80x86微机接口。

3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。

4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。

1.3课程设计目的通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。

要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。

二、设计思想本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。

为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能:1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。

2、当“门”完全打开后一段时间后,传感器范围内检测不到物体时,立即“关闭门”, 用一系列的硬件动作模拟自动门关闭的动作和状态。

3、当“门”完全打开后一段时间后,传感器可检测范围内检测到物体,则继续维持“门”完全打开状态一段时间。

4、“门”正在关闭的过程中“有人靠近”,即传感器检测到物体,应立即终止“关门”动作,然后“开门”,即将“门”由当前状态转换到完全开的状态。

5、当传感器可检测范围内检测不到物体,并且“门”为“关”的状态,不做任何操作。

考虑到试验箱的硬件资源,本次课设用步进电机和点阵显示模块模拟门的同状态,距离传感器采用红外传感器。

三、实施方案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口写相应的值即可驱动步进电机做相应的动作;点阵模块则是直接与系统总线链接,IOY0~IOY3与CS1、CS2、CS4、CS3相连,配合相应的程序即可实现箭头的显示。

图3.1关门时系统状态图3.2关门时系统状态3.3实现硬件延时门完全打开后,需要延时一段时间,才进行下一次检测,实现没人关门,有人则继续开门的功能。

本次课程采用8254芯片计时3.5秒,门完全打开后,启动8254计时,CPU进入“忙等”状态,直到中断程序修2改标志量。

由于8254芯片和点阵会同时工作,而且片选信号冲突,所以选择1通道,时钟频率选择18.432KHz,片选接IOY1。

四、硬件原理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显示屏系统中的16×16 LED 点阵由四块8×8 LED 点阵组成,如图4-4-1 所示,8×8点阵内部结构图如图4.6所示。

当行为“0”,列为“1”,则对应行、列上的LED 点亮。

图4.7为点阵外部引脚图。

图4.6 16×16LED 点阵图4.7点阵外部引脚图点阵显示模块与系统连线图如下:图4.8 LED点阵连线图4.6步进电机系统通过驱动步进电机来实现开门/关门,顺时针旋转半圈表示门完全打开,打开状态下,逆时针旋转半圈表示门完全关闭。

所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动一次。

根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。

本系统所采用的步进电机为四相八拍电机。

根据电机的励磁顺序(如图4.9),正序控制电机顺时针旋转,逆序控制电机逆时针旋转。

步进电机每转动完整的一圈,该单元上的指针旋转一格,所以可以通过控制延时来控制电机的旋转速度。

图4.9励磁顺序图4.10 PB端口各线的电平在各步中的情况图4.11 步进电机驱动电路原理图图4.12 步进电机连线图4.7红外距离传感器1、当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT 端口持续输出低电平信号,该模块检测距离2~30cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。

2、传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。

其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。

3、比较器采用LM393,工作稳定。

传感器引脚如图4.13所示,内部电路图如图4.14所示。

4、可采用3-5V直流电源对模块进行供电。

当电源接通时,红色电源指示灯点亮;4.13 红外距离传感器VCC图4.14 红外距离传感器内部电路图五、软件流程程序开始后,装入中断程序,初始化8254、8259、8255三个接口芯片,点阵显示单元显示门是关闭状态,即两个向内的箭头,如图3.1所示。

接下来进入主程序,CPU读8255A口,提取最低位获得传感器状态,该位为0表示传感器可检测范围内有物体,反之则没有物体;获取内存变量FLAG的第1位值得到当前门的状态,该位为1表示门为完全打开状态,反之则为关闭状态;综合以上两个标志位共四种状态,进行以下测试: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口,检测是否有人,若无人,继则续关门操作,直到门完全关闭;否则程序跳转至主程序入口。

若不是此状态则程序跳转至主程序入口。

程序循环获取传感器状态和门状态标志,并依次检测以上四种状态,往复执行此过程,即可实时响应传感器的变化,实现模拟自动门。

相关主题