资源简介
部分源程序如下:
//=================测速计数处理===================================
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;
}
}
}
代码片段和文件信息
//=====================================
//直流风扇电机转速测量与PWM控制
//=====================================
#include
#include
#include
#include “LCD1602.h“
#include “24C02.h“
bit flag=1;
bit SP_bit;
bit STRT_STOP;
bit CH_SPE_bit;
bit PI_bit=1;
bit K_B_bit=1;
sbit OUT_PWM=P3^7;
sbit B_bit=P2^6;
sbit K_bit=P2^7;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
unsigned char kpki;
unsigned char UK;
signed int EK0EK1;
unsigned char EK_num[4];
unsigned char SP_inSP_out;
unsigned char ab;
unsigned char m=0n=0;
unsigned char time1;
//--------------------------------------------------
//================5毫秒延时=========================
void delay5ms(void)
{
unsigned char ij;
for(i=10;i>0;i--)
for(j=248;j>0;j--);
}
//==================键盘处理==================================
unsigned char GeyKey()
{ unsigned char Key;
P10=1;
P11=1;
P12=1;
P13=1;
Key=P1&0x0f;
if(Key!=0x0f)
{
delay5ms( );
Key=P1&0x0f;
if(Key!=0x0f)
while((P1&0x0f)==0x0f);
do{ delay5ms( );}
while((P1&0x0f)!=0x0f);
switch(Key)
{ case 0x0e:
Key= ‘S‘;
break;
case 0x0d:
Key= ‘+‘;
break;
case 0x0b:
Key= ‘-‘;
break;
case 0x07:
K_B_bit=~K_B_bit;
if(K_B_bit==1) {B_bit=0;K_bit=1;}
else {K_bit=0;B_bit=1;}
break;
}
return (Key);
}
return 0;
}
//============键值处理============================
void Keycl()
{ unsigned char Key;
Key=GeyKey();
if(Key!=0)
{
switch(Key)
{ case ‘S‘:
{ if(STRT_STOP==0)
{ TR0=1;
TR1=0;
EA=1;
STRT_STOP=1;
}
else
{ TR0=0;
TR1=0;
EA=0;
STRT_STOP=0;
if(CH_SPE_bit==1)
{Write_one_Flash ( 0x00SP_in);
CH_SPE_bit=0;
SP_out=0;
}
}
break;
}
case ‘+‘:
{ if(SP_in<254) {SP_in++;CH_SPE_bit=1;}
else SP_in=254;
break;
}
case ‘-‘:
{ if(SP_in==0) SP_in=0;
else {SP_in--;CH_SPE_bit=1;}
break;
}
}
}
}
//=================测速计数处理===================================
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++;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-04-04 17:45 电机转速测量与PWM控制\
文件 136413 2010-03-27 14:54 电机转速测量与PWM控制\Last Loaded 直流风扇电机转速测量与PWM控制.DBK
目录 0 2012-04-04 17:45 电机转速测量与PWM控制\keil\
文件 5662 2010-11-17 13:49 电机转速测量与PWM控制\keil\24C02.h
文件 4140 2011-01-28 20:56 电机转速测量与PWM控制\keil\LCD1602.h
文件 5115 2002-04-16 14:32 电机转速测量与PWM控制\keil\STARTUP.A51
文件 11665 2010-12-24 13:45 电机转速测量与PWM控制\keil\STARTUP.LST
文件 749 2010-12-24 13:45 电机转速测量与PWM控制\keil\STARTUP.OBJ
目录 0 2012-04-04 17:45 电机转速测量与PWM控制\keil\include\
文件 5662 2010-12-24 13:45 电机转速测量与PWM控制\keil\include\24C02.h
文件 4140 2011-01-28 20:56 电机转速测量与PWM控制\keil\include\LCD1602.h
目录 0 2012-04-04 17:45 电机转速测量与PWM控制\keil\source\
文件 4771 2010-11-17 15:38 电机转速测量与PWM控制\keil\source\直流风扇电机转速测量与PWM控制.c
文件 25345 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制
文件 35437 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.M51
文件 2209 2011-01-28 21:01 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.Opt
文件 2318 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.Uv2
文件 5537 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.hex
文件 106 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.lnp
文件 10667 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.lst
文件 29201 2010-12-24 13:45 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.obj
文件 212 2011-01-28 21:01 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制.plg
文件 2210 2010-11-17 15:24 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制_Opt.Bak
文件 2211 2010-11-17 15:24 电机转速测量与PWM控制\keil\直流风扇电机转速测量与PWM控制_Uv2.Bak
文件 136413 2010-03-27 18:42 电机转速测量与PWM控制\直流风扇电机转速测量与PWM控制.DSN
文件 1604 2010-06-29 11:15 电机转速测量与PWM控制\直流风扇电机转速测量与PWM控制.PWI
- 上一篇:BCH编译码c语言实现
- 下一篇:定义和使用分数类fraction
评论
共有 条评论