基本信息
源码名称:DS2781芯片库仑计
源码大小:0.21M
文件格式:.zip
开发语言:C/C++
更新时间:2021-01-07
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

用DS2781芯片实现简单库仑计,使用STC12C5A60S2配合LCD128128显示。

#include "STC12C5A.H"
#include "one_wire.h"
//#include <stdio.h>
#include <intrins.h> //包含_nop_
#include "uart.h"
#define uchar unsigned char
#define uint unsigned int

/* DS2781 Memory Map */
//battery gauge
#define DS_STATUS 0x01
#define DS_CONTROL 0x60
#define DS_TEMP_MSB     0x0A
#define DS_VOLT_MSB    0x0C
#define DS_CUR_MSB     0x0E
#define DS_ACR_MSB      0x10
#define DS_ACR_LSB      0x11
#define DS_FULL_MSB      0x16
#define DS_VCHG 0x64
#define DS_IMIN 0x65
#define DS_VAE 0x66
#define DS_IAE 0x67
#define DS_RSNSP      0x69
#define DS_RSGAIN_MSB      0x78
#define DS_RSGAIN_LSB      0x79
#define DS_RSTC      0x7A
#define DS_COB      0x7B

/*1 wire 驱动程序------------------------------------------------------------*/


void one_wire_delay_2us() //@22.1184MHz
{
unsigned char i;

i = 8;
while (--i);
}

void one_wire_delay_10us() //@22.1184MHz
{
unsigned char i;

_nop_();
i = 52;
while (--i);
}

void one_wire_delay_60us() //@22.1184MHz
{
unsigned char i, j;

_nop_();
i = 2;
j = 70;
do
{
while (--j);
} while (--i);
}