全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > LED照明 >

求一种基于51单片机的太阳能路灯控制系统设计方

时间:2023-08-21 16:21

人气:

作者:admin

标签: 单片机  一种      基于 

导读:求一种基于51单片机的太阳能路灯控制系统设计方案-太阳能路灯控制系统:51单片机练手项目,简单可复制。 带太阳能充电功能,oled显示, 白天根据光强判断开关灯晚上开灯,二级菜单...

简介:太阳能路灯控制系统51单片机练手项目,简单可复制。 带太阳能充电功能,oled显示, 白天根据光强判断开关灯晚上开灯,二级菜单可以设置时间日期。 太阳能充电:传统锂电池充电芯片TP4056,使用6V太阳能板,给3.7V18650电池充电。

经过资料显示 18650电池尽量不要让其电压低于2.7V,所以后级供电电路(5V升压电路)MT3608启动引脚EN脚 连接了LM393制成的电压比较器。和电池电压比较,电池电压低于2.7v,MT3608启动脚拉低关断。

供电:使用升压芯片MT3608给单片机供电,让电池电压稳定在5.1V,来提供稳定电压。

#include "reg52.h"

#include "oled.h"

#include "bmp.h"

#include

#include "ds1302.h"

#include "AT24C02.h"

sbit key_s1 = P3^2;//独立按键Set

sbit key_s2 = P3^3;//独立按键Ok

sbit Light_In = P2^0;//光传感器输入端子

sbit Light_Out = P1^6;//亮灯指示灯

sbit Spdt_Out = P1^7;//继电器输出

//串口初始化

u8 Light_flag=0,Show_mode=0;

extern u8 temp[7];

//extern u8 temp_f[7];

void UARTInit()

{

SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可变

TR1 = 1;//启动定时器1

TMOD |= 0x20;//定时器1,工作模式2 8位自动重装

TH1 = 0xfd;

TL1 = 0xfd;//设置比特率9600

}

void Set_Light(){

if(temp[2]>=6&&temp[2]<=23)

{if(Light_In)

{

delay_ms(5);

if(Light_In)

{Light_flag=1;

Light_Out=1;

Spdt_Out=1;

}

}

else

{

Light_flag=0;

Light_Out=0;

Spdt_Out=0;}

}

else {Light_flag=1; Light_Out=1;Spdt_Out=1;}

}

int main(void)

{

u8 set_flag=0,set_ok=0,set_menu=0;

OLED_Init(); //初始化OLED

OLED_Clear(); //OLED清屏

//UARTInit(); //串口初始化

Read_Time();

//DS1302Init(); //DS1302初始化

OLED_ShowString(0,4,"LightMode:",16);

if(Light_flag){OLED_ShowString(80,4,"Open",16);}

else{OLED_ShowString(80,4,"Close",16);}

Light_Out=0;

Spdt_Out=0;

//delay_ms(200);

while(1)

{

if(key_s1 == 0)//判断Set是否被按下

{

delay_ms(2);//按键消抖

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信