找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2783|回复: 3
打印 上一主题 下一主题
收起左侧

关于基于单片机C52实现的电风扇模拟控制系统 求大佬解救!

[复制链接]
跳转到指定楼层
楼主
ID:358328 发表于 2018-6-25 11:19 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2电风扇模拟控制系统设计
设计内容:
1、3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别
2、每种类型风可以根据按下独立按键次数分为4个档的风力调节。
3、设计风扇的过热保护,用继电器实现。即当风扇运行一段时间后,暂停10秒。
4、其他创新内容(如报警提示)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:365651 发表于 2018-7-5 15:18 | 只看该作者
你好,请问你完成了吗
回复

使用道具 举报

板凳
ID:656845 发表于 2019-12-10 20:14 来自手机 | 只看该作者
同问,请问你完成了吗
回复

使用道具 举报

地板
ID:787925 发表于 2020-6-23 18:52 | 只看该作者
3. 2按键模块驱动程序
#include "head, file.h"
sbit Natural. _wind. button =P2^0;

sbit Ordinary_wind_button=P2^1;

sbit sleep _wind_ button=P2^2;
sbit Time_ button=P3^6;
sbit Shake_ button=P3^7;
void BUTTON_ Config()
{
Natural__wind_ button= 1;
Ordinary__wind_ buttn= 1;
Sleep__wind_ button=1;
Time__button = 1;
Shake__button= 1;
}

3.3 LED指示灯驱动程序
incude "head fle.n"
sbit Natural _wind__ LED=P2^3;
sbit odinary_ wind_ED=P2^4;
sbit Sleep_wind_ LED=P2^5; .
sbit NO_Wind_LED=P2^6;
sbit Buzzer=P0^3;
void GUIDE. _Led__Config()
{
Natural _wind_LED=1;
Ordinary_wind_LED= 1;
Sleep__wind. LED=1;
NO__Wind_ LED=0;
Buzzer = 0;
}
3.4电机驱动程序
#include "head_file.h"
uchar t0, add0;
uchar t1,add1;
sbit EN0=P3^4;
sbit EN1=P3^5;
sbit IN0=P3^0;
sbit IN1=P3^1;
sbit IN2=P3^2;
sbit IN3=P3^3;

void L298_Config()
{
                 t0=50;
                 t1=50;
                 IN0=0;
                 IN1=1;
                 IN2=0;
           IN3=1;

}

void TIM_Config()
{
                TMOD = 0x11;
   THO = (65536-50000)/256;;
TLO = (65536-50000)%256;;
ETO = 1;
TRO = 1;
TH1 = (65536-50000)/256;; .
TL1 = (65536-50000)%256;;
ET1 = 1;
TR1 = 1;
EA= 1;
}
void TIM0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256 ;
if(add0= =100)
{
add0=0;
EN0=1;
}
if(add0= =t0)
EN0=0; .
}
add0++;
}
void TIM1() interrupt 3
TH1=(65536- 50000)/256;
TL1=(65536-50000)%256 ;
if(add1==100)
{
add1=0;
EN1=1;
}
if(add1==t1)
{
EN1=0;
}
add1 ++;

3.3 LED指示灯驱动程序
#include“ head_ file. h"
sbit Natural_ _wind_ LED=P2^ 3:;
sbit 0rdinary_ wind_ LED=P2^ 4:
sbit Sleep_ wind_ LED =P2^ 5:
sbit NO_ _Wind_ LED =P2 6:
sbit Buzzer=P0^ 3:
void GUIDE_ Led_ Conf ig()
{
Natural_ wind_ LED = 1:
0rdinary_ wind_ LED = 1:
Sleep_ wind_ LED = 1:
NO_ Wind_ LED = 0://ID.0. E%uEAA
Buzzer = 0:// . aAu无+ 42 A-
}

3.4电机测温驱动程序
#include“ head_ file.h"
sbitdq=P2^7:
void sdelay (uint i)
{
while(i--):
}
void DS18B20_ Reset()
{
uchar x=0:
dq=1;
sdelay(8) ;
dq=0;
sdelay (80):
dq=1:
sdelay(14) ;
sdelay(20) ;
}
void DS18B20_ Write_ Byte (uchar dat)
{
uchar i=0:
for(i=8:i>0;i--)
{
dq=0;
dq=dat&0x01 :
sdelay(5) :
dq=1;
dat>>=1:
}
}
uchar DS18B20_ Read_ Byte()
{
uchar i=0, dat=0:
for(i=8:i>0;i-)
{
dq=0:
dat>>=1;
dq=1:
if (dq)
dat| =0x80: .
sdelay(4) ;
}
Return(dat);
        }
uint GET Temperature()
uchar a=0, b=0;
uint t=0:
float tt=0;
DS18B20_ Reset() ;
DS18B20_ _Write_ _Byte (0xCC) ://1o, yR0M
DS18B20_ _Write_ _Byte (0x44) ://28 E6IATEX*00
DS18B20_ Reset():
DS18B20_ _Write_ _Byte (0xCC) : .
DS18B20_ Write_ Byte (0xBE) ://91A0Y既E -
a=DS18B20_ Read _Byte0 :
b=DS18B20_ Read_ Byte() :
t=b;
t<<=8;
t=t|a.
tt=t*0.0625:
t= tt*10+0. 5:
re turn(t) ;
}


3.6 LCD显示驱动程序
#include "head_ fle.h"
uchar code table[]="temperature 27'c" ; /IONMAX0A .
uchar code table1[]="status NO Wind" ;
sbit Icdrs=P0^0;        //>A“eE + Ni Onoy%A
sbit Icdwr=P0^1;        //91AD' Oy%A
sbit Icde=P0^2;        //AE-NiOy%A
void LCD1206_ config()
uchar i;//9/" 0詠%0%士8A%
init();
write_ com(0x80);        //0 0eμAiOA
for(i=0;i<16;++)
//i0E%
{
write_ dat(table[i); .
delay(50);        //N6士£_OAOUμ+ %0EUE》AE¥Aa
}
write_ com(0x80+0x40);
for(i=0;<16;i++)
write_ dat(table1[i]);
delay(50);
}
}
**********N6E+X61-Ey*****************/
void delay(uchar x)
uchar ij;
for(i=x;>0;--)
forl(=110;>0j-);
}
*************D”0 A1X 0' **************/
void write_ com(uchar com)
{        // . u816020' %8 IδE%E+日0
P1=com;
lcde=0;
Icdrs=0;
Icdwr=0; .
delay(5); .
lcde=1;
delay(5);
Icde=0;
}
//**************D”ey%YX 0' **************//
void write_ dat(uchar dat)
{
P1=dat;
lcde=0;
lcdrs=1; .
lcdwr=0;
delay(5); .
lcde=1;
delay(5);
Icde=0; .
}
/*********>* x6' Ey"**** **************/
void init()
{
write_ com(0x01); //. |AOEeOA
write_com(0x3f);//i0E%&DOE
write_com(OxOf);//EaEe . K炸Ee0A
write_com(0x06);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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