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

发布者:温馨生活最新更新时间:2023-09-25 来源: elecfans关键字:51单片机  太阳能路灯  控制系统 手机看文章 扫描二维码
随时随地手机看文章

简介:太阳能路灯控制系统: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);//按键消抖


关键字:51单片机  太阳能路灯  控制系统 引用地址:基于51单片机的太阳能路灯控制系统设计方案

上一篇:如何利用MCS-51单片机对周期波频率进行测量
下一篇:采用AT89S52和VC++的实现步进电机实时显示控制系统设计

推荐阅读最新更新时间:2024-11-02 14:30

如何实现C8051单片机的精确延时
在C里写的代码: delay=0x64; while(--delay); 编译出来的汇编源代码是这样的: ;SOURCELINE#62 00107F64MOVR7,#064H;2B,2CLK 0012?C0006: ;SOURCELINE#63 0012DFFEDJNZR7,?C0006;2B,2/3CLK 如果我们采用24MHZ的晶振,每个时钟周期是41.6ns那么上面的延时语句的延时精度可以是41.6×8/3=111ns,已经足够精确了。 如果我们要产生xns的延时,只要代入计算公式:(x-83.2)/27.7得到delay的初始值就可以了!!
[单片机]
51单片机学习:步进电机实验
实验名称:步进电机实验 接线说明: 实验现象:下载程序后,当按下KEY1键可调节电机旋转方向;当按下KEY2键,电机加速; 当按下KEY3键,电机减速 注意事项:将步进电机红色线对接到“步进电机模块”输出端子J47的5V上,其它相序依次接入。 ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //定义ULN2003控制步进电机管脚 s
[单片机]
阀门现场总线控制系统简介
阀门现场总线控制系统简介 随着现代工业自动化的飞速发展,用户对过程控制系统的要求也越来越高。阀门现场总线控制系统是根据用户需要最新发展起来的“FCS”(现场控制系统),能很好地解决现场最常见的有关干扰噪声、控制距离和接点容量等方面的问题,在阀门和执行器应用领域内有巨大的潜在市场和发展前景。 阀门现场总线控制系统的优点: 一、安装费用少 阀门执行器现场总线控制系统接线简单,所用电缆少,费用一般只有常规控制系统的40%左右。在常规控制系统中,接到每台阀门或执行器上的电缆芯数少则六、七根,最多的可达二十二根,而在阀门执行器现场总线控制系统中,气动法兰蝶阀,所有阀门或执行器的连接只需要两、三根电缆即可完成。 二、接入的现场装置多 根据系统要
[嵌入式]
单片机在倒立摆控制系统的应用
  摘要:通过对一阶旋转倒立摆系统原理的分析,选用单片机作为控制器,直流电机作为执行器,电位器式角度传感器作为反馈环节,采用PID控制算法设计实现了一阶旋转倒立摆控制系统。实验结果表明该系统在稳定的基础上具有较强的鲁棒性,验证了PID控制算法在一阶旋转倒立摆系统中应用的可行性和有效性。   0 引言   倒立摆作为一种典型的控制系统实验装置,具有非线性、自然不稳定等特性,常用来作为检验某种控制理论或方法是否合理的典型方案。一阶倒立摆系统能用多种理论和方法来实现其稳定控制,如PID、自适应、状态反馈、模糊控制及人工神经元网络等多种理论和方法都能在倒立摆系统控制上得到实现。   1系统构成及工作原理   图1为一阶旋转倒立摆结构示
[单片机]
单片机在倒立摆<font color='red'>控制系统</font>的应用
8051单片机的反转法扫描键盘
键盘扫描采用反转法读键:先从P2口的高4位输出零 电平 ,从P2口的低4位读取键盘状态;再从P2口的低4位输出零电平,从P2口的高4位读取键盘状态,将两次读取的结果组合起来就可以得到当前按键的特征码(见程序中TABLE表)。有了这张表就可以编程,将它们转换成顺序码。用当前读得的特征码来顺序查表,用一单元记录查找次数。当在表中查到有该特征码时,它的位置(即查找次数)就是对应的顺序码。对应的键盘查键程序如下: KEY: MOV P2,#0FH ;用反转法查键 MOV A,P2 ANL A,#0FH MOV B,A MOV P2,#0F0H MOV A,P2 ANL A,#0F0H ORL A,B CJNE A,#0FFH,KEY1
[单片机]
交流异步电动机的矢量控制系统设计方案
异步电动机的动态数学模型是一个高阶、非线性、强耦合的多变量系统,矢量控制是电机控制系统的一种先进控制方法,由于其交流调速时的优越性被广泛应用到异步电机调速系统中。基于Simulink 的交流异步电机仿真可以验证系统设计方案的有效性,在实验室应用过程中可能遇到系统设计难题。 本文以双闭环矢量控制系统为研究对象,在Simu-link 中进行仿真来验证控制系统的有效性。通过分析仿真结果得到矢量控制系统的动静态特性,从而证实了本设计方案的可行性。 1 矢量控制原理 矢量控制系统,简称VC 系统,坐标变换是核心思想。矢量控制的基本思想是以产生同样的旋转磁动势为准则,将异步电动机在静止三相坐标系上的定子交流电流等效成两相静止坐标系上的交流电流
[电源管理]
交流异步电动机的矢量<font color='red'>控制系统</font>设计方案
基于DSP三伺服包装机电子凸轮控制系统的研究与应用
1 引言       凸轮机构广泛应用在各种自动机械和自动控制装置中,它能将旋转运动转换为预期的间歇直线往复运动或往复摆动等。从理论上讲,只要适当的设计出凸轮的轮廓曲线, 就可以使推杆得到各种预期的运动规律,而且结构简单紧凑。但凸轮机构在实际应用中也存在着很多局限性: (1)凸轮机构属于高副点线接触,存在较大的接触应力,无法传递较大的功率;加之凸轮在工作过程中高速运行,所以凸轮磨损快,长时间使用会使从动件的运动失真,因而不能用在那些有高的重复精度要求的场合。 (2)一个凸轮只能实现一种预定的运动规律, 输出运动缺乏柔性,当从动件运动规律改变时,凸轮的生产工艺就需要重新调整或彻底更换 。 (3)机械结构复杂,对机械安装人员的要求高,
[嵌入式]
51单片机】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤
一、环境 我用的是Keil5做编译工具,用proteus仿真。除了Keil5不知道有没有其他好用的能生成.hex文件的软件(要单片机运行是需要生成.hex文件的),Proteus则是一款很好用的仿真软件,原件很多。当然,之前有试过multisim14,也是非常不错的软件,自带有可以编写代码的文本编辑器,但没找到我想要的原件。所以选择了Proteus。 二、硬件部分 我们可以先打开Proteus: 1. Proteus新建工程 点击开始界面的创建工程,先创建一个Proteus的工程。 (注意:最好每个项目单独一个文件夹,后期的文件很乱很杂) 工程名写好,选择好文件夹,后面的可以一直下一步。 2. 添加元件 可以直接点红色
[单片机]
【<font color='red'>51单片机</font>】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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