三花电子膨胀阀C51程序(适用于O型和T型)

上传人:re****.1 文档编号:544089420 上传时间:2024-01-16 格式:DOCX 页数:6 大小:106.02KB
返回 下载 相关 举报
三花电子膨胀阀C51程序(适用于O型和T型)_第1页
第1页 / 共6页
三花电子膨胀阀C51程序(适用于O型和T型)_第2页
第2页 / 共6页
三花电子膨胀阀C51程序(适用于O型和T型)_第3页
第3页 / 共6页
三花电子膨胀阀C51程序(适用于O型和T型)_第4页
第4页 / 共6页
三花电子膨胀阀C51程序(适用于O型和T型)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《三花电子膨胀阀C51程序(适用于O型和T型)》由会员分享,可在线阅读,更多相关《三花电子膨胀阀C51程序(适用于O型和T型)(6页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上三花电子膨胀阀C51程序(适用于O型和T型)程序说明励磁时序:1变量值:count_max为计数脉冲最大值,调零初始设定560,运行时设定为508,多加8个脉冲的闭阀动作。ADD_DEC_flag:1正转,0反转stopADD_flag为脉冲停止增加标志位,表示计数达到508时不再继续增加stopDEC_flag为脉冲停止减少标志位,表示计数达到0时不再继续减小count_num为电子膨胀阀发送的脉冲计数,定义int型,char最大 255 count8为电子膨胀阀每组数据发送序号count5为电子膨胀阀每组数据发送开度1计数,1为5个脉冲定义speed_time=2

2、0,控制膨胀阀的励磁速度,要求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.5sec以上的励磁

3、,然后进行倒转驱动;5.开阀激励步骤表1从步骤1到8。6.关阀激励步骤表1从步骤8 到1。7.步进电机带有永磁铁具有自保持能力,保持开阀不需要通电。头文件vavle.h#ifndef _VAVLE_H_#define _VAVLE_H_#include stc15f2k60s2.h / 单片机STC15F2K60S2头文件,可以不再加入reg51.h#include common.h / 定义头文件#include delay.h / 延时函数头文件 /*T系列电磁阀*#define speed_time 20 /膨胀阀的励磁速度,要求30-90pps,取50pps,则一个脉冲需要20ms#d

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

5、_max 2030 /关阀时最大脉冲,在2000基础上要多关30*/extern 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或-2000extern int OpenPluse;/全开脉冲500或2000/

6、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 int count_num;/电子膨胀阀初始化计数/extern unsigne

7、d int count_max;/电子膨胀阀初始化时为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 unsigned char ADD_DEC_flag;/1正转,0反转extern unsigned

8、char button_flag; /按钮标志位extern unsigned char stopADD_flag;/计数达到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子程序Vavle_Control.c/*Copyright, ThunderDays 程序名称: (晶振频率12

9、MHz) 功能说明: 可正常点动加减开度 程序版本:1.0 (2017/07)*/#include vavle.h / 电子膨胀阀头文件#include /unsigned char code vavle_excitation=0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09;/ABCD四相对应的I/O口数据,正转unsigned char code vavle_excitation=0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09;/ABCD四相对应的I/O口数据,正转/接线:A-P0.0,D-P0.1,C-P0.2,F-P0.3i

10、nt 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_temp; /8拍计数缓存unsigned char vavle_flag=0;/发送数据标志位unsigned int opening_deg=0;/开度unsign

11、ed char ADD_DEC_flag=1;/1正转,0反转unsigned char button_flag=0; /按钮标志位unsigned char stopADD_flag=0;/计数达到500时不再继续增加unsigned char stopDEC_flag=0;/*电子膨胀阀初始化void vavle_Init(void)/初始化电磁阀:关阀发560个脉冲,到0脉冲时,再通8个脉冲。 unsigned int i; /unsigned int i,N; ADD_DEC_flag=1; /标志位置1,说明进行关阀操作 /while(count_num560); count_max

12、=FirstClosePluse_max; P0=0xf0; P0=vavle_excitationcount8;/开始励磁前,在 for(i=0;iFirstClosePluse_max;i+)/关阀发560个脉冲,开度为112度 step_close(); P26=1; /蜂鸣器 count8=0;/初始化完调整到A相 stopADD_flag=1;/关阀操作位为1,说明满开度 /count_num=508; count_max=ClosePluse_max; LED_CLS_n(2); for(i=0;iPulse_Init;i+)/开阀到400个脉冲,在此基础上进行调节 step_op

13、en(); 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时,执行此操作。说明开阀已经开到做大开度,关阀时清空此标志位 stopADD_flag=0; /count_num=0; if(!stopDEC_flag) P0=vavle_excitationcount8+;P26=0; /蜂鸣器 DelayMS(speed_time); /延时

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号