资源简介
APDS9930-C51程序只有对该模块基本初始化,调用的代码,没有其他的花里胡哨,主程序十分简洁。只有最有用的,没有多余的,方便阅读。

代码片段和文件信息
#include “APDS_9930.h“
void Delay12ms() //@11.0592MHz
{
unsigned char i j k;
i = 1;
j = 130;
k = 19;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//void ClearINTF(unsigned char address)
//{
// char Ack;
// I2CStart();
// Ack = I2CWrite(((0x39<<1)&(0XFE)));
// Ack = I2CWrite(0xA0|address);
// I2CStop();
//}
void WriteRegData(unsigned char addressunsigned char dat)
{
char Ack;
I2CStart();
Ack = I2CWrite(((0x39<<1)&(0XFE)));
Ack = I2CWrite(0x80|address);
Ack = I2CWrite(dat);
I2CStop();
}
unsigned int Read_Word(unsigned char Address)
{
char Ack;
unsigned char recv_data[2];///0 low; 1 high
I2CStart();
Ack = I2CWrite((0x39<<1)&(0XFE));
if(!Ack)
{
return -1;
}
Ack = I2CWrite(0xa0|Address);
if(!Ack)
{
return -1;
}
//SCL_LOW();
I2CStart();
Ack = I2CWrite(((0x39<<1)|(0X01)));
if(!Ack)
{
return -1;
}
recv_data[0]=I2CReadACK();
I2CDelay();
recv_data[1]=I2CReadNAK();
I2CStop();
return (unsigned int)(recv_data[0] + 256 * recv_data[1]);
}
/*可以不用*/
//unsigned char Read_byte(unsigned char Address)
//{
// char Ack;
// unsigned char recv_data;
// I2CStart();
// Ack = I2CWrite((0x39<<1)&(0XFE));
//
// Ack = I2CWrite(0xA0|Address);
//
//
////SCL_LOW();
// I2C_SCL = 0;
// I2CStart();
// Ack = I2CWrite(((0x39<<1)|(0X01)));
//
// recv_data=I2CReadNAK();
//
// I2CStop();
//
// return recv_data;
//}
unsigned char init_APDS9930()
{
uint8 ATIME PTIME WTIME PPCOUNT;
uint8 PDRIVEPDIODEPGAINAGAIN;
uint8 WENPENAENPON;
ATIME = 0xff; // 2.7 ms – minimum ALS integration time
WTIME = 0xff; // 2.7 ms – minimum Wait time
PTIME = 0xff; // 2.7 ms – minimum Prox integration time
PPCOUNT = 1; // Minimum prox pulse count
// ATIME = 0xf6; // 2.7 ms ?minimum ALS integration time
// WTIME = 0xff; // 2.7 ms ?minimum Wait time
// PTIME = 0xf6; // 2.7 ms ?minimum Prox integration time
// PPCOUNT = 0x08; // Minimum prox pulse count
WriteRegData(0 0); //Disable and Powerdown
WriteRegData (1 ATIME);
WriteRegData (2 PTIME);
WriteRegData (3 WTIME);
//WriteRegData (0xd 0);
WriteRegData (0xe PPCOUNT);
Delay12ms(); //Wait for 12 ms
PDRIVE = 0; //100mA of LED Power
PDIODE = 0x20; // CH1 Diode
PGAIN = 0; //1x Prox gain
AGAIN = 0; //1x ALS gain
WriteRegData (0xf PDRIVE | PDIODE | PGAIN |AGAIN);
//WriteRegData(0xc0xf0);
WEN = 8; // Enable Wait
PEN = 4; // Enable Prox
AEN = 2; // Enable ALS
PON = 1; // Enable Power On
WriteRegData (0 WEN | PEN | AEN | PON);
//WriteRegData(00x0f );
Delay12ms(); //Wait for 12 ms
return 1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-02-26 00:03 APDS9930-51程序\
文件 14779 2020-02-25 11:42 APDS9930-51程序\APDS_9930
文件 6539 2020-02-25 11:42 APDS9930-51程序\APDS_9930.LST
文件 14842 2020-02-25 11:42 APDS9930-51程序\APDS_9930.M51
文件 7298 2020-02-25 11:42 APDS9930-51程序\APDS_9930.OBJ
文件 2765 2020-02-25 11:38 APDS9930-51程序\APDS_9930.c
文件 236 2020-02-25 11:38 APDS9930-51程序\APDS_9930.h
文件 75 2020-02-25 11:42 APDS9930-51程序\APDS_9930.lnp
文件 184 2020-02-26 00:01 APDS9930-51程序\APDS_9930.plg
文件 77101 2020-02-26 00:03 APDS9930-51程序\APDS_9930.uvopt
文件 13547 2020-02-25 09:27 APDS9930-51程序\APDS_9930.uvproj
文件 77097 2020-02-25 11:42 APDS9930-51程序\APDS_9930_uvopt.bak
文件 13547 2020-02-25 09:12 APDS9930-51程序\APDS_9930_uvproj.bak
文件 6017 2020-02-25 11:42 APDS9930-51程序\I2C.LST
文件 6061 2020-02-25 11:42 APDS9930-51程序\I2C.OBJ
文件 3418 2020-02-25 10:40 APDS9930-51程序\I2C.c
文件 210 2019-12-16 14:57 APDS9930-51程序\IIC.h
文件 16 2020-02-25 09:31 APDS9930-51程序\comm.h
文件 1308 2020-02-25 11:40 APDS9930-51程序\config.h
文件 1696 2020-02-25 11:42 APDS9930-51程序\main.LST
文件 2610 2020-02-25 11:42 APDS9930-51程序\main.OBJ
文件 432 2020-02-25 11:42 APDS9930-51程序\main.c
相关资源
- 电路图天天读19:局域网中红外遥控发
- 基于89C51的智能台灯
- STC8951系列单片机中方指南
- proteus仿真 AT89C51输出各种波形
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于89c51的数字钟
- 基于单片机交通灯设计
- 基于89C51计算机锁定加密键盘设计
- 基于51单片机的计算器(C51编写,有
- STM32+TMC5160代码电路图.rar
- AT89C51+ADC0808 PROTEUS仿真
- 基于CNN的静态手势识别系统
- opencv_traincascade训练分类器,手势识别
- 单片机原理及接口技术C51编程张毅刚
- 基于AT89C51的十字路口交通灯设计pro
- 单片机原理及接口技术C51编程
- at89c51单片机外文翻译
- 单片机原理及接口技术C51编程高清P
- 基于C51的电子琴设计
- 自己玩的动态手势识别系统
- keilc51源代码
- 在C51中变量的空间分配几个方法
- 初学C51的一些误区
- 单片机初学者学习C51时的一些误区和
- Philips 80C51MX
- 12bit流水线ADC电路整体电路原理图-c
- 0.96OLED_C51系列_IIC应答_例程
- 0-999计数器的C51程序
- FDC2214手势识别模块
评论
共有 条评论