资源简介
这是美信 DS278X系列电池电量检测的程序,不是很清楚的可以下载下来参考 参考
代码片段和文件信息
#include
#include
#define DATA PIND
#define IO_PORT PORTD
#define DRITION DDRD
#define IO_BIT 3
#define SET_DRITION_IN() DRITION &=~( 1< //#define SET_DRITION_IN() DRITION &=~( 1< #define SET_DRITION_OUT() DRITION |= ( 1< //#define READ_DAT() (PIND&0x08)
#define READ_DAT() (DATA&(1< #define DAT_OUT_1() IO_PORT |= ( 1< #define DAT_OUT_0() IO_PORT &=~( 1<
#define t_SLOT 110
#define t_LOW0 90
#define t_LOW1 10
#define t_REC 1
#define t_RDV 15
#define t_RSTH 480
#define t_RSTL 800
#define t_PDH 50
#define t_PDL 120
#define Read_data 0x69
#define Write_data 0x6c
#define Copy_data 0x48
#define recall_data 0xb8
#define lock_data 0x6a
#define fause 0
#define ture 1
#define STATUS 0x01
#define RAACMSB 0x02
#define RAACLSB 0x03
#define RSACMSB 0x04
#define RSACLSB 0x05
#define RARC 0x06
#define RSRC 0x07
#define IAVGMSB 0x08
#define IAVGLSB 0x09
#define TEMPMSB 0x0A
#define TEMPMSB 0x0B
#define VOLTMSB 0x0C
#define VOLTLSB 0x0D
#define CURRENTMSB 0x0E
#define CURRENTLSB 0x0F
#define ACRMSB 0x10
#define ACRLSB 0x11
#define ACRLMSB 0x12
#define ACRLLSB 0x13
#define AS 0x14
#define SFR 0x15
#define FULLMSB 0x16
#define FULLLSB 0x17
#define AEMSB 0x18
#define AELSB 0x19
#define SEMSB 0x1A
#define SELSB 0x1B
#define CONTROL 0x60
#define AB 0x61
#define ACMSB 0x62
#define ACLSB 0x63
#define VCHG 0x64
#define IMIN 0x65
#define VAE 0x66
#define IAE 0x67
#define RSNSP 0x69
#define FULLSMSB 0x6A
#define FULLSLSB 0x6B
#define FULL3040 0x6C
#define FULL2030 0x6D
#define FULL1020 0x6E
#define FULL0010 0x6F
#define AE3040 0x70
#define AE2030 0x71
#define AE1020 0x72
#define AE0010 0x73
#define SE3040 0x74
#define SE2030 0x75
#define SE1020 0x76
#define SE0010 0x77
#define RSGAINMSB 0X78
#define RSGAINLSB 0X79
#define RSTC 0X7A
/*******************************************
延时 nus
晶振7.3278M:延时n=5 实际5~6us
8M: n=5 5.25us
******************************************/
void delay_us(unsigned int n)
{
//unsigned int i;
while(--n>1);
//for(i=1;i }
unsigned char reset(void)
{
unsigned char presence;
SET_DRITION_OUT(); // 改P0_6 为输出口
DAT_OUT_0(); // 拉低DQ 线
delay_us(t_RSTL); //延时至少 t_RSTL μs
DAT_OUT_1(); // 将DQ 线设置为逻辑高
delay_us(t_PDH); // 延时等待presence 响应
SET_DRITION_IN(); // 改P0_6 为输入口
delay_us(t_PDL/2);
//delay_us(530);
presence=READ_DAT(); // 采样presence信号
//presence= PIND&0x08;
delay_us(t_RSTH-t_PDH-t_PDL/2);//等待时序结束
return(presence); //有presence 信号时返回0 ,否则返回1
}
//读一位函数
unsigned char read_bit(void)
{
unsigned char result;
SET_DRITION_OUT(); // 改P0_6 为输出口
DAT_OUT_0();
delay_us(1);// 总线为低电平的时间至少持续1 μs
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-04 17:40 设计程序\
目录 0 2013-03-18 08:25 设计程序\11111111\
文件 0 2013-03-18 08:37 设计程序\11111111\FF.cof
文件 0 2013-03-18 08:37 设计程序\11111111\FF.hex
文件 2 2013-03-18 08:37 设计程序\11111111\FF.lk
文件 316 2013-03-18 08:37 设计程序\11111111\FF.mak
文件 997 2013-03-18 08:37 设计程序\11111111\ff.prj
文件 33 2013-03-18 08:37 设计程序\11111111\FF.SRC
文件 142 2013-03-18 08:25 设计程序\11111111\_2CG.AAA
文件 14284 2013-03-21 12:07 设计程序\DS2780.c
文件 68 2013-03-24 16:14 设计程序\DS2780.dp2
文件 79857 2013-03-21 12:07 设计程序\DS2780.lis
文件 17110 2013-03-21 12:07 设计程序\DS2780.o
文件 36463 2013-03-21 12:07 设计程序\DS2780.s
文件 14284 2013-03-21 12:07 设计程序\DS2780._c
文件 17194 2013-03-13 17:01 设计程序\lcd.c
文件 65 2013-03-24 16:14 设计程序\lcd.dp2
文件 98338 2013-03-18 08:17 设计程序\lcd.lis
文件 20944 2013-03-18 08:17 设计程序\lcd.o
文件 45763 2013-03-18 08:17 设计程序\lcd.s
文件 17194 2013-03-13 16:48 设计程序\lcd._c
文件 487 2012-09-01 22:01 设计程序\LQ12864.h
文件 20107 2013-03-24 16:14 设计程序\M8.cof
文件 13250 2013-03-24 16:14 设计程序\M8.dbg
文件 15881 2013-03-24 16:14 设计程序\M8.hex
文件 24 2013-03-24 16:14 设计程序\M8.lk
文件 124888 2013-03-24 16:14 设计程序\M8.lst
文件 936 2013-03-24 16:14 设计程序\M8.mak
文件 4919 2013-03-24 16:14 设计程序\M8.mp
文件 997 2013-03-24 16:14 设计程序\m8.prj
文件 69 2013-04-25 14:33 设计程序\M8.SRC
............此处省略85个文件信息
评论
共有 条评论