模拟风扇控制电路(单片机C程序设计)

发布者:Coboro最新更新时间:2016-09-22 来源: eefocus关键字:模拟风扇  控制电路  单片机 手机看文章 扫描二维码
随时随地手机看文章
/*

模拟风扇控制电路
1、定时设置每按一下定时值在0分---2分----4分---6分----8分--10循环
2、主电机工作方式有三种,A、PWM为三分之一
   B、PWM为二分之一  C、PWM为三分之二;
3、显示第一位显示风类,第二三四位动态显示定时时间;
4、摇头电机每30秒正转30秒反转;
==================================================
*/
#include
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[]={0x3f,0x06,0x5b,
            0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; 
uchar flag,flag1,flag2,flag3,fen,miao,flagfen;
uchar fenglei1,dingshi1,yaotu1;
uchar num1,num2,temp;
uint aa,bb,cc;
sbit fenglei=P3^0;
sbit dingshi=P3^1;
sbit yaotu=P3^2;
sbit wei1=P2^3;
sbit wei2=P2^4;
sbit wei3=P2^5;
sbit wei4=P2^6;
sbit pwmh1=P3^3;
sbit pwml1=P3^4;
sbit pwmh2=P3^5;
sbit pwml2=P3^6;
void delay(uint z);
void keyscan();
void disp();
void intc();
void dispfenlei();
void dispdingshi();
void dianji1();
void dianji2();
//=====================
void main()
{
 intc();
 while(1)
  {
   keyscan();
            dispfenlei();
   dispdingshi();
   dianji1();
   //dianji2();
  
  }
}
//=================
void intc()
{
 TMOD=0x11;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 TH1=(65536-50000)/256;
 TL1=(65536-50000)%256;
 ET0=1;
    ET1=1;
 EA=1;
 TR1=1;
    pwml1=0;
    pwml2=0;
}
//======================
void timer0()
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 aa++;
 if(aa==20)
     {
  aa=0;
  miao++;}
 if(miao>60)
    { miao=0;
  fen++;flagfen=1;}
    if(fen==dingshi1)
      { TR0=0;
       miao=0;
       fen=0;
       aa=0;}


  
}
//=================
void timer1()
{
 TH1=(65536-1000)/256;
 TL1=(65536-1000)%256;
 aa++;
 if(aa==10)
     {aa=0;bb++;}
    if(bb==100)
       {bb=0;cc++;}
    if(cc==60)
       cc=0;

 

  
}
//==============
void keyscan()
{
   if(fenglei==0)
 delay(100);
 if(fenglei==0)
  {
  while(!fenglei);
  fenglei1++;
        if(fenglei1>2)
   fenglei1=0;
   }
 if(dingshi==0)
 delay(100);
 if(dingshi==0)
  {
  while(!dingshi);
         TR0=1;
  dingshi1++;
         temp=dingshi1;
        if(dingshi1>5)
   dingshi1=0;
   }
 if(yaotu==0)
 delay(100);
 if(yaotu==0)
  {
  while(!yaotu);
  yaotu1=~yaotu1;
     }
 if(dingshi1!=0)
      TR0=1;
      else
      TR0=0;

}

//============
void dispfenlei()

 
 P0=table[fenglei1];
 P2=0xf7;
 delay(5);
}

//=============
void dispdingshi()
{ if(flagfen==1)
     {flagfen=0;
       if(temp==0)
         temp==0;
        else
      temp--;
      }
 P2=0xfb;
 P0=table[0];
 P2=0xfb;
 delay(5);
    P0=0xff;
 
 P0=table[(temp*2)/10];
 P2=0xfd;
 delay(5);
 P0=0xff;

 P0=table[(temp*2)%10];
 P2=0xfe;
 delay(5);
 P0=0xff;
}
//===============
void delay(uint z)
{
 uint x;
 uchar y;
   for(x=0;x    for(y=0;y<100;y++);
}
//=========风机电机===============
void dianji1()
{
   switch(fenglei1)
    {
 case 0: if(aa<=3)
             pwmh1=1;
            if(aa>3&&aa<=10)
             pwmh1=0;break;
    case 1: if(aa<=5)
             pwmh1=1;
            if(aa>5&&aa<=10)
             pwmh1=0;
 case 2: if(aa<=7)
             pwmh1=1;
            if(aa>7&&aa<=10)
             pwmh1=0;
    
 }

}

//=========摇头电机==================
void dianji2()
{
         if(yaotu1==1)
            {if(cc<30) 
              pwmh2=1;
            else
             pwmh2=0;}
          else 
             pwmh2=0;
      
}

关键字:模拟风扇  控制电路  单片机 引用地址:模拟风扇控制电路(单片机C程序设计)

上一篇:89S51输出信号来驱动一个步进马达c程序
下一篇:8位数码管动态显示时间,可调节,调节的数闪烁显示

推荐阅读最新更新时间:2024-03-16 15:11

dth11温湿度传感器的单片机程序
#include reg52.h #define uint unsigned int #define uchar unsigned char typedef bit BOOL ; sbit io = P1^0 ; sbit rs = P2^4 ; sbit rw = P2^5 ; sbit ep = P2^6 ; uchar data_byte; uchar RH,RL,TH,TL; / ************************************************延时模块***************************************************/ void delay(uchar m
[单片机]
一个51单片机实现数字时钟(1602显示)
用单片机实现数字时钟,关于时间显示,是用的1602液晶,C51单片机,然后再加一个定时器,每到一秒就动态的更新一下液晶的时间显示,在更新的时候也要计算相应的分针和时针的变化,还要注意边界问题.为了能够达到一个最好的效果,我还加了一个键盘扫描,用到了3个键,分别为功能键,增1,减1来实现用户自定义时间. 在实现过程中,用到了单片机的中断系统的相关知识,还有定时器,液晶显示,键盘的动态扫描,都是以前的知识,没什么难度. 程序如下,可以正常运行. C代码 #i nclude reg52.h #define uint unsigned int #define uchar unsigned char sb
[单片机]
LCD驱动器AY0438及其与PIC单片机的接口设计
1. 概述 AY0438是Microchip公司生产的一种完整的MCOS显示驱动器,可在单片机或微处理器的控制下直接驱动 LCD显示模块。它结构简单,使用方便。特别是在驱动32段LCD显示器方面,更能显示出它的精巧和方便。AY0438只用三条控制线即可连续不断地向与它相连的LCD显示器输送驱动信号。该器件内含32位锁存器,它既可对被显示的数据进行锁存,也可以锁存微处理器的状态或波形。 AY0438能够驱动任何标准的LCD显示器,也可以驱动与标准LCD显示器相类似的显示器相类似的显示模块。可显示用于7段、9段、14段或16段字符、十进制数的“+”“- ”号以及其它特殊字符。如果需要显示更多段位的数据或字符,则可将
[单片机]
LCD驱动器AY0438及其与PIC<font color='red'>单片机</font>的接口设计
MCS-51单片机实用子程序库(三)
(23)标号: BHD2 功能:双字节BCD码小数转换成双字节十六进制小数 入口条件:待转换的双字节BCD码小数在R4、R5中。 出口信息:转换后的双字节十六进制小数在R2、R3中。* 影响资源:PSW、A、R2~R6 堆栈需求: 2字节 BHD2: MOV R6,#10H ;准备计算两个字节小数 BHD3: MOV A,R5 ;按十进制倍增 ADD A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ;将进位标志移入结果中 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A DJNZ R6,BHD3 ;共计算16bit小数 MOV
[单片机]
如何利用STM32单片机串口发送字符串
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str 需要发送的字符串 #include “stm32f10x.h” void Usart_SendString(USART_TypeDef* US
[单片机]
超声波导盲器的设计
1 引言 盲人在独自行走时主要依靠导盲装置。最简单常用的装置是普通的手杖,用它在地面上敲击,可帮助盲人发现0.5米以内的障碍物。它的主要缺点是不能发现较远一点的障碍物以及空中突出的障碍物。例如,在相当于头部、胸的位置悬挂或突出的物体。另外,盲人还可以利用导盲犬带路,但是不易训练且成本较高。为了更好的帮助盲人行走, 许多国家都研究和生产了各种电子导盲装置,但大多成本较高,如各类导盲机器人及其它电子装置。本文提出了一种用单片机开发的超声波导盲装置的设计方案,它具有低成本、实用和精确的特点。 2 导盲装置的功能设计及系统组成 导盲装置主要由超声波探头、单片机以及测控及处理电路、按键、蜂鸣器等组成,可以放在包中,或安装在帽子上、手杖
[单片机]
超声波导盲器的设计
基于单片机的工频相角源
0概述 具有一定相位差的两列正弦信号(简称相角源),在电力系统各种计量仪表的自动化校验与继电保护中使用的继电器的检验电源等领域中有着广泛的使用,为此,我们设计了一种工频相角源,该相角源的设计方法也是目前国内外电力系统及其他一些行业正积极推广的新技术,它以单片机为控制核心,通过间接频率合成器 (IS)改变信号的频率,通过数字波形发生器产生两列信号并实现数字调角,通过程控衰减器实现幅度调整。总体框图如图1所示,可实现的技术指标如下:频率范围为1Hz~1kHz,最小步长为1Hz,相角范围为0°~360°,最小步长为0.5°,电压有效值范围为0~10V,调整的最小步长为0.01V。 1间接频率合成器(IS) 在相角源
[单片机]
基于<font color='red'>单片机</font>的工频相角源
单片机上实现动态加载功能
本项目是一个在单片机(如:STM32)上实现动态加载功能的函数库,与Windows中的dll,Linux中的so类似,可以将代码动态地从其他的存储介质,动态加载到RAM中。 软件架构 本项目文件夹有三个,其中common存储了用于生成可重定位的.axf文件的工程与动态加载器工程交互用的函数,src提供动态加载器的源码,rel_axf_project_template提供了一个简单的可重定位的.axf文件的工程示例,example.c是一个简单的使用示例,所有文件的主要功能如下: /common/dl_extern_lib.h 描述了app程序用于调用host程序的函数向量表的基地址,以及相关的一些宏定义 /common/dl_
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved