变频器的频率给定和运行程序有几种方式及相关参数

变频器的频率给定和运行程序有几种方式及相关参数,第1张

频率给定:面板直接给定、通过通信协议远程上位机给定、倘若变频器允许,还可以通过模拟量给定。

运行程序有几种方式,我没有完全弄清楚,一般变频器的运行模式有:V/F启动、V/F分离模式、叠频模式等。

你应该是T0做,T1另外有用吧?我花了一个小时,调了一个,只计算了频率,频率低是1秒计算一次,你可以改,部分地方应该可以优化。你试试,如果可以可以把keil的项目打包发给你。

程序如下:

/*

testT0T1.c

芯片:AT89C51

晶振:12MHz

*/

#include <reg51.h>

bit g_bitNewF//计算了新频率

unsigned int g_Count

unsigned int g_Timer200

unsigned long frequency

void Init(void)

{

EA = 0

//T0使用模式3,TL0计数,

TMOD = 0x07

TL0 = 0x00

//TH0计时200us

TH0 = 0x38

//启动

TF0 = 0

TF1 = 0//可以不清这两个

TR0 = 1

TR1 = 1

EA = 1

ET0 = 1

ET1 = 1

}

void main (void)

{

g_bitNewF = 0

g_Timer200 = 0

Init()

while(1)

{

if (g_bitNewF)

{

g_bitNewF = 0

//display or do something else.

}

}

}

//计数满中断

void T0_Int(void) interrupt 1

{

TL0 = 0x00

g_Count += 255

if (g_Count >65535-255) //频率大提前计算

{

g_bitNewF = 1

if (g_Timer200<10){return}//误差太大,请自己增加出错处理

frequency = ((long)g_Count*5000)/g_Timer200

}

}

//定时到中断

void T1_Int(void) interrupt 3

{

TH0 = 0x46

g_Timer200++

if (g_Timer200 == 5000)

{

g_Timer200 = 0

g_bitNewF = 1

frequency = g_Count + TL0

TL0 = 0

g_Count = 0

}

}

//end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11468227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存