<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > I-wire總線(xiàn)(單總線(xiàn))讀寫(xiě)51程序

I-wire總線(xiàn)(單總線(xiàn))讀寫(xiě)51程序

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏
//-----------------------函數聲明,變量定義--------------------------------------------------------

#include
sbit DQ=P1^0;// 將p1.0口模擬時(shí)鐘輸出

本文引用地址:http://dyxdggzs.com/article/201611/321915.htm

//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng): delay
// 入口參數: N
// 函數功能:延時(shí)子程序,實(shí)現(16*N+24)us的延時(shí)
// 系統采用11.0592MHz的時(shí)鐘時(shí),延時(shí)滿(mǎn)足要求,其它情況需要改動(dòng)
//--------------------------------------------------------------------------------------------------
void delay(unsignedint N)
{
int i;
for(i=0;i
}
//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng): Reset
// 入口參數: 無(wú)
// 返回deceive_ready
// 函數功能:復位
//--------------------------------------------------------------------------------------------------
unsigned char Reset(void)
{
unsignedchar deceive_ready;
DQ=0;//拉低DQ線(xiàn)
delay(29);//延時(shí)至少480us~960us
DQ=1;//將DQ線(xiàn)設置位邏輯高
delay(3);//延時(shí)等待deceive_ready響應
deceive_ready=DQ;//采樣deceive_ready信號
delay(25);//等待時(shí)序結束
return(deceive_ready);//有deceive_ready信號時(shí)返回0,否則返回1
}
//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng):read_bit
// 入口參數: 無(wú)
// 返回接收的數據
// 函數功能:讀一個(gè)bit子程序
//--------------------------------------------------------------------------------------------------
unsigned char read_bit(void)
{
unsigned char i;
DQ=0;//拉低DQ線(xiàn)開(kāi)始時(shí)序
DQ=1;//升高DQ線(xiàn)//延時(shí)至時(shí)序開(kāi)始15us
for(i=0;i<3;i++);//延時(shí)15us
return(DQ);//返回DQ值
}
//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng): write_bit
// 入口參數: bitval
// 函數功能:寫(xiě)一個(gè)bit子程序
//--------------------------------------------------------------------------------------------------
void write_bit(unsigned char bitval)
{
DQ=0;//拉低DQ線(xiàn)開(kāi)始時(shí)序
if(bitval==1)
DQ=1;//如果寫(xiě)邏輯為高
delay(5);//延時(shí)
DQ=1;//升高DQ線(xiàn)
}
//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng): write_byte
// 入口參數: val
// 函數功能:寫(xiě)一個(gè)byte子程序
//--------------------------------------------------------------------------------------------------
void write_byte(unsigned char val)
{
unsigned char i,temp;
for(i=0;i<8;i++)
{
temp=val>>i;//將val位右移i位賦值給比temp
temp=temp&0x01;//取temp最低位
write_bit(temp);
delay(5);//延時(shí)至時(shí)序結束
}
}
//--------------------------------------------------------------------------------------------------
// 函數名稱(chēng): read_byte
// 返回接收的數據 value
// 函數功能:讀一個(gè)byte子程序
//--------------------------------------------------------------------------------------------------
unsigned char read_byte(void)
{unsigned char i,m,receive_data;
m=1;receive_data=0;//初始化
for(i=0;i<8;i++)
{
if(read_bit())
{
receive_data=receive_data+(m<}//每讀一位數據據,左移一位
delay(6);//延時(shí)至時(shí)序結束
}
return(receive_data);//返回value
}



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>