-
大小: 104KB文件類型: .zip金幣: 2下載: 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
- 上一篇:BCH編譯碼c語言實現
- 下一篇:定義和使用分數類fraction
評論
共有 條評論