資源簡介
VL53l0x的51單片機程序;單片機使用STC15F104E

代碼片段和文件信息
#include“i2c.h“
/*******************************************************************************
*?函?數?名?????????:?Delay1us()
*?函數功能 ???:?延時
*?輸????入?????????:?無
*?輸????出?????????:?無
*******************************************************************************/
void?I2C_Delay10us()
{
????unsigned?char?i;
????_nop_();
????_nop_();
????_nop_();
????i?=?24;
????while?(--i);
}
/*******************************************************************************
*?函?數?名?????????:?I2C_Start()
*?函數功能 ???:?起始信號:在I2C_SCL時鐘信號在高電平期間I2C_SDA信號產生一個下降沿
*?輸????入?????????:?無
*?輸????出?????????:?無
*?備????注?????????:?起始之后I2C_SDA和I2C_SCL都為0
*******************************************************************************/
void?I2C_Start()
{
????I2C_SDA?=?1;
????I2C_Delay10us();
????I2C_SCL?=?1;
????I2C_Delay10us();//建立時間是I2C_SDA保持時間>4.7us
????I2C_SDA?=?0;
????I2C_Delay10us();//保持時間是>4us
????I2C_SCL?=?0;
????I2C_Delay10us();
}
/*******************************************************************************
*?函?數?名???????????:?I2C_Stop()
*?函數功能 ?????????:?終止信號:在I2C_SCL時鐘信號高電平期間I2C_SDA信號產生一個上升沿
*?輸????入???????????:?無
*?輸????出????????? ?:?無
*?備????注???????????:?結束之后保持I2C_SDA和I2C_SCL都為1;表示總線空閑
*******************************************************************************/
void?I2C_Stop()
{
????I2C_SDA?=?0;
????I2C_Delay10us();
????I2C_SCL?=?1;
????I2C_Delay10us();//建立時間大于4.7us
????I2C_SDA?=?1;
????I2C_Delay10us();
}
/*******************************************************************************
*?函?數?名???????????:?I2cSendByte(uchar?num)
*?函數功能? ?????????:?通過I2C發送一個字節。在I2C_SCL時鐘信號高電平期間,
*????????????????????*?保持發送信號I2C_SDA保持穩定
*?輸????入???????????:?num?ack
*?輸????出????????? ?:?0或1。發送成功返回1,發送失敗返回0
*?備????注???????????:?發送完一個字節I2C_SCL=0?需要應答則應答設置為1,否則為0
*******************************************************************************/
uchar?I2C_SendByte(uchar?dat)
{
????uchar?a?=?0b?=?0;//最大255,一個機器周期為1us,最大延時255us。
????for(a=0;?a<8;?a++)//要發送8位,從最高位開始
????{
????????dat?<<=?1;
????????I2C_SDA=CY;
????????I2C_Delay10us();
????????I2C_SCL?=?1;
????????I2C_Delay10us();//建立時間>4.7us
????????I2C_SCL?=?0;
????????I2C_Delay10us();//時間大于4us
????}
????//I2C_SDA?=?1;
????//I2C_Delay10us();
????I2C_SCL?=?1;
????I2C_Delay10us();
????CY=I2C_SDA;
????I2C_SCL?=?0;
????I2C_Delay10us();
????return?CY;
}
/*******************************************************************************
*?函?數?名???????????:?I2cReadByte()
*?函數功能 ???? ?:?使用I2c讀取一個字節
*?輸????入???????????:?無
*?輸????出????????? ?:?dat
*?備????注???????????:?接收完一個字節I2C_SCL=0
*******************************************************************************/
uchar?I2C_ReadByte()
{
????uchar?a?=?0dat?=?0;
????I2C_SDA?=?1; //起始和發送一個字節之后I2C_SCL都是0
????I2C_Delay10us();
????for(a=0;?a<8;?a++)//接收8個字節
????{
????????I2C_SCL?=?1;
????????I2C_Delay10us();
????????dat?<<=?1;
????????dat?|=?I2C_SDA;
????????I2C_Delay10us();
????????I2C_SCL
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3625??2017-02-28?16:36??VL53l0x激光測距\i2c.c
?????文件???????3441??2017-02-28?16:04??VL53l0x激光測距\i2c.c.orig
?????文件????????451??2017-02-28?16:36??VL53l0x激光測距\i2c.h
?????文件????????452??2017-02-28?16:18??VL53l0x激光測距\i2c.h.orig
?????文件???????6297??2017-02-28?21:16??VL53l0x激光測距\i2c.LST
?????文件???????5393??2017-02-28?21:16??VL53l0x激光測距\i2c.OBJ
?????文件???????5793??2017-02-28?21:16??VL53l0x激光測距\main.c
?????文件??????10684??2017-02-28?21:16??VL53l0x激光測距\main.LST
?????文件??????14076??2017-02-28?21:16??VL53l0x激光測距\main.OBJ
?????文件???????6376??2009-05-07?14:37??VL53l0x激光測距\STARTUP.A51
?????文件??????14048??2017-02-28?21:16??VL53l0x激光測距\STARTUP.LST
?????文件????????749??2017-02-28?21:16??VL53l0x激光測距\STARTUP.OBJ
?????文件???????9130??2017-01-13?14:50??VL53l0x激光測距\stc.h
?????文件??????21515??2017-02-28?21:16??VL53l0x激光測距\VL53L0X
?????文件????????750??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.build_log.htm
?????文件????????864??2017-02-28?18:05??VL53l0x激光測距\VL53L0X.c
?????文件???????8233??2017-02-28?16:33??VL53l0x激光測距\VL53L0X.c.orig
?????文件????????643??2017-02-28?18:05??VL53l0x激光測距\VL53L0X.h
?????文件???????3521??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.hex
?????文件?????????72??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.lnp
?????文件???????2072??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.LST
?????文件??????26010??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.M51
?????文件???????5172??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.OBJ
????.......?????72167??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.uvgui.wnn12
????.......?????72165??2017-02-28?18:08??VL53l0x激光測距\VL53L0X.uvgui_wnn12.bak
????.......??????6500??2017-02-28?21:16??VL53l0x激光測距\VL53L0X.uvopt
????.......?????14267??2017-02-28?18:07??VL53l0x激光測距\VL53L0X.uvproj
????.......??????6498??2017-02-28?18:08??VL53l0x激光測距\VL53L0X_uvopt.bak
????.......?????14105??2017-02-28?16:36??VL53l0x激光測距\VL53L0X_uvproj.bak
?????目錄??????????0??2017-02-28?21:16??VL53l0x激光測距
............此處省略3個文件信息
評論
共有 條評論