资源简介
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
相关资源
- 基于51单片机的直流电机PWM调速系统
- LCD1602时钟程序.zip
- sht30 基于C51单片机的驱动程序,可能
- 基于AT89C51单片机的温度自动监控系统
- C51单片机T9输入法
- AT89C51中文数据手册 pdf 高清版
- 利用AT89C51对LCD12864的控制
- 24LC512程序,详细的代码,直接可用
- C51程序 频率测量模块化程序库(等精
- C51_温湿度传感器DHT11驱动_LCD1602显示程
- C51FPS.LIB248872
- APDS9930 C51程序
- AT89C51流水灯
- 基于单片机软件实现直流电机PWM以及
- Keil C51 V900注册机,完全破解无限制
- 基于AT89C51单片机的温度测量设计
- AT89C51中文资料手册,应该是官方版的
- LCD12864(KS0108) C51程序
- TC35发送英文短信C51
- TFT 240*320 ST7789 C51-STC单片机
- 基于单片机的红外风扇遥控原理图与
- MSC51单片机 汇编语言 循环显示0到99程
- 基于单片机的路灯自动控制系统
- at89c51与ad0808实现电压采集
- 基于89C51单片机的脉冲宽度的测量设计
- C51单片机数字温度计源程序与论文.
- c51单片机跑马灯单键控制
- 基于AT89C51_DS18B20的数字温度计设计
- 51单片机PWM细分控制步进电机的研究初
- ADXL345直接输出角度值C51程序
评论
共有 条评论