手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 1459|回复: 5

[其他DIY] 谁有51单片机+1602+713的电池容量检测代码哈?

[复制链接]
  • TA的每日心情
    开心
    2020-6-6 06:33
  • 签到天数: 1439 天

    [LV.10]以坛为家III

    发表于 2023-1-29 08:54 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

    x
    去查了一下
    都需要米~  郁闷!
    谁有资料给一份吧
    (业余爱好,自己能写点普通的程序,但有些参数需要计算的不太懂~想看看代码参考学习)
    谢谢啦 !


    回复 dsu_marcocopyright:copyright

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-6 14:01
  • 签到天数: 233 天

    [LV.7]常住居民III

    发表于 2023-1-29 09:28 | 显示全部楼层
    直播|ADI 电源解决方案Digikey在线会|有关TE连接器方案Bullseye! 变革窄带宽精密信号链应用设计过程
    51 单片机综合学习系统之 1602字符型液晶显示篇
    作者:时间:2016-11-28来源:网络收藏

    10.8.3.2 程序流程图



    图10-61 软件流程图

    10.8.3.3 软件代码










    #include

    #include


    sbit rs= P2^0;

    sbit rw = P2^1;

    sbit ep = P2^2;


    unsigned char code dis1[] = {"www.hificat.com"};

    unsigned char code dis2[] = {"0571-85956028"};


    void delay(unsigned char ms)

    {

    unsigned char i;

    while(ms--)

    {

    for(i = 0; i< 250; i++)

    {

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    }

    }

    }


    bit lcd_bz()

    {

    bit result;

    rs = 0;

    rw = 1;

    ep = 1;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    result = (bit)(P0 & 0x80);

    ep = 0;

    return result;

    }


    void lcd_wcmd(unsigned char cmd)

    {

    while(lcd_bz());//判断LCD是否忙碌

    rs = 0;

    rw = 0;

    ep = 0;

    _nop_();

    _nop_();

    P0 = cmd;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    ep = 1;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    ep = 0;

    }


    void lcd_pos(unsigned char pos)

    {

    lcd_wcmd(pos | 0x80);

    }


    void lcd_wdat(unsigned char dat)

    {

    while(lcd_bz());//判断LCD是否忙碌

    rs = 1;

    rw = 0;

    ep = 0;

    P0 = dat;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    ep = 1;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    ep = 0;

    }


    void lcd_init()

    {

    lcd_wcmd(0x38);

    delay(1);

    lcd_wcmd(0x0c);

    delay(1);

    lcd_wcmd(0x06);

    delay(1);

    lcd_wcmd(0x01);

    delay(1);

    }


    void main(void)

    {

    unsigned char i;

    lcd_init();// 初始化LCD

    delay(10);

    lcd_pos(0x01);//设置显示位置

    i = 0;

    while(dis1[i] != /0)

    {

    lcd_wdat(dis1[i]);//显示字符

    i++;

    }

    lcd_pos(0x42);// 设置显示位置

    i = 0;

    while(dis2[i] != /0)

    {

    lcd_wdat(dis2[i]);// 显示字符

    i++;

    }

    while(1);

    }
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-6 14:01
  • 签到天数: 233 天

    [LV.7]常住居民III

    发表于 2023-1-29 09:29 | 显示全部楼层
    这不是电池的代码,只是1602单片机的代码
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-20 08:48
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2023-1-29 11:06 | 显示全部楼层
    为啥局限在51?现在arduino的板子大把,用这个更容易写出想要的功能,比如1602的驱动直接就是现成的.
    而且,搞不好还可以直接找到写好的代码或者开源项目

    点评

    哎 50岁的人了 ard 我有两个板 都是2560的 一个做了3d 一个做了激光 代码 确实都是现成的 不过太过复杂,想自己再修改,不容易(对我来讲,51都搞不懂,搞那个更累 哈哈) 51手里有几个,而且简单代码也能做,想  详情 回复 发表于 2023-1-29 12:10
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-6-6 06:33
  • 签到天数: 1439 天

    [LV.10]以坛为家III

     楼主| 发表于 2023-1-29 12:10 | 显示全部楼层
    拓荒牛 发表于 2023-1-29 11:06
    为啥局限在51?现在arduino的板子大把,用这个更容易写出想要的功能,比如1602的驱动直接就是现成的.
    而且,搞 ...

    哎  50岁的人了
    ard 我有两个板 都是2560的
    一个做了3d 一个做了激光
    代码 确实都是现成的  
    不过太过复杂,想自己再修改,不容易(对我来讲,51都搞不懂,搞那个更累 哈哈)
    51手里有几个,而且简单代码也能做,想再学习学习复杂点的(纯娱乐,没有别的爱好啦,起码能让脑子活动活动)
    我要的这个代码
    最主要的就是713 电流检测以及832 AD转换等等的计算和衔接
    虽然能查到理论,但实操不好操作啊

    有个代码研究起来能更快点 !!!!




    回复

    使用道具 举报

  • TA的每日心情

    2020-11-25 22:49
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2023-1-29 17:36 | 显示全部楼层
    回复

    使用道具 举报

    本版积分规则

    小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
    以上言论纯属个人观点,与手电大家谈立场无关。
    最佳浏览模式:1920*1080


    GMT+8, 2024-11-18 20:41 , Processed in 0.186422 second(s), 38 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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