本帖最后由 meetof4 于 2012-12-20 19:49 编辑
本帖最后由 meetof4 于 2012-12-20 00:46 编辑
小弟正在做一個用pwm控制風扇速度的功能, 用兩個button 分別控制風扇加速和減速
在網上找了很多資料
也用了仿真的軟件來測試成果 ,測試結果表示可行
但當實際在麵包版上測試, 就完全沒有反應, 風扇動也不動
以下是code
#include <reg52.h>
unsigned char timer1;
int time;
sbit PWM=P1^2;
void system_Ini()
{
TMOD = 0x10;
TH1 = 0xfe;
TL1 = 0x33;
TR1 = 1;
IE = 0x8A;
}
/**************************************************
Function: delay_us();
Description:延时 单位:微秒
/**************************************************/
void delay_us(unsigned int x)
{
unsigned int i=0;
for(i=0;i<x;i++)
{;}
}
main()
{ time=50;
system_Ini();
while(1)
{
P2|=0xff;
if(P2==0xfe&&time<100)
{delay_us(1200);
if(P2==0xfe)
time+=1;}
if(P2==0xfd&&time>0)
{delay_us(1200);
if(P2==0xfd)
time-=1;}
if(timer1>100)
timer1=0;
if(timer1<time)
PWM=0;
else
PWM=1;
}
}
/*************************************
[ t1 (0.5ms)中断] 中断中做 PWM 输出
------------1000/(0.02ms*250)=200Hz
*************************************/
void T1zd(void) interrupt 3 //3 为定时器1的中断号
{
TH1 = 0xfe; //11.0592
TL1 = 0x33;
timer1++;
}
因為老師表示再做不出成果就會fail我
所以 跪求各位前輩們出手相救 謝謝! |
|