首页 > 其他分享 >16.基于51单片机的太阳能路灯控制系统(实物)

16.基于51单片机的太阳能路灯控制系统(实物)

时间:2024-12-14 23:29:44浏览次数:5  
标签:temp 16 51 us DS 单片机 byte nop ds

16.基于51单片机的太阳能路灯控制系统(实物)

通过百度网盘分享的文件:资料详解
链接:https://pan.baidu.com/s/1zPXLcLmqZAljkgMeU2RT7w?pwd=597l 
提取码:597l 

太阳能路灯控制系统:

带太阳能充电功能,oled显示, 白天根据光强判断开关灯晚上开灯,二级菜单可以设置时间日期。 太阳能充电:传统锂电池充电芯片TP4056,使用6V太阳能板,给3.7V18650电池充电。经过资料显示 18650电池尽量不要让其电压低于2.7V,所以后级供电电路(5V升压电路)MT3608启动引脚EN脚 连接了LM393制成的电压比较器。和电池电压比较,电池电压低于2.7v,MT3608启动脚拉低关断。 供电:使用升压芯片MT3608给单片机供电,让电池电压稳定在5.1V,来提供稳定电压。

#include "ds18b20.h"
#include "oled.h"
#include <intrins.h>


/*us延时函数,执行一次US--所需6.5us进入一次函数需要11.95us*/
void Delay_us(uchar us)
{
    while(us--);    
}
/*单总线初始化时序*/
bit ds_init()
{
    bit i;
    DS = 1;
    _nop_();
    DS = 0;
    Delay_us(75); //拉低总线499.45us 挂接在总线上的18B20将会全部被复位
    DS = 1; //释放总线
    Delay_us(4); //延时37.95us 等待18B20发回存在信号
    i = DS;
    Delay_us(20); //141.95us
    DS = 1;
    _nop_();
    return (i);
}
/*写一个字节*/
void write_byte(uchar dat)
{
    uchar i;
    for(i=0;i<8;i++)
    {
        DS = 0;
        _nop_();//产生些时序
        DS = dat & 0x01;
        Delay_us(10);//76.95us
        DS = 1; //释放总线准备下一次数据写入
        _nop_();
        dat >>= 1;
    }
}

uchar read_byte()
{
    uchar i, j, dat;
    for(i=0;i<8;i++)
    {
        DS = 0;
        _nop_();//产生读时序
        DS = 1;
        _nop_();//释放总线
        j = DS;
        Delay_us(10);//76.95us
        DS = 1;
        _nop_();
        dat = (j<<7)|(dat>>1);    
    }
    return (dat);
}

uint temp_ds;
uchar L, M;
void Test_Temp()
{
        ds_init();//初始化DS18B20
        write_byte(0xcc);//发送跳跃ROM指令
        write_byte(0x44);//发送温度转换指令
        ds_init();//初始化DS18B20
        write_byte(0xcc);//发送跳跃ROM指令
        write_byte(0xbe);//读取DS18B20暂存器值
        L = read_byte();
        M = read_byte();
        temp_ds = M;
        temp_ds <<= 8;
        temp_ds |= L;                        
        temp_ds = temp_ds * 0.0625 * 10 + 0.5;
        OLED_ShowString(64,6,".",16);
        OLED_ShowNum(45,6,temp_ds/10,2,16);       //使OLED显示当前温度值
        OLED_ShowNum(72,6,temp_ds%10,1,16);
        
}

 

标签:temp,16,51,us,DS,单片机,byte,nop,ds
From: https://blog.csdn.net/2402_89220103/article/details/144478600

相关文章

  • 15.基于51单片机的温控风扇(实物)
    15.基于51单片机的温控风扇(实物)通过百度网盘分享的文件:资料详解链接:https://pan.baidu.com/s/1zPXLcLmqZAljkgMeU2RT7w?pwd=597l 提取码:597l 1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机2.采用DS18B20温度传感器测温(0-99.9°C),三极管驱动数码管显......
  • 14.基于51单片机的智能花盆设计(实物)
    14.基于51单片机的智能花盆设计(实物)通过百度网盘分享的文件:资料详解链接:https://pan.baidu.com/s/1zPXLcLmqZAljkgMeU2RT7w?pwd=597l 提取码:597l 设计简介:基于单片机的智能花盆设计单片机:STC89C52功能:1、通过显示屏显示花盆中土壤的温度、湿度,花盆外光照强度;2、通......
  • Dart Flutter教程_Dart Flutter3.x入门实战视频教程-16讲后是Flutter教程
    DartFlutter教程_DartFlutter3.x入门实战视频教程-16讲后是Flutter教程https://www.bilibili.com/video/BV1S4411E7LY/2P101Dart介绍WinMac上面分别搭建Dart...Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用和物联网等领域的开发。Dart诞生于201......
  • React16
    React16免费基础视频教程https://www.bilibili.com/video/BV1g4411i7poP101_React免费视频课程介绍https://jspang.com20195年前react1616.8.6https://react.dev/P202_React简介和Vue的对比P303_React开发环境的搭建npmi-gcreate-react-app@3.0.0create-react-a......
  • springboot二手动漫周边交易网站-毕业设计源码16260
    目 录摘要1绪论1.1选题背景1.2研究意义1.3论文结构与章节安排2 二手动漫周边交易网站系统分析2.1可行性分析2.2系统流程分析2.2.1数据流程3.3.2业务流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析2.4系统用例分析2.5本章小......
  • django停车场管理系统-毕业设计源码16856
    目 录1绪论1.1研究背景和意义1.2国内外研究现状1.3论文结构与章节安排2 系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分析2.4系......
  • STM32单片机芯片与内部20 中断管理
    目录一、中断/异常的响应序列1、入栈2、取向量3、更新寄存器二、异常返回三、嵌套中断四、咬尾中断五、晚到异常六、异常返回值七、中断延迟八、异常相应期间的faults1、入栈期间2、出栈期间3、取向量期间4、无效返回时        前面有提到定时器中断......
  • STM32单片机芯片与内部21 电源管理——低功耗 睡眠模式 停止模式 待机模式
    目录一、SMT32电源框图1、ADC电源与参考电压VDDA2、调压器供电电路VDD/1.8V3、备份域电路二、电源监控器1、上电复位与掉电复位(POR与PDR)2、可编程电压检测器PVD三、功耗模式1、睡眠模式2、停止模式3、待机模式        电源对电子设备的重要性不言而喻,它......
  • 代码随想录算法训练营第四十六天|LeetCode647.回文串、LeetCode516.最长回文子序列
    前言打卡代码随想录算法训练营第49期第四十六天 ε(*′・∀・`)з゙首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第49期的训练营大家庭一起进步。LeetCode647......
  • 02-51单片机的C语言基础与最小系统
    C语言基础一个简单的单片机C程序要有什么#include<reg51.h>voidmain(){ while(1) { }}C语言中常用语句略,if,while,do…while,for,switch…case函数略C-51的数据类型扩充定义sfr:特殊功能寄存器声明sfr变量名=地址值;*特殊功能寄存器在reg51.H这个头文件里......