矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 10002|回复: 31

8脚单片机闲置着也蛋疼,索性PWM输出控制直流电扇

[复制链接]
     
发表于 2013-6-12 12:29:25 | 显示全部楼层 |阅读模式
8脚单片机闲置着也蛋疼,索性PWM输出控制直流电扇




未命名.PNG

/************************************
系统:STC15F104E  4KB FLASH+1KB EEPROM

**************************************/
#include <AT89X52.H>

#define  OUT  P3_3         //PWM  500HZ
#define  LED0  P3_2         //        系统指示
#define  BEEP  P3_4         //蜂鸣器

#define  K1    P3_0
#define  K2    P3_1

//#define  GND   P0_0
#define  PWM_SUM   100
#define   TH0_TEMP   0xef
#define   TL0_TEMP   0xef

unsigned char pwm_vule,pwm_time;

/************************************************

****************************************************/
void sys_int(void)
{

  TMOD=0x02;//定时器0,,8位定时
  TH0=TH0_TEMP;
  TL0=TL0_TEMP;
  ET0=1;
  EA=1;
  TR0=1;
  //GND=0;

  pwm_vule=100;
  pwm_time=0;

}


/************************************************

****************************************************/
void timer0(void) interrupt  1  
{
  //TH0=TH0_TEMP; //  0.02ms定时中断
  //TL0=TL0_TEMP;
  static int t300ms,t2000ms,t_led200ms; //按键定时,系统显示定时


  if(pwm_time++>WM_SUM ) //pwm定时
  {
  pwm_time=0;
  }


  if(t2000ms++>(pwm_vule*500) )
  {
  LED0=~LED0;//转速指示灯
  t2000ms=0;
  }

if(t_led200ms++>15000)
{
   BEEP=1;
   t_led200ms=0;

}


  if( t300ms++>25000)   //定时按键
     {
         t300ms=0;

         

         if((0==K1)&& (pwm_vule<WM_SUM))
           {
           t_led200ms=0;
           BEEP=0;//按键音

           pwm_vule+=10;
           }
         else  if((0==K2)&& (pwm_vule>0))
            {
           t_led200ms=0;
         BEEP=0;//按键音

           pwm_vule-=10;
           }
         }


if(pwm_time>=pwm_vule)         //PWM输出
    {
        OUT=0;
        }
else
    {
         OUT=1;                        //快
        }

}


main()
{
   sys_int();//初始化

while(1)
  {

   }


}

评分

1

查看全部评分

     
发表于 2013-6-12 13:29:27 | 显示全部楼层
9014能工作在48V?
回复 支持 反对

使用道具 举报

     
发表于 2013-6-12 18:41:22 | 显示全部楼层
48V电源哪里来呢
回复 支持 反对

使用道具 举报

     
发表于 2013-6-12 19:18:46 | 显示全部楼层
牛人!俺就是学不了这个,记性太差了
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2013-6-12 22:37:57 | 显示全部楼层
开始游戏 发表于 2013-6-12 18:41
48V电源哪里来呢

这个是在维修电信的交换机之类的东东所用的电源(48V) ,板子原本是插入机框里工作的额,维修时需要拔出来,此时脱离了机

箱风扇的散热作用,维系定位时板子温升很高,因此用这个小电路DIY一个可按键调速的电路.  其实风扇也已用9 、12、 24  、36V

都可以的,没啥讲究的.  像电脑主板的风扇一般就是12V的.
回复 支持 反对

使用道具 举报

     
发表于 2013-6-14 08:46:19 | 显示全部楼层
PWM高速效果还是很不错的,加上自动控制转速就更好了
回复 支持 反对

使用道具 举报

     
发表于 2013-6-15 01:18:36 | 显示全部楼层
很好,可以用在很多小家电控制方面。
回复 支持 反对

使用道具 举报

     
发表于 2013-6-15 08:52:38 | 显示全部楼层
手中也有几片stc15f104e,也在想着如何利用呢。
回复 支持 反对

使用道具 举报

发表于 2013-6-15 09:51:00 | 显示全部楼层
这个帖子很不错。我也喜欢这个单片机。小巧玲珑。

唯一缺点是没adc。为此我还专门用电阻电容加脉冲来做成adc。还能用。
回复 支持 反对

使用道具 举报

     
发表于 2013-6-16 14:10:00 | 显示全部楼层
呵呵,这个蛮强大.
回复 支持 反对

使用道具 举报

     
发表于 2013-6-16 16:34:20 | 显示全部楼层
越南河粉 发表于 2013-6-15 09:51
这个帖子很不错。我也喜欢这个单片机。小巧玲珑。

唯一缺点是没adc。为此我还专门用电阻电容加脉冲来做成 ...

电阻电容加脉冲来做成ADC?
回复 支持 反对

使用道具 举报

     
发表于 2013-6-16 19:48:50 | 显示全部楼层
这个做的不错,不知道可靠不
回复 支持 反对

使用道具 举报

发表于 2013-6-17 08:32:31 | 显示全部楼层
蓝绿黄 发表于 2013-6-16 16:34
电阻电容加脉冲来做成ADC?

精确度不高,不过也能用。

电压经过一电阻电容接地。电阻电容中间接到端口。

端口设定成开漏。

先输出0,让电容放电。然后输出1(变成开漏),计算充电时间,就能算出输入电压。
回复 支持 反对

使用道具 举报

     
发表于 2013-6-20 20:50:55 | 显示全部楼层
越南河粉 发表于 2013-6-17 08:32
精确度不高,不过也能用。

电压经过一电阻电容接地。电阻电容中间接到端口。

那是ADC还是DAC啊?
回复 支持 反对

使用道具 举报

发表于 2013-6-21 08:49:19 | 显示全部楼层
蓝绿黄 发表于 2013-6-20 20:50
那是ADC还是DAC啊?

前面说得很清楚,是adc。不过所有的adc 都是 dac 加一个比较器而已。

所以基本上也是这个原理。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-5-1 07:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表