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

  • 大小: 62KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-18
  • 語言: 其他
  • 標簽: 51??

資源簡介

基于51單片機,擁有可調(diào)鬧鐘秒表,可以掉電保存的萬年歷。

資源截圖

代碼片段和文件信息

		??#include?“i2c.h“

/*
*@?函數(shù)名?????????:?Delay10us()
*@?函數(shù)功能 ??:?延時10us
*@?輸入???????????:?無
*@?輸出???????????:?無
*/

void?Delay10us()
{
unsigned?char?ab;
for(b=1;b>0;b--)
for(a=2;a>0;a--);

}
/*
*@?函數(shù)名?????????:?I2cStart()
*@?函數(shù)功能 ??:?起始信號:在SCL時鐘信號在高電平期間SDA信號產(chǎn)生一個下降沿
*@?輸入???????????:?無
*@?輸出???????????:?無
*@?備注???????????:?起始之后SDA和SCL都為0
*/

void?I2cStart()
{
SDA=1;
Delay10us();
SCL=1;
Delay10us();//建立時間是SDA保持時間>4.7us
SDA=0;
Delay10us();//保持時間是>4us
SCL=0;
Delay10us();
}
/*
*@?函數(shù)名?????????:?I2cStop()
*@?函數(shù)功能 ??:?終止信號:在SCL時鐘信號高電平期間SDA信號產(chǎn)生一個上升沿
*@?輸入???????????:?無
*@?輸出???????????:?無
*@?備注???????????:?結(jié)束之后保持SDA和SCL都為1;表示總線空閑
*/

void?I2cStop()
{
SDA=0;
Delay10us();
SCL=1;
Delay10us();//建立時間大于4.7us
SDA=1;
Delay10us();
}
/*
*@?函數(shù)名?????????:?I2cSendByte(unsigned?char?dat)
*@?函數(shù)功能 ??:?通過I2C發(fā)送一個字節(jié)。在SCL時鐘信號高電平期間,保持發(fā)送信號SDA保持穩(wěn)定
*@?輸入???????????:?num
*@?輸出???????????:?0或1。發(fā)送成功返回1,發(fā)送失敗返回0
*@?備注???????????:?發(fā)送完一個字節(jié)SCL=0SDA=1
*/

unsigned?char?I2cSendByte(unsigned?char?dat)
{
unsigned?char?a=0b=0;//最大255,一個機器周期為1us,最大延時255us。
SCL=0;
Delay10us();
SDA=1;
Delay10us();
for(a=0;a<8;a++)//要發(fā)送8位,從最高位開始
{
SDA=dat>>7; ?//起始信號之后SCL=0,所以可以直接改變SDA信號
dat=dat<<1;
Delay10us();
SCL=1;
Delay10us();//建立時間>4.7us
SCL=0;
Delay10us();//時間大于4us
}
SDA=1;
Delay10us();
SCL=1; ???//把數(shù)據(jù)線和時鐘線釋放出來
while(SDA)//等待應(yīng)答,也就是等待從設(shè)備把SDA拉低
{
b++;
if(b>200) ?//如果超過2000us沒有應(yīng)答發(fā)送失敗,或者為非應(yīng)答,表示接收結(jié)束
{
SCL=0;
Delay10us();
return?0;
}
}
SCL=0;
Delay10us();
? return?1;
}
/*
*@?函數(shù)名?????????:?I2cReadByte()
*@?函數(shù)功能 ??:?使用I2c讀取一個字節(jié)
*@?輸入???????????:?無
*@?輸出???????????:?dat
*@?備注???????????:?接收完一個字節(jié)SCL=0SDA=1.
*/

unsigned?char?I2cReadByte()
{
unsigned?char?a=0dat=0;
SDA=1; //起始和發(fā)送一個字節(jié)之后SCL都是0
Delay10us();
for(a=0;a<8;a++)?? //接收8個字節(jié)
{
SCL=1; ???
Delay10us();
dat<<=1;
dat|=SDA;
Delay10us();
SCL=0;
Delay10us();
}
return?dat;
}


/*
*@?函數(shù)名?????????:?void?At24c02Write(unsigned?char?addrunsigned?char?dat)
*@?函數(shù)功能 ??:?往24c02的一個地址寫入一個數(shù)據(jù)
*@?輸入???????????:?無
*@?輸出???????????:?無
*/

void?At24c02Write(unsigned?char?addrunsigned?char?dat)
{
I2cStart();
I2cSendByte(0xa0); //發(fā)送寫器件地址
I2cSendByte(addr); //發(fā)送要寫入內(nèi)存地址
I2cSendByte(dat); //發(fā)送數(shù)據(jù)
I2cStop();
}
/*
*@?函數(shù)名?????????:?unsigned?char?At24c02Read(unsigned?char?addr)
*@?函數(shù)功能 ??:?讀取24c02的一個地址的一個數(shù)據(jù)
*@?輸入???????????:?無
*@?輸出???????????:?無
*/

unsigned?char?At24c02Read(unsigned?char?addr)
{
unsigned?char?num;
I2cStart();
I2cSendByte(0xa0);?//發(fā)送寫器件地址
I2cSendByte(addr);?//發(fā)送要讀取的地址
I2cStart();
I2cSendByte(0xa1);?//發(fā)送讀器件地址
num=I2cReadByte();?//讀取數(shù)據(jù)
I2cStop();
return?num;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-13?15:44??rm考核-秦敏杰\
?????文件????????7326??2018-06-28?23:37??rm考核-秦敏杰\i2c.LST
?????文件????????5971??2018-06-28?23:37??rm考核-秦敏杰\i2c.OBJ
?????文件????????3218??2018-06-28?23:36??rm考核-秦敏杰\i2c.c
?????文件?????????316??2018-06-28?23:36??rm考核-秦敏杰\i2c.h
?????文件???????36601??2018-07-12?23:54??rm考核-秦敏杰\main.LST
?????文件???????33116??2018-07-12?23:54??rm考核-秦敏杰\main.OBJ
?????文件???????22649??2018-07-12?23:54??rm考核-秦敏杰\main.c
?????文件????????9446??2018-07-11?16:11??rm考核-秦敏杰\main.c.orig
?????文件???????31371??2018-07-13?15:43??rm考核-秦敏杰\template
?????文件???????44689??2018-07-13?15:43??rm考核-秦敏杰\template.M51
?????文件????????9712??2018-07-13?15:43??rm考核-秦敏杰\template.hex
?????文件??????????41??2018-07-13?15:43??rm考核-秦敏杰\template.lnp
?????文件?????????177??2018-07-13?15:44??rm考核-秦敏杰\template.plg
?????文件???????55816??2018-07-13?15:43??rm考核-秦敏杰\template.uvopt
?????文件???????13388??2018-06-30?00:06??rm考核-秦敏杰\template.uvproj
?????文件???????56647??2018-07-13?14:44??rm考核-秦敏杰\template_uvopt.bak
?????文件???????13384??2018-06-28?23:37??rm考核-秦敏杰\template_uvproj.bak

評論

共有 條評論