三花电子膨胀阀C51程序(适用于O型和T型)_第1页
三花电子膨胀阀C51程序(适用于O型和T型)_第2页
三花电子膨胀阀C51程序(适用于O型和T型)_第3页
三花电子膨胀阀C51程序(适用于O型和T型)_第4页
三花电子膨胀阀C51程序(适用于O型和T型)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、三花电子膨胀阀C51程序(适用 于O型和T型)三花电子膨胀阀 C51程序(适用于O型和T型)程序说明励磁时序:线圈数据线颜色接线励微状态(天网)励微状态(升代)1234567812345678?1A橙P0.01100000110000011?2D红P0.10111000000001110?3C黄P0.20001110000111000?4F黑P0.30000011111100000对垃的十六进制0x010x030x020x060x040x0C0x080x090x090x080x0C0x040x060x020x030x01导通日勺线圈AADDDCCCFFFAFA JFCFCDCDADA?5B监接

2、电源空AB-LUEECKtLbOWHE 口fGRf¥1变量值:count_ma讷计数脉冲最大值,调零初始设定 560,运行时设定为508,多加8个 脉冲的闭阀动作。ADD_DEC_flag : 1 正转,0反转stopADD_flag为脉冲停止增加标志位,表示计数达到 508时不再继续增加stopDEC_flag为脉冲停止减少标志位,表示计数达到 0时不再继续减小count_num为电子膨胀阀发送的脉冲计数,定义int型,char#大255count8为电子膨胀阀每组数据发送序号count5为电子膨胀阀每组数据发送开度1°计数,1°为5个脉冲定义speed_tim

3、e=20控制膨胀阀的励磁速度,要求 30-90pps,取50pps,则一个 脉冲需要20ms2程序的编写:1 .起点调整方法:(1)将阀全闭并调整起点至A相励磁;P0=0xf0;P0=vavle_excitationcount8;调整至 A相(2)切断电源时:通电后,施加560脉冲来进行闭阀动作;count_max=560(3)控制时:现有开度+ 8脉冲的闭阀动作。count_max=5082 .停止驱动:在停止的励磁相上再施加励磁0.5sec以上后,停止驱动;3 .开始驱动:施加0.5sec以上的励磁于前回停止运转的励磁相上后,使其开始运 转;4 .倒转驱动方向:在倒转前的励磁相上再施加0.

4、5sec以上的励磁,然后进行倒转驱动;5 .开阀激励步骤表1从步骤1到8。6 .关阀激励步骤表1从步骤8到1。7 .步进电机带有永磁铁具有自保持能力,保持开阀不需要通电。头文件vavle.h#ifndef _VAVLE_H_/单片机STC15F2K60S2头文件,可以不再加/定义头文件/延时函数头文件#define _VAVLE_H_#include "stc15f2k60s2.h"入 reg51.h#include "common.h"#include "delay.h"/*T系列电磁阀*#define speed_time 20膨

5、胀阀的励磁速度,要求 30-90pps,取 50pps,一个脉冲需要20ms#define Pulse_max 500全开脉冲#define FirstClosePluse_max 560 关阀时最大脉冲,在 500基础上要多关60#define ClosePluse_max 508 关阀时最大脉冲,在 500基础上要多关 8系列电磁阀F*O*#define speed_time 10膨胀阀的励磁速度,要求 100-250pps,取 100pps,则一个脉冲需要10ms#define Pulse_max 2000全开脉冲#define FirstClosePluse_max 2200 关阀时最

6、大脉冲,在 2000基础上要多关30#define ClosePluse_max 2030 关阀时最大脉冲,在 2000基础上要多关30extern unsigned char speed_time;膨胀阀的励磁速度,要求 30-90pps,取50pps,则一个月冲需要20ms/extern int Pulse_max;全开脉冲extern int OpenPluse_max; 关阀时最大脉冲,在 500基础上要多关60extern int ClosePluse_max; 关阀时最大脉冲,在 500基础上要多关8extern int ClosePluse;於闭脉冲-500 或-2000exte

7、rn int OpenPluse;/全开脉冲 500 或 2000 /extern int Pulse_Init;/int Pulse_max;全开脉冲/int OpenPluse_max; 关阀时最大脉冲,在 500基础上要多关60/int ClosePluse_max; 关阀时最大脉冲,在 500基础上要多关8/int Pulse_Init; /初始化时的脉冲开度 extern unsigned char code vavle_excitation口; /ABCD 四相对应的 I/O 口数据,正转/接线:A-P0.0,D-P0.1,C-P0.2,F-P0.3/*定义变量*/extern i

8、nt count_num; 电子膨胀阀初始化计数/extern unsigned int count_max;/fe子膨胀阀初始化时为 560,初始化完赋值508extern unsigned char count8; 电子膨胀阀每组数据发送计数extern unsigned char count5; 电子膨胀阀每组数据发送开度 1°计数extern unsigned char count8_temp; 8 白计数缓extern unsigned char vavle_flag/发送数据标志位extern unsigned int opening_deg; 开度extern unsi

9、gned char ADD_DEC_flag; /1 正转,0 反转extern unsigned char button_flag; 按钮标志位extern unsigned char stopADD_flag;肺数达至U 500 时不再继续增加extern unsigned char stopDEC_flag;/*声明函数*/void vavle_Init(void);void step_close(void); /关阀,n 为正转圈数void step_open(void); /开阀,n 为反转圈数void calc_opening_deg(void)计算并显示开度#endif子程序 V

10、avle_Control.c/*Copyright, ThunderDays程自名称:(晶振频率12MHz )功能说明:可正常点动加减开度 程序版本:1.0 (2017/07)*/#include "vavle.h"#include <stdio.h>/电子膨胀阀头文件/unsigned char codevavle_excitation=0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09;ABCD 四相对 应的I/O 口数据,正转unsigned char codevavle_excitation=0x08,0x0C,0x04,0x

11、06,0x02,0x03,0x01,0x09;/ABCD 四相对 应的I/O 口数据,正转接线:A-P0.0,D-P0.1,C-P0.2,F-P0.3int count_num=0; 电子膨胀阀脉冲计数,定义int型,char最大255 unsigned int count_max;旭子膨胀阀初始化时为 FirstClosePluse_max 正常闭 阀时为 ClosePluse_maxunsigned char count8=0; /电子膨胀阀每组数据发送计数unsigned char count5=0; 电子膨胀阀每组数据发送开度 1°计数unsigned char count8

12、_temp; /&白计数缓存unsigned char vavle_flag=0;废送数据标志位unsigned int opening_deg=0; 开度unsigned char ADD_DEC_flag=1; /1 正转,0 反转unsigned char button_flag=0; 按钮标志位unsigned char stopADD_flag=0;科数达至U 500时不再继续增加unsigned char stopDEC_flag=0;/*电子膨胀阀初始化void vavlenit(void)初始化电磁阀:关阀发 560个脉冲,至U 0脉冲时,再通8个脉冲。 unsigne

13、d int i;/unsigned int i,N;ADD_DEC_flag=1;标志位置1,说明进行关阀操作/while(count_num<560);count_max=FirstClosePluse_max;P0=0xf0;P0=vavle_excitationcount8;/F始励磁前,在for(i=0;i<FirstClosePluse_max;i+)关阀发 560个脉冲,开度为 112度step_close(); 一P26=1;蜂鸣器count8=0; 初始化完调整到A相stopADD_flag=1;/关阀操彳位为1,说明满开度count_num=508;count_m

14、ax=ClosePluse_max;LED_CLS_n(2);for(i=0;i<Pulsenit;i+)开阀到400个脉冲,在此基础上进行调节 step_open();calc_opening_deg();LED_CLS_n(1);/TR0 = 0; 定时器0关闭DelayMS(500);P0=0x00; 关闭操作*/关阀操作,关1个脉冲/*/ void step_close(void) 关阀,此程序操作开度 1° ADD_DEC_flag=1; 标志位置1,说明进行关阀操作if(stopADD_flag)开阀停止标志位为1时,执行此操作。说明开阀已经开到做大而尽,关阀时清空

15、此标志位stopADD_flag=0;count_num=0; 一if(!stopDEC_flag)P0=vavle_excitationcount8+;P26=0; 蜂鸣器DelayMS(speed_time); /延时 stopADD_flag=0;count_num-;if(count_num<ClosePluse_max) 在阀关至U 0脉冲时再额外通8 个脉冲关闭操作,不计数一一count_num=516;count_num=ClosePluse;stopDEC_flag=1; 全闭标志位,说明膨胀阀已全闭/break;if(count8=8)count8=0;/count500_flag=1;一/*开阀操作,开1个脉冲*/*void step_open(void)开阀,此程序操作开度 1° 一ADD_DEC_flag=0;标志位清零,说明进行开阀操作if(stopDEC_flag)关阀停止标志位为1时,执行此操作。说明关阀已经关到0 ,开阀向清空此标志位stopDEC_flag=0; 因关阀时,多加了 8个脉冲进行关阀,所 以计数值要进行复位为500,在此基础上进行减数操

温馨提示

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

评论

0/150

提交评论