• 大小: 104KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-12-02
  • 语言: C/C++
  • 标签:

资源简介

部分源程序如下: //=================测速计数处理=================================== 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

评论

共有 条评论

相关资源