
基于51单片机的C语言程序实现电机转速测量及PWM控制
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目采用51单片机和C语言编程技术,实现了对直流电机转速的精确测量,并通过PWM信号进行速度调控,展示了嵌入式系统在电机控制领域的应用。
部分源程序如下:
//=================测速计数处理===================================
void timer1() interrupt 3 {
time1++;
}
//+++++++++++++++++测速转换处理+++++++++++++++++++++++
void int1() interrupt 2 {
long kA = 0;
uchar temp;
TR1 = 0;
if(SP_bit == 0)
{TR1 = 1; SP_bit = 1;}
else
{kA = time1 * 65536 + TH1 * 256 + TL1;
temp = 2500000 / kA;
SP_out = temp;
TH1 = 0x00;
TL1 = 0x00;
time1 = 0x00;
TR1 = 0;
SP_bit = 0;}
}
//================PWM处理与数据采集处理函数===================
void PWM_generator() interrupt 1 using 0 {
if(flag == 1)
{a--;
if(a == 0)
{flag = 0;
if(K_B_bit == 1) a = UK;
else a = SP_in;}
else OUT_PWM = 0;}
if(flag == 0)
{b--;
if(b == 0)
{flag = 1;
if(K_B_bit == 1) b = 0xff - UK;
else b = 0xff - SP_in; }
else OUT_PWM = 1;}
m++;
if(m == 20)
{m = 0;
n++;
if(n == 40)
{n = 0; EK0 = SP_in - SP_out;
PI_bit = 1;}
}
}
全部评论 (0)


