91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2023-02-07
  • 語言: C/C++
  • 標簽: I2C??

資源簡介

I2C軟件模擬時序,獨立文件,可以直接調用,移植性高,只需修改數(shù)據(jù)時鐘線

資源截圖

代碼片段和文件信息

sbit	??SCL=P1^0;??????//IIC時鐘引腳定義
sbit? ??SDA=P1^1;??????//IIC數(shù)據(jù)引腳定義
#define???uchar?unsigned?char
#define???uint?unsigned?int
#define SlaveAddress???0xA6 ??//定義器件在IIC總線中的從地址根據(jù)ALT??ADDRESS地址引腳不同修改
??????????????????????????????//ALT??ADDRESS引腳接地時地址為0xA6,接電源時地址為0x3A
typedef?unsigned?char??BYTE;
typedef?unsigned?short?WORD;
void?Delay5us()
{
????_nop_();_nop_();_nop_();_nop_();
????_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}

void?Delay5ms()
{
????WORD?n?=?560;

????while?(n--);
}
void?I2C_Start()
{
????SDA?=?1;????????????????????//拉高數(shù)據(jù)線
????SCL?=?1;????????????????????//拉高時鐘線
????Delay5us();?????????????????//延時
????SDA?=?0;????????????????????//產生下降沿
????Delay5us();?????????????????//延時
????SCL?=?0;????????????????????//拉低時鐘線
}
void?I2C_Stop()
{
????SDA?=?0;????????????????????//拉低數(shù)據(jù)線
????SCL?=?1;????????????????????//拉高時鐘線
????Delay5us();?????????????????//延時
????SDA?=?1;????????????????????//產生上升沿
????Delay5us();?????????????????//延時
}
void?I2C_SendACK(bit?ack)
{
????SDA?=?ack;??????????????????//寫應答信號
????SCL?=?1;????????????????????//拉高時鐘線
????Delay5us();?????????????????//延時
????SCL?=?0;????????????????????//拉低時鐘線
????Delay5us();?????????????????//延時
}
bit?I2C_RecvACK()
{
????SCL?=?1;????????????????????//拉高時鐘線
????Delay5us();?????????????????//延時
????CY?=?SDA;???????????????????//讀應答信號
????SCL?=?0;????????????????????//拉低時鐘線
????Delay5us();?????????????????//延時

????return?CY;
}
void?I2C_SendByte(BYTE?dat)
{
????BYTE?i;

????for?(i=0;?i<8;?i++)?????????//8位計數(shù)器
????{
????????dat?<<=?1;??????????????//移出數(shù)據(jù)的最高位
????????SDA?=?CY;???????????????//送數(shù)據(jù)口
????????SCL?=?1;????????????????//拉高時鐘線
????????Delay5us();?????????????//延時
????????SCL?=?0;????????????????//拉低時鐘線
????????Delay5us();?????????????//延時
????}
????ADXL345_RecvACK();
}

BYTE?I2C_RecvByte()
{
????BYTE?i;
????BYTE?dat?=?0;

????SDA?=?

評論

共有 條評論