计量泵流量控制系统设计_第1页
计量泵流量控制系统设计_第2页
计量泵流量控制系统设计_第3页
计量泵流量控制系统设计_第4页
计量泵流量控制系统设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

基于基于 80C51 的计量泵流量控制系统设计的计量泵流量控制系统设计 内容摘要 步进电机是一种用电脉冲进行控制 将电脉冲信号转换成相位 移的电机 本文将计量泵流量控制转换为对步进电机的控制 控制系统采用 AT89C52 做主控单元 通过与 AT89C2051 的串口通信实现对步进电机的远程 控制 最终实现对泵流量控制 关键词 单片机 控制 速度 步进电机 AT89C52 AT89C2051 步进电机是数控式电机 是工业控制及仪表中常用的控制元件之一 其最 大特点是通过输入脉冲信号来进行控制 即电机的总转动角度有输入的脉冲数 决定 而电机的转速由脉冲信号频率决定 它具有输入脉冲与电机轴转角成比 例的特征因此非常适合于单片机控制 步进电机的工作原理 其机械位移和转速分别与输入电机绕组的脉冲个数 和脉冲频率成正比 每一个脉冲信号可使步进电机旋转一个固定的角度 脉冲的 数量决定了旋转的总角度 脉冲的频率决定了电机运转的速度 当步进驱动器接 收到一个脉冲信号 它就驱动步进电机按设定的方向转动一个固定的角度 称为 步距角 它的旋转是以固定的角度一步一步运行的 可以通过控制脉冲个 数来控制角位移量 从而达到准确定位的目的 同时可以通过控制脉冲频率来 控制电机转动的速度和加速度 从而达到调速的目的 步进电机的特点 1 一般步进电机的精度为步进角的 3 5 且不累积 2 步进电机外表允许的温度高 步进电机温度过高首先会使电机的磁性材料 退磁 从而导致力矩下降乃至于失步 因此电机外表允许的最高温度应取决于 不同电机磁性材料的退磁点 一般来讲 磁性材料的退磁点都在摄氏 130 度以 上 有的甚至高达摄氏 200 度以上 所以步进电机外表温度在摄氏 80 90 度完 全正常 3 步进电机的力矩会随转速的升高而下降 当步进电机转动时 电机各相绕组 的电感将形成一个反向电动势 频率越高 反向电动势越大 在它的作用下 电机随频率 或速度 的增大而相电流减小 从而导致力矩下降 4 步进电机低速时可以正常运转 但若高于一定速度就无法启动 并伴有啸叫声 步进电机有一个技术参数 空载启动频率 即步进电机在空载情况下能够正常 启动的脉冲频率 如果脉冲频率高于该值 电机不能正常启动 可能发生丢步 或堵转 在有负载的情况下 启动频率应更低 如果要使电机达到高速转动 脉冲频率应该有加速过程 即启动频率较低 然后按一定加速度升到所希望的 高频 电机转速从低速升到高速 计量泵的控制系统是由步进电机通过一对减速齿轮带动计量泵的转动丝杠 上下运动 从而达到控制流量的目的 因此 本系统的控制主要是通过向步进 电机发脉冲以控制步进电机的转数来实现 在本控制系统中 可以通过人工输 入所需要的流量值 通过丝杠的位置反应出来 来控制步进电机的脉冲数 也 可以通过外部流量传感器反馈回来的信号 标准 4 20MA 经过 A D 转换后以 自动控制方式来控制步进电机的脉冲数 当采用人工控制时 输入期望数据后 处理器将输入的数据与当前数据相比较 得到相应的动作值 计算出相应的脉 冲数发送给步进电机 通过步进电机正转或反转来达到期望值 在步进启动时 采用加速过程 在即将达到期望值时采用减速过程 使得步进电机能不失步的 稳定运行 另外 在计量泵的泵体上安装了接近开关 当计量泵的丝杠运行到 极限位置时 接近开关向单片机发出高电平是计量泵的丝杠运动停止 以保障 计量泵本体的安全性 在软件设计中 对控制装置也采用软件保护措施 如当 步进电机所处于运动状态或输入值超过系统的最大值时 所输入的命令是无效 的 控制系统硬件电路基本组成控制系统硬件电路基本组成 控制系统采用 AT89C52 做主控单元 通过与 AT89C2051 的串口通信实现 对步进电机的远程控制 控制系统硬件电路的总体结构如下图 图 1 所示 包括 A D 转换电路 AT89C51 单片机系统 AT89V2051 单片机系统和操作 显示 面板等 AT89C52 是一个低电压 高性能 CMOS 8 位单片机 片内含 8k bytes 的可 反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生产 兼容标准 MCS 51 指令 系统 片内置通用 8 位中央处理器和 Flash 存储单元 AT89C52 单片机在电子 行业中有着广泛的应用 AT89C52 为 8 位通用微处理器 采用工业标准的 C51 内核 在内部功 能及管脚排布上与通用的 8xc52 相同 其主要用于会聚调整时的功能控制 功能包括对会聚主 IC 内部寄存器 数据 RAM 及外部接口等功能部件的初始 化 会聚调整控制 会聚测试图控制 红外遥控信号IR 的接收解码及与主 板 CPU 通信等 主要管脚有 XTAL1 19 脚 和 XTAL2 18 脚 为振荡器 输入输出端口 外接 12MHz 晶振 RST Vpd 9 脚 为复位输入端口 外接 电阻电容组成的复位电路 VCC 40 脚 和 VSS 20 脚 为供电端口 分 别接 5V 电源的正负端 P0 P3 为可编程通用 I O 脚 其功能用途由软件 定义 在本设计中 P0 端口 32 39 脚 被定义为 N1 功能控制端口 分 别与 N1 的相应功能管脚相连接 13 脚定义为 IR 输入端 10 脚和 11 脚 定义为 I2C 总线控制端口 分别连接 N1 的 SDAS 18 脚 和 SCLS 19 脚 端口 12 脚 27 脚及 28 脚定义为握手信号功能端口 连接主板CPU 的 相应功能端 用于当前制式的检测及会聚调整状态进入的控制功能 AT89C2051 是美国 ATMEL 公司生产的低电压 高性能 CMOS 8 位单片机 片内含 2k bytes 的可反复擦写的只读程序存储器 PEROM 和 128bytes 的随机数据存 储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生产 兼容标 准 MCS 51 指令系统 片内置通用 8 位中央处理器和 Flash 存储单元 AT89C2051 单片机在电子类产品中有广泛的应用 引脚图如下所示 引脚说明 1 VCC 电源电压 2 GND 地 3 P1 口 P1 口是一个 8 位双向 I O 口 口引脚 P1 2 P1 7 提供内部上 拉电阻 P1 0 和 P1 1 要求外部上拉电阻 P1 0 和 P1 1 还分别作为片内精密 模拟比较器的同相输入 ANI0 和反相输入 AIN1 P1 口输出缓冲器可吸收 20mA 电流并能直接驱动 LED 显示 当 P 口引脚写入 1 时 其可用作输入 端 当引脚 P1 2 P1 7 用作输入并被外部拉低时 它们将因内部的写入 1 时 其可用作输入端 当引脚 P1 2 P1 7 用作输入并被外部拉低时 它们将 因内部的上拉电阻而流出电流 4 P3 口 P3 口的 P3 0 P3 5 P3 7 是带有内部上拉电阻 的七个双向 I O 口引脚 P3 6 用于固定输入片内比较器的输出信号并且它作为一通用 I O 引脚而不可访问 P3 品缓冲器可吸收 20mA 电流 当 P3 口写入 1 时 它们被内部上拉电阻拉高并可用作输入端 用作输入时 被外部时拉低的 P3 口脚将用上拉电阻而流出电流 P3 口还用于实现 AT89C2051 的各种第二功能 如下表所列 引脚口功 能 P3 0RXD 串行输入端口 P3 1TXD 串行输入端口 P3 2INT0 外中断 0 P3 3INT1 外中断 1 P3 4T0 定时器 0 外部输入 P3 5 T1 定时器 1 外部输入 P3 口还接收一些用于闪速存储器编程和程序校验的控制信号 5 RST 复位输入 RST 一旦变成高电平所有的 I O 引脚就复位到 1 当振荡器正在运行时 持续给出 RST 引脚两个机器周期的高电平便可完成 复位 每一个机器周期需 12 个振荡器或时钟周期 6 XTAL1 作为振荡器反相器的输入和内部时钟发生器的输入 7 XTAL2 作为振荡器反相放大器的输出 显示接口的选择 单片机显示接口是控制系统实现实时自动地向操作人员提供必要的状态信息的 途径 它及时向工作人员提供系统运行状态和对操作命令的响应 它是系统实 现交互功能的一种途径 本控制器是采用共阴极 8 段 LED 数码管 A D 转换接口 外部流量传感器反馈回来的电流信号 标准4 20mA 进入到A D转换器以 转换成单片机便于处理的数字信号 在该设计中 采用了美国Ti公司生产的 TLC1549 控制系统的软件程序设计控制系统的软件程序设计 软件设计是为了实现控制系统的各种功能 在满足基本功能要求的前提下 采 用各种有效方式使操作灵活简便 增强系统的稳定性和可靠性 提高系统的抗 干扰能力 根据以上原则 本软件总思路如下 当有键盘或外部的的信号输入时 由计算 出步进电机所要走的步数 此时将串行通信标志位置 1 程序转入串行通信子 程序 将电机所要走的步数传送给 从而完成数据的输入和对电机的控制 程序的总 体流程图如图 2 所示 N Y 图 2 本系统将对泵的流量控制转化为对步进电机的控制 当 流量在泵容量内变 化时 步进电机的脉冲数为 60000 此时步进电机的步距角被细分为 0 18 这种控制的运算方式是相对的 控制系统从一次运行的基础上运行 将当前的 数据与上一次的数据相减 经过转换得出步进电机所发的脉冲方向 加速 减速 开始 关中断 AT89C52 单片机系统初始化 显示 键盘初始化 开中断 传送标志位 传送标志位 转入串行通信子程序 接近开关信号是丝杆的 0 位标志 AT89C2051 上电初始化 电机正转 到 达零位时 接近开关发出信号 触发 AT89C2051 的外部中断程序使电机停转 本系统中所有数据的输入和命令的发送都是由键盘输入的 系统运作时对 输入数据的一种相应 系统设计中 键盘和 LED 显示都是通过对其接口的不断 扫描来实现的 所以 扫描定时器的中断程序设记必不可少 下图 3 为定时器 的中断程序设计流程图 图 3 本系统中涉及到流量数据与数据显示的转化问题 在编程时 用数组 led 3 作 为显示寄存器 分别储存十位个位和十分位的数据内容 用 ss 来储存流量数据 当显示数据向流量数据转换时程序进行如下的运算 将 led 2 中的数据乘以 100 后语 led 1 中的数据乘以 10 后相加 再加上 led 0 中的数据 将加得的数 送到 ss 中 从而得到流量数据 反之除以得到显示寄存器中的值 计算程序如下 If new pos now pos Now pos new pos Bsendto2051 1 Ti now pos led 2 ledtable ti 10 ti 10 led 1 ledtable ti 10 ti 10 led 0 ledtable ti 10 else return 串口通信程序设计 异步通信 它用一个起始位表示字符的开始 用停止位表示字符的结束 其每帧的格式如下 在一帧格式中 先是一个起始位 0 然后是 8 个数据位 规定低位在前 高位在后 接下来是奇偶校验位 能省略 最后是停止位 1 用这种格式表示字符 则字符能一个接一个地传送 在异步通信中 CPU 与外设之间必须有两项规定 即字符格式和波特率 字符格式的规定是双方能够在对同一种 0 和 1 的串理解成同一种意义 原则上 字符格式能由通信的双方自由制定 但从通用 方便的角度出发 一般还是使 用一些标准为好 如采用 ASCII 标准 波特率即数据传送的速率 其定义是每秒钟传送的二进制数的位数 例如 数据传送的速率是 120 字符 s 而每个字符如上述规定包含 10 数位 则传送波 特率为 1200 波特 同步通信 在同步通信中 每个字符要用起始位和停止位作为字符开始和 结束的标志 占用了时间 所以在数据块传递时 为了提高速度 常去掉这些 标志 采用同步传送 由于数据块传递开始要用同步字符来指示 同时要求由 时钟来实现发送端与接收端之间的同步 故硬件较复杂 通信方向传送模式 在串行通信中 把通信接口只能发送或接收的单向传 送办法叫单工传送 而把数据在甲乙两机之间的双向传递 称之为双工传送 在双工传送方式中又分为半双工传送和全双工传送 半双工传送是两机之间不 能同时进行发送和接收 任一时该 只能发或者只能收信息 在串行通信中 收发双方接受的数据速率要有一定的约定 系统通过软件 对 AT89C52 和 AT89C2051 串行口变成可约定四种工作方式 方式 0 1 2 3 本系统选择方式 1 用定时器 T1 产生波特律时 波特率与 T1 的溢出率有关 本系统中采用 22 1184MHZ 的晶振 要产生 19200b s 的波特率 在软件编程 中 定时器 T1 的初始化如下 TMOD TMOD 0X20 TH1 0XED TL1 TH1 ET1 0 TR1 1 AT89C52 和 AT89C2051 程序中各设立一个标志位 分别为 bsendto2051 和 rxdmew 将这两个值都初始化位 0 将 AT89C52 和 AT89C2051 都初始化为串 行方式 1 AT89C52 的串口初始化程序为 SCON 0X50 PCON EA 0 TI 0 AT89C2051 的串口初始化程序为 SCON 0X50 PCON RI 0 ES 0 步进电机控制程序设计 由于步进电机在启动 运转和停止过程中 不能以一个恒定的速度来设计 需 要一定的加速和减速 因此步进电机控制程序中 不仅要控制电机的正转反转 还要控制电机的转速 程序附后 本控制系统采用 AT89C52 做主控单元 通过与 AT89C2051 的串口通信实 现对步进电机的远程控制 硬件设计到软件设计 从而达到控制流量的目的 参考文献 单片机原理及接口技术 余锡存 曹国华 编著 西安电子科技 大学出版社 微型计算机原理与接口技术 冯博琴 吴宁 编著 清华大学出 版社 80C51 单片机 原理 开发与应用实例 于晓东 主编 中国电 力出版社 51 单片机及其 C 语言程序开发实例 戴仙金 主编 清华大学 出版社 步进电机控制程序设计 大致如下 端口宏定义 define IN1 DAT GpioDataRegs GPADAT bit GPIOA0 define IN1 DIR GpioMuxRegs GPADIR bit GPIOA0 define IN2 DAT GpioDataRegs GPADAT bit GPIOA2 define IN2 DIR GpioMuxRegs GPADIR bit GPIOA2 define IN3 DAT GpioDataRegs GPADAT bit GPIOA4 define IN3 DIR GpioMuxRegs GPADIR bit GPIOA4 define IN4 DAT GpioDataRegs GPADAT bit GPIOA6 define IN4 DIR GpioMuxRegs GPADIR bit GPIOA6 define Up Key GpioDataRegs GPEDAT bit GPIOE2 define Down Key GpioDataRegs GPBDAT bit GPIOB8 常量宏定义 define Period 40 周期为 Period 0 5mS 20mS 全局变量定义 函数声明 void Init Port void void Init Timer0 void void Delay 500uS void void Scan Key void void Manage Up void void Manage Down void void Forward Drive void void Reverse Drive void 形式参数 void 返回值 void 函数描述 主函数 void main void InitSysCtrl 系统初始化子程序 在 DSP28 sysctrl c 中 Init Port Init Timer0 while 1 if Up Key 0 Down Key 0 扫描是否按键按下 Scan Key 形式参数 void 返回值 void 函数描述 初始化电机控制端口 void Init Port void EALLOW IN1 DIR 1 IN2 DIR 1 IN3 DIR 1 IN4 DIR 1 EDIS IN1 DAT 0 IN2 DAT 0 IN3 DAT 0 IN4 DAT 0 形式参数 void 返回值 void 函数描述 初始化 Timer0 void Init Timer0 void CpuTimer0Regs PRD all 60000 设置定时器周期 CpuTimer0Regs TPR all 0 CpuTimer0Regs TPRH all 0 CpuTimer0Regs TCR bit TSS 1 停止定时器 形式参数 void 返回值 void 函数描述 延时 0 5mS 时间 void Delay 500uS void CpuTimer0Regs TCR bit TRB 1 定时器重装 CpuTimer0Regs TCR bit TSS 0 启动定时器 while CpuTimer0Regs TCR bit TIF 1 计数完成 CpuTimer0Regs TCR bit TSS 1 停止定时器 形式参数 void 返回值 void 函数描述 扫描键值 void Scan Key void unsigned int i for i 0 i 40 i 键盘消抖动 20mS Delay 500uS if Up Key 0 Manage Up else if Down Key 0 Manage Down while Up Key 0 Down Key 0 形式参数 void 返回值 void 函数描述 按键的处理程序 void Manage Up void 正转 Forward

温馨提示

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

最新文档

评论

0/150

提交评论