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

/*

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语言,模拟风扇控制电路(单片机C程序设计)相关推荐

  1. 51单片机控制步进电机的c语言程序,用AT89C51单片机控制步进电机的汇编源程序...

    描述 下面程序完成的主要功能:实现步进电机的正反转,加速.减速:显示电机转速(转速级别)和工作状态(正转.反转.不转). 源程序 SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~ ...

  2. 单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警

    利用pwm控制led灯光亮度大小.可以显示许多亮度等级 到最低或者最高亮度等级会发出报警.设计思路: LED一般是恒流操作的,如何改变LED的亮度呢?答案就是PWM控制.在一定的频率的方波中,调整高电 ...

  3. 蓝桥杯单片机第七届省赛-模拟风扇控制系统

    九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...

  4. 单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程(附仿真文件+源代码)

    功能:按一下开关后,单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程 单片机控制蜂鸣器唱生日快乐歌曲 程序源代码如下: /* 生日歌 */ #include <reg51.h&g ...

  5. vc6实现用c语言模拟电子琴,用单片机实现模拟电子琴的小制作

    在这个小制作里除了给大家介绍了"mini"模拟电子琴所需的硬件外,还主要介绍了用单片机为控制核心如何控制蜂鸣器演奏音节的基本方法. 实现这个电路的硬件是非常简单的,硬件主要运用了S ...

  6. pic单片机内部时钟校准c语言,实例讲解PIC单片机的时钟设置

    什么时钟? 首先我们先讲讲什么是时钟.时钟就是单片机的心脏.每跳动一下.整个单片机的各个电路就同步的动作一下.就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234....然后我们全部 ...

  7. 彩灯控制单片c语言程序,基于51单片机的led彩灯设计。 9个灯(红绿蓝三色)。按键控制 c语言程序...

    满意答案 yivdi2o28 2014.05.15 采纳率:46%    等级:11 已帮助:4795人 #include<reg52.h> #define uint unsigned i ...

  8. 单片机控制lcd序c语言,51单片机驱动1602液晶的C程序

    # include /***************************************** 电路连接 P1------DB0-DB7 P2.0------RS P2.1------RW ...

  9. 51单片机数码管小数点c语言,求助一个51单片机控制的数码管计算器带小数点功能的...

    #include #define FOSC    12000000                            //--- 宏定义时钟频率 --- //=================== ...

最新文章

  1. android setContentView()
  2. android cmd adb命令安装和删除apk应用
  3. 一个项目从开工到交付使用需要经历的过程
  4. 为什么我们批评C++?又爱又恨的垃圾回收机制
  5. system.gc会立即执行垃圾回收吗_JVM基础到实战03-垃圾回收概念
  6. mysql update emp set_Mysql数据库性能优化一
  7. python 深浅拷贝案例_python(深浅拷贝)
  8. Android系统进程Zygote启动过程的源代码分析(3)
  9. day 61 pymysql
  10. 漂亮好听的蓝牙小音箱,真是郊游好玩伴,Sanag M11体验
  11. 大作业---Android本地音乐播放器开发知识点19145120
  12. 程序员提高工作效率的方法
  13. 华为云服务权限在哪_华为云服务器如何开启密码登录Linux
  14. sudo: no valid sudoers sources found, quitting问题解决方案
  15. egg项目部署及PM2的使用
  16. 【啃书】《智能优化算法及其MATLAB实例》例6.1基本粒子群算法进行sphere函数寻优
  17. Google浏览器清理缓存
  18. 英雄联盟手游正式上线,白拿22个永久英雄11个皮肤,太香了
  19. 《rust死灵书》阅读笔记
  20. Qomo OpenProject Field Test 3发布!

热门文章

  1. PHP多种形式发送邮件
  2. Tomcat 全攻略
  3. 关于ORACLE 语句中,IN 超过1000个的解决方法
  4. 利用open***建立桥接***[zt]
  5. Win2003下Exchange2003部署图解之七
  6. 开源个小工具simple-repo
  7. 关于tcp网络通讯的几个场景的小测试
  8. js list删除指定元素_vue.js
  9. git第一次提交代码至远程仓库步骤
  10. 对象的初始状态(构造函数)