可编程并行接口8255A.ppt_第1页
可编程并行接口8255A.ppt_第2页
可编程并行接口8255A.ppt_第3页
可编程并行接口8255A.ppt_第4页
可编程并行接口8255A.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第5章可编程并行接口8255A5 18255A芯片引脚和内部结构5 1 1项目1 开关状态显示5 1 2知识讲解5 28255A控制字5 2 1项目2 8255A控制LED灯左循环亮5 2 2知识讲解5 38255A的工作方式5 3 1项目3 用8255A控制LED灯左右循环亮5 3 2知识讲解5 4项目扩展与工程应用5 4 1项目4 用8255A控制继电器5 4 2项目5 用8255A端口控制步进电机 5 18255A芯片引脚和内部结构5 1 1项目1 开关状态显示1 项目要求与目的 1 项目要求 设定8255A的PB口为开关量输入 PC口为开关量输出 编写程序实现能随时将PB口的开关状态通过PC口的发光二极管显示出来 2 项目目的 了解8255A芯片引脚和内部结构 了解8255A输入 输出实验方法 2 项目电路连接与说明 1 项目电路连接 将K0 K7用导线连接至8255A的PB0 PB7端口 将LED0 LED7用导线连至8255A的PC0 PC7端口 8255A的片选cs用导线连至地址译码处的200 207 插孔 2 项目说明 可编程通用接口芯片8255A有3个8位的并行I O口 它有三种工作方式 本项目采用8255A工作于方式0 PB口为输入 PC口为输出 输入量为开关量 通过8255A可实时显示在LED灯上 3 项目电路原理框图开关状态显示电路原理框图如图5 1所示 电路由8086CPU芯片 8255A芯片 74LS245驱动芯片 8只开关K0 K7和8个发光二极管LED0 LED7组成 4 项目程序设计 1 程序流程图8255A的PB口为开关量输入 PC口为开关量输出 要求能随时将PB口的开关状态通过PC口的发光二极管显示出来的程序流程图如图5 2所示 图5 2开关状态显示程序流程图 2 程序清单开关状态显示程序清单如下所示 CODESEGMENTASSUMECS CODESTART MOVDX 203H 8255A控制口地址MOVAL 82H 控制字10000010B PC口输出 PB口输入 方式0 OUTDX ALBG MOVDX 201H PB口地址INAL DX 读开关状态MOVDX 202H PC口地址OUTDX AL 输出开关状态JMPBG 循环CODEENDSENDSTART 5 1 2知识讲解1 概述计算机系统的信息交换有两种形式 并行数据传输方式和串行数据传输方式 并行数据传输是以计算机的字长 通常是8位 16位或32位为传输单位 一次传送 个字长的数据 并行接口的 并行 含义不是指接口与系统总线一侧的并行数据而言 而是指接口与I O设备或控制对象一侧的并行数据线 8255A是Intel公司生产的通用可编程并行接口芯片 8255A采用40脚双列直插封装 单一 5V电源 全部输入 输出与TTL电平兼容 用8255A连接外部设备时 通常不需要再附加其他电路 给使用带来很大方便 它有三个输入 输出端口 端口A 端口B 端口C 每个端口都可通过编程设定为输入端口或输出端口 但有各自不同的方式和特点 端口C可作为一个独立的端口使用 但通常是配合端口A和端口B的工作 为这两个端口的输入 输出提供控制联络信号 2 8255A芯片引脚8255A芯片引脚如图5 3 a 所示 8255A芯片有40根引脚 可分为如下三类 1 电源与地线2根 Vcc 26脚 GND 7脚 2 与外设相连的共24根 它们如下所示 PA7 PA0 端口A数据信号 8根 PB7 PB0 端口B数据信号 8根 PC7 PC0 端口C数据信号 8根 3 与CPU相连的共14根 RESET 35脚 复位信号 高电平有效 当RESET信号有效时 内部所有寄存器都被清零 同时 3个数据端口被自动设置为输入端口 D7 D0 三态双向数据线 在8086系统中 采用16位数据总线 8255A的D7 D0通常是接在16位数据总线的低8位上 cs 6脚 片选信号 低电平有效 该信号来自译码器的输出 只有当cs有效时 读信号RD和写信WR号才对8255A有效 RD 5脚 读信号 低电平有效 它控制从8255A读出数据或状态信息 WR 36脚 写信号 低电平有效 它控制把数据或控制命令字写入8255A A1 A0 8 9脚 端口选择信号 8255A内部共有4个端口 即寄存器 3个数据端口 端口A 端口B 端口C 和1个控制端口 当片选信号CS有效时 规定A1 A0为00 01 10 11时 分别选中端口A 端口B 端口C和控制端口 CS RD WR A1 A0这五个信号的组合决定了对3个数据端口和1个控制端口的读写操作 如表5 1所示 表5 18255A端口选择和基本操作 3 8255A内部结构8255A的内部结构如图5 3 b 所示 它包括四个部分 数据总线缓冲器 读写控制逻辑 A组控制器 包括端口A和端口C的上半部 和B组控制器 包括端口B和端口C的下半部 1 端口A 端口B和端口C8255A芯片内部有三个8位端口 分别为A口 B口和C口 这三个端口可与外部设备相连接 可用来与外设进行数据信息 控制信息和状态信息的交换 端口A包含一个8位数据输出锁存器 缓冲器和一个8位数据输入锁存器 所以用端口A作为输入端口或输出端口时 数据均被锁存 端口B包含一个8位数据输出锁存器 缓冲器和一个8位数据输入锁存器 所以用端口B作为输入端口或输出端口时 数据均被锁存 端口C包含一个8位数据输入缓冲器和一个8位的数据输出锁存器 缓冲器 所以端口C作为输入端口时不能对数据进行锁存 作为输出端口时能对数据进行锁存 端口C可以分成两个4位端口 分别可以定义为输入端口或输出端口 还可定义为控制 状态端口 配合端口A和端口B工作 2 A组和B组端口A和端口C的高4位 PC7 PC4 构成A组 由A组控制部件来对它进行控制 端口B和端口C的低4位 PC3 PC0 构成B组 由B组控制部件对它进行控制 这两个控制部件各有一个控制单元 接收来自数据总线送来的控制字 并根据控制字确定各端口的工作状态和工作方式 3 数据总线缓冲器数据总线缓冲器是一个双向三态的8位缓冲器 它与CPU系统数据总线相连 是8255A与CPU之间传输数据的必经之路 输入数据 输出数据 控制命令字都是通过数据总线缓冲器进行传送的 4 读 写控制逻辑读 写控制逻辑接收来自CPU地址总线的信号和控制信号 并发出命令到A组和B组 把CPU发出的控制命令字或输出的数据通过数据总线缓冲器送到相应的端口 或者把外设的状态或输入的数据从相应的端口通过数据总线缓冲器送到CPU 8255A接口芯片的地址译码电路设计需考虑的问题是 对于8086系统 由于采用16位数据总线 CPU在进行数据传送时 总是将低8位数据送往偶地址端口 而将高8位数据送往奇地址端口 反过来 从偶地址端口取得数据总是通过低8位数据线传送到CPU 从奇地址端口取得数据总是通过高8位数据线传送到CPU 在微机80386以上的32位外部数据总线的系统中 则应将8255A的A1端与地址总线的A3相连 将8255A的A0端与地址总线A2相连 并使CPU访问8255A时地址总线的A1 A0两位总是为00 5 28255A控制字及状态字5 2 1项目2 8255A控制LED灯左循环亮1 项目要求与目的 1 项目要求 根据开关的状态 用8255的PA端口控制8只LED发光二极管 PB口接1只开关 编写程序实现K0闭合 LED灯左循环亮 2 项目目的 了解8255控制方式的设置 掌握8255的初始化及编程方法 2 项目电路连接与说明 1 项目电路连接 8255A的片选CS孔用导线接至译码处200H 207H插孔 8255A的PA0 PA7用导线接至LED0 LED7 PB0用导线接至开关K0 2 项目说明 Intel8255A是常用的并行可编程接口芯片 它有3个8位并行输入 输出端口 可利用编程方法设置3个端口是作为输入端口还是作为输出端口 在使用时 要对8255进行初始化 本项目PA口作为输出口 PB口作为输入口 工作于方式0 当开关K0闭合 LED灯左循环亮 3 项目电路原理框图用8255A控制LED灯左循环亮电路框图如图5 4所示 电路由8086CPU芯片 8255A芯片 8只LED发光二极管和1只开关K0等组成 图5 48255A控制LED灯左循环亮电路原理框图 4 项目程序设计 1 程序流程图用8255A控制LED灯左循环亮程序流程图如图5 5所示 图5 58255A控制LED灯左循环亮程序流程图 2 程序清单用8255A控制LED灯左循环亮程序清单如下所示 CODESEGMENTASSUMECS CODESTART MOVDX 203H 8255控制端口MOVAL 82H PA输出 PB输入OUTDX ALMOVDX 200H PA端口地址MOVAH 0FEH 置LED0亮初始值BG MOVAL AHOUTDX AL 点亮LED灯CALLDELAY 调延时子程序MOVDX 201H PB端口地址INAL DX 读开关的状态TESTAL 01H PB0 0吗 K0闭合吗 JNZBG PB0 0 转移ROLAH 1 PB0 0 左移MOVDX 200HJMPBG DELAYPROCNEAR 延时子程序MOVBL 100DELAY2 MOVCX 374DELAY1 NOPNOPLOOPDELAY1DECBLJNZDELAY2RETDELAYENDPCODEENDSENDSTART 5 2 2知识讲解8255A是可编程并行接口芯片 可编程就是用指令的方法先对芯片进行初始化 设置芯片的端口是处于输入数据状态还是处于输出数据状态 以及每个端口的工作方式 要使8255A工作 必须把工作命令控制字写入8255A的控制字寄存器 8255A共有两种控制字 工作方式选择控制字 可使8255A的3个数据端口工作在不同的方式 端口C按位置位 复位控制字 它可使C端口中的任何一位进行置位或复位 1 工作方式选择控制字8255A的3种基本工作方式 由方式选择控制字来决定 方式0 基本的输入 输出方式 方式1 选通的输入 输出方式 方式2 双向的传输方式 端口A可以工作于方式0 方式1 方式2共三种工作方式 可以作为输入端口或输出端口 端口B可以工作于方式0 方式1两种工作方式 可以作为输入端口或输出端口 端口C分成高4位 PC7 PC4 和低4位 PC3 PC0 可分别设置成输入端口或输出端口 端口C的高4位与端口A配合组成A组 端口C的低4位与端口B配合组成B组 D7 1 特征位 表明是设定方式选择控制字 通过对8255A工作方式控制字的设置可将PA PB和PC3个端口分别定义为3种不同工作方式的组合 工作方式选择控制字格式及各位含义如图5 6所示 在使用8255A芯片前 必须先对其进行初始化 初始化的程序很简单 只要CPU执行一条输出指令 把控制字写入控制寄存器就可以了 图5 68255A的工作方式选择控制字 例5 1 按下述要求对8255A进行初始化 要求A口设定为输出数据 工作方式为方式0 B口设定为输入数据 工作方式为方式1 C口设定为高四位输入 低四位输出 地址为200H 203H MOVDX 203H 8255控制口地址送DXMOVAL 8EH 写工作方式控制字10001110BOUTDX AL 控制字送到控制口需要注意的是 C端口高四位和低四位的数据传输方向可以相同 也可以不同 无论是哪一种情况 IN OUT指令总是把C端口当作一个整体对其进行读写操作 2 端口C按位置位 复位控制字端口C按位置位 复位控制字可实现对端口C的每一位进行控制 置位是使该位为1 复位是使该位为0 控制字的格式及各位含义如图5 7所示 D7位是特征位 用来区分该控制字是工作方式控制字还是对端口C按位置位 复位控制字 D7 1 为工作方式控制字 D7 0为端口C按位置位 复位控制字 D6 D5 D4三位无意义 可为任意值 D3 D2 D1按二进制编码 用来选择对端口C的哪一位进行操作 选择的位将由D0位规定是置位 D0 1 还是复位 D0 0 D0位用来选择对所选定的端口C的哪一位是置位 D0 1 还是复位 D0 0 需要注意如下三点 端口C按位置位 复位控制字 必须写入控制寄存器 而不是写入端口C 当C端口被设置为输出时 端口C按位置位 复位控制字 可以对C口的某一根端口线按位操作 也就是说 使C口某一根端口线输出高低电平 而不影响其他端口线输出高低电平 当A端口工作在方式1或方式2 B端口工作在方式1时候 端口C按位置位 复位控制字 可以使内部的 中断允许触发器 置 1 或置 0 例5 2 要求通过8255A芯片C口的PC2位产生一个方脉冲信号 地址为200H 203H MOVDX 203H 控制口地址送DXAA MOVAL 05H 对PC2置位的控制字OUTDX ALCALLDELAY1 调用延时程序 省略 MOVAL 04H 对PC2复位的控制字OUTDX ALCALLDELAY2 调用延时程序 省略 JMPAA 5 38255A的工作方式5 3 1项目3 用8255A控制LED灯左右循环亮1 项目要求与目的 1 项目要求 根据开关的状态 用8255的端口PA控制8只LED发光二极管 PB口接两只开关K0和K1 编写程序实现K0闭合 LED灯左循环亮 K1闭合 LED灯右循环亮 2 项目目的 了解8255控制方式的设置 掌握8255的编程方法 了解8255控制外部设备的常用电路 2 项目电路连接与说明 1 项目电路连接 8255的片选CS孔用导线接至译码处200H 207H插孔 8255的PA0 PA7用导线接至LED0 LED7 PB0 PB1用导线接至开关K0和K1 2 项目说明 8255是常用的并行接口芯片 在使用时 只要对8255进行初始化就可使用 本项目PA口作为输出口 PB口作为输入口 工作于方式0 当开关K0闭合 LED灯左循环亮 当开关K1闭合 LED灯右循环亮 3 项目电路原理框图用8255A控制LED灯左右循环亮电路框图如图5 8所示 电路由8086CPU芯片 8255A芯片 8只LED发光二极管和两只开关K0和K1等组成 图5 8用8255A控制LED灯左右循环亮电路框图 4 项目程序设计 1 程序流程图用8255A控制LED灯左右循环亮程序流程图如图5 9所示 图5 9用8255A控制LED灯左右循环亮程序流程图 2 程序清单用8255A控制LED灯左右循环亮程序清单如下所示 CODESEGMENTASSUMECS CODESTART MOVDX 203H 8255控制口地址MOVAL 82H PA口输出 PB口输入OUTDX ALMOVDX 200H PA口地址MOVAH 0FEH 置LED0亮初始值BG MOVAL AHOUTDX AL 点亮LED灯CALLDELAY 调延时子程序MOVDX 201H PB端口地址INAL DX 读开关的状态TESTAL 01H PB0 0吗 K0闭合吗 JNZOPR PB0 0 转移ROLAH 1 PB0 0 左移MOVDX 200H PA口地址JMPBG OPR INAL DX 读开关的状态TESTAL 02H PB1 0吗 K1闭合吗 JNZBG PB1 0 转移RORAH 1 PB1 0右移MOVDX 200H PA口地址JMPBGDELAYPROCNEAR 延时子程序MOVBL 100DELAY2 MOVCX 374DELAY1 NOPNOPLOOPDELAY1DECBLJNZDELAY2RETDELAYENDPCODEENDSENDSTART 5 3 2知识讲解8255A有3种工作方式 可以通过编程来进行设置 方式0为简单I O 查询方式 端口A 端口B 端口C均可使用 方式1为选通I O 中断方式 端口A 端口B可以使用 方式2为双向I O 中断方式 只有端口A可以使用 工作方式的选择可通过向控制端口写入控制字来实现 在不同的工作方式下 8255A的3个I O端口的排列如图5 10所示 1 方式0方式0也叫基本输入 输出方式 一种方式 不需要应答联络信号 端口A 端口B和端口C的高4位及低4位都可以作为输入或输出端口 方式0的应用场合有无条件传送和查询传送2种 例5 4 电路如图5 1所示 8255A的PB口为开关量输入 PA口为开关量输出 要求能随时将PB口的开关状态通过PA口的发光二极管显示出来 试编写程序 程序流程图如图5 2所示 开关状态显示程序清单如下所示 CODESEGMENTASSUMECS CODESTART MOVDX 203H 8255A控制口地址MOVAL 82H 控制字10000010B PC口输出 PB口输入 方式0 OUTDX ALBG MOVDX 201H PB口地址INAL DX 读开关状态MOVDX 202H PC口地址OUTDX AL 输出开关状态JMPBG 循环CODEENDSENDSTART 2 方式1方式1也叫选通的输入 输方式 端口A和端口B仍作为两个独立的8位I O数据通道 可单独连接外设 通过编程分别设置它们为输入或输出 而端口C则要有6位 分成两个3位 分别作为端口A和端口B的应答联络线 其余2位仍可作为基本输入 输出方式即方式0 可通过编程设置为输入或输出 1 方式1输入当端口A和端口B工作于 方式1输入 时 端口A和端口B可分别作为独立的输入端口 必须有端口C配合端口A和端口B工作 端口C各位定义如图5 11所示 图5 11方式1输入有关信号的规定 端口C的PC3 PC5用作端口A的应答联络线 PC0 PC2则用作端口B的应答联络线 PC6和PC7则用于方式0 基本I O 对于图5 11中所示的控制信号作如下说明 STB 为选通输入信号 低电平有效 它是由外设送给8255A的输入信号 当该信号有效时 8255A接收外设送来的一个8位数据 IBF 输入缓冲器满信号 高电平有效 它是一个8255A送给外设的联络信号 当该信号为高电平时 表示外设的数据已送进输入缓冲器中 但尚未被CPU取走 通知外设不能送新数据 只有当它变为低电平时 即CPU已读取数据 输入缓冲器变空时 才允许外设送新数据 INTR 中断请求信号 高电平有效 它是8255A的一个输出信号 用于向CPU发出中断请求 它是当选通信号结束 STB 1 已将一个数据送进输入缓冲器 IBF 1 并且端口处于中断允许状态 INTE 1 时 8255A的INTR端被置为高电平 向CPU发出中断请求信号 当CPU响应中断读取输入缓冲器中的数据时 由读信号RD的下降沿将INTR置为低电平 INTEA 端口A中断允许信号 INTEA 没有外部引出端 它实际上就是端口A内部的中断允许触发器的状态信号 它由PC4的置位 复位来控制 PC4 1时 使端口A处于中断允许状态 INTEB 端口B中断允许信号 与INTEA 类似 INTEB也没有外部引出端 它是端口B内部的中断允许触发器的状态信号 它由PC2的置位 复位来控制 PC2 1时 使端口B处于中断允许状态 2 方式1输出当端口A和端口B工作于方式1输出时 方式选择控制字与端口C控制信号的定义如图5 12所示 图5 12方式1输出有关信号的规定 对于图5 12中所示的控制信号作如下说明 OBF 输出缓冲器满信号 低电平有效 它是8255A输出给外设的一个控制信号 当该信号有效时 表示CPU已经把数据输出给指定端口 通知外设把数据取走 ACK 外设响应信号 低电平有效 当该信号有效时 表明CPU通过8255A输出的数据已经由外设接收 它是对OBF的回答信号 INTR 中断请求信号 高电平有效 它是8255A的一个输出信号 用于向CPU发出中断请求 INTR是当ACK OBF和INTE都为 1 时才被置成高电平 向CPU发出中断请求信号 写信号WR的上升沿使其变为低电平 清除中断请求信号 INTE4 端口A中断允许信号 由PC6的置位 复位来控制 当PC6 1时 端口A处于中断允许状态 INTEB 端口B中断允许信号 由PC2的置位 复位来控制 当PC2 1时 端口B处于中断允许状态 另外 在方式1输出时 PC4 PC5两位还未用 如果要利用它们可通过方式选择控制字的D3位来设定 3 方式2方式2又称双向传输方式 只有端口A才能工作于方式2 在方式2 外设既可以在8位数据线上往CPU发送数据 又可以从CPU接收数据 当端口A工作于方式2时 端口C的PC 7 PC3用来提供相应的控制和状态信号 配合端口A的工作 此时端口B以及端口C的PC2 PC 0 则可工作于方式0或方式1 如果端口B工作于方式0时 端口C的PC2 PC0 可用作数据输入 输出 如果端口B工作于方式1时 端口C的PC2 PC0 用来为端口B提供控制和状态信号 当端口A工作于方式2时 方式选择控制字与端口C控制信号的定义如图5 13所示 图5 138255A方式2 1 方式2输出对于图5 13中所示的控制信号作如下说明 OBFA 端口A 输出缓冲器满 信号 输出 低电平有效 当OBFA有效时 表示CPU已经将一个数据写入8255A的端口A 通知外设数据可以取走了 ACKA 外设对OBFA的回答信号 输入 低电平有效 当它有效时 表明外设已收到端口A输出的数据 INTE1 输出中断允许信号 当INTE1 1时 允许8255A由INTRA向CPU发中断请求信号 当INTE1 0时 则屏蔽该中断请求 INTE1的状态由 端口C按位置1 置0控制字 所设定的PC6位的内容来决定 2 方式2输入STBA 端口A选通信号 输入 低电平有效 当该信号有效时 端口A接收外设送来一个8位数据 IBFA 端口A 输入缓冲器满 信号 输出 高电平有效 当IBFA 1时 表明外设的数据已经送进输入缓冲器 当IBFA 0时 外设可以将一个新的数据送入端口A INTE2 输入中断允许信号 它的作用与INTE1 1类似 INTE2的状态由 端口C按位置1 置0控制字 所设定的PC4位的内容来决定 INTRA 中断请求 输出 高电平有效 在INTE1 1和INTE2 1的情况下 无论OFBA 1或者IBFA 1都可能使INTRA 1 向CPU请求中断 方式2是一种双向传输工作方式 如果一个并行外部设备既可以作为输入设备 又可以作为输出设备 并且输入输出动作不会同时进行 那么 将这个外部设备的8255A的端口A相连 并让它工作于方式2就很合适 例如 软盘系统就是这样一种外设 例5 5 设8255A的端口为200H 207H 端口A工作于方式2 要求发两个中断允许 即PC4和PC6均需要置位 端口B工作于方式1 要求使PC2置位来开放中断 解 8255A初始化程序如下所示 MOVDX 203H 8255控制口MOVAL 0C4H 控制字11000100B 方式2 OUTDX ALMOVAL 09H PC4置位 端口A输入允许中断OUTDX ALMOVAL 0DH PC6置位 端口A输出允许中断OUTDX ALMOVAL 05H PC2置位 端口B输出允许中断OUTDX AL 5 4项目扩展与工程应用5 4 1项目4 用8255A控制继电器1 项目要求与目的 1 项目要求 利用8255A的端口 编写程序实现输出电平控制继电器的吸合和断开 从而达到对外部装置的控制 2 项目目的 了解8255控制方式的设置 掌握8255的初始化及编程方法 掌握继电器的控制的基本方法 了解用弱电控制强电的方法 2 项目电路连接与说明 1 项目电路连接 8255A的片选CS孔用导线接至译码处200H 207H插孔 8255A的PA0用导线接至继电器的CON端 继电器的用导线接至 5V插孔 2 项目说明 现代自动控制设备中 都存在一个电子电路与电气电路的互相连接问题 一方面要使电子电路的控制信号能够控制电气电路的执行元件 电动机 电磁铁 电灯等 另一方面又要为电子线路的电气电路提供良好的电气隔离 以保护电子电路和人身的安全 继电器便能完成这一桥梁作用 本项目采用的继电器其控制电压是5V 本电路的控制端为高电平时 继电器常开触点吸合 连触点的LED灯被点亮 当控制端为低电平时 继电器常开触点断开 对应的LED灯将随继电器的开关而亮灭 需要注意的是 继电器触点吸合与断开的间隔时间尽可能要长一些 这样继电器和控制设备才不容易损失 3 项目电路原理框图用8255A控制继电器电路原理框图如图5 14所示 电路由8086CPU芯片 8255A芯片 驱动电路ULN2003 1只LED发光二极管和继电器等组成 图5 14用8255A控制继电器电路原理框图 4 项目程序设计 1 程序流程图用8255A控制继电器程序流程图如图5 15所示 图5 15用8255A控制继电器程序流程图 2 程序清单用8255A控制继电器程序清单如下所示 CODESEGMENTASSUMECS CODESTART MOVDX 203H 8255A控制端口地址MOVAL 80H PA口输出OUTDX ALBG MOVDX 200H PA口地址MOVAL 01H PA0输出高电平OUTDX ALCALLDELAY 延时MOVDX 200HMOVAL 00H PA0输出低电平OUTDX ALCALLDELAY 延时JMPBG DELAYPROCNEAR 延时子程序MOVBL 100DELAY2 MOVCX 374DELAY1 NOPNOPLOOPDELAY1DECBLJNZDELAY2RETDELAYENDPCODEENDSENDSTART 5 4 2项目5 用8255A端口控制步进电机1 项目要求与目的 1 项目要求 根据开关的状态 用8255端口控制步进电机 编写程序输出脉冲序列到8255的PA口 控制步进电机正转 反转 加速 减速 2 项目目的 了解步进电机控制的基本原理 掌握控制步进电机转动的编程方法 了解单片机控制外部设备的常用电路 2 项目电路连接与说明 1 项目电路连接 8255的片选CS孔用导线接至译码处200H 207H插孔 8255的PA0 PA3用导线接至步进电机的A B C和D PB0 PB3用导线接至开关K0 K1和K2 2 项目说明 步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转 切换是通过8255输出脉冲信号来实现的 所以调节脉冲信号的频率便可以改变步进电机的转速 改变各相脉冲的先后顺序 可以改变电机的旋转方向 步进电机的转速应由慢到快逐步加速 步进电机驱动方式可以采用双四拍 AB BC CD DA AB 方式 也可以采用单四拍 A B C D A 方式 或单 双八拍 A AB B BC C CD D DA A 方式 实际控制时公共端是接在 5V上的 所以实际控制脉冲是低有效 8255的PA口输出的脉冲信号经 MC1413或ULN2003A 倒相驱动后 向步进电机输出脉冲信号序列 当开关K0 0时 步进电机驱动方式采用单 双八拍工作方式 当开关K1 0时 步进电机驱动方式采用双四拍工作方式 当开关K2 0时 步进电机驱动方式采用单四拍反转工作方式 3 项目电路原理框图项目电路原理框图如图5 16所示 电路由8255A芯片 驱动和步进电机等组成 图5 16用8255A端口控制步进电机电路框图 4 项目程序设计 1 程序流程图用8255A端口控制步进电机程序流程图如图5 17所示 图5 178255A端口控制步进电机程序流程图 2 程序清单用8255A端口控制步进电机程序清单如下所示 ASTEPEQU01HBSTEPEQU02HCSTEPEQU04HDSTEPEQU08HCODESEGMENTASSUMECS CODESTART MOVDX 203H 8255控制口地址MOVAL 82H PA口输出 B口输入OUTDX AL 写控制字K0 MOVDX 200H PA口地址MOVAL 0 输出低电平OUTDX AL 电机停止转动MOVDX 201H PB口地址INAL DX 读开关状态 TESTAL 01H PB0位 K0 0吗 JNZK1 不是零转K1JMPSTEP8是零转单 双八拍工作方式K1 INAL DX 读开关状态TESTAL 02H PB1位 K1 0吗 JNZK2 不是零转K2JMPSTEP4 是零转双四拍工作方式K2 INAL DX 读开关状态TESTAL 04H PB2位 K2 0吗 JZSTEP41 是零转单四拍反转工作方式JMPK0 循环 单 双八拍工作方式 A AB B BC C CD D DA ASTEP8 MOVBX 9000H 设置初始延时时间MOVDX 200H PA口地址MOVAL ASTEPOUTDX ALCALLDELAYMOVAL ASTEP BSTEP OUTDX ALCALLDELAYMOVAL BSTEPOUTDX ALCALLDELAYMOVAL BSTEP CSTEPOUTDX ALCALLDELAYMOVAL CSTEPOUTDX ALCALLDELAYMOVAL CSTEP DSTEPOUTDX ALCALLDELAYMOVAL DSTEPOUTDX ALCALLDELAYMOVAL DSTEP ASTEPOUTDX ALCALLDELAYJMPK0 双四拍工作方式 AB BC CD DA ABSTEP4 MOVBX 5000H 设置延时时间MOVDX 200H PA口地址MOVAL ASTEP BSTEP PA0PA1 AB相 输出高电平OUTDX ALCALLDELAY 调延时MOVAL BSTEP CSTEP BC输出高电平OUTDX ALCALLDELAY 调延时MOVAL CSTEP DSTEP CD输出高电平OUTDX ALCALLDELAY 调延时MOVAL DSTEP ASTEP DA输出高电平

温馨提示

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

评论

0/150

提交评论