51單片機(jī)—再論IIC—軟件通用包(匯編、c語(yǔ)言)—03
3)主控器向被控器發(fā)送應(yīng)答位信號(hào)子程序MACK(由于這個(gè)信號(hào)和發(fā)送非應(yīng)答信號(hào)在c語(yǔ)言里寫在了一起,所以最后寫c語(yǔ)言的程序)
;--------------------------------------------------------------
;發(fā)送應(yīng)答信號(hào)子程序
MACK:
4)主控器向被控器發(fā)送非應(yīng)答新號(hào)子程序MNACK
;------------------------------------------------------------
;發(fā)送非應(yīng)答信號(hào)子程序
MNACK:
然后就是上兩個(gè)的c的程序:
//---------------------------------------------------------------------
//主控器件向被控器件發(fā)送應(yīng)答函數(shù)
void IIC_ack_send(bit a)
{
}
5)主控器件檢查被控器件發(fā)送來(lái)的應(yīng)答位
;---------------------------------------------------------------
;檢測(cè)應(yīng)答位子程序
;返回值A(chǔ)CK=1時(shí)表示應(yīng)達(dá)
CACK:
CEND:
//-----------------------------------------------------------------
//主控器件接收應(yīng)答函數(shù)
void IIC_ack_acc()
{
}
在使用上述的子程序時(shí),如果單片機(jī)不是12MHz,自己調(diào)整啊~~哈哈
2、IIC總線數(shù)據(jù)傳送的模擬子程序
從IIC總線的數(shù)據(jù)操作中可以看出,出了起始位、停止位、發(fā)送應(yīng)答函數(shù)、發(fā)送非應(yīng)答函數(shù)、應(yīng)答檢測(cè)函數(shù)(這里書上把它看作了數(shù)據(jù)傳送的那部分,管他呢~~~呵呵),還有發(fā)送一字節(jié)數(shù)據(jù),接受以字節(jié)數(shù)據(jù),發(fā)送n字節(jié)數(shù)據(jù),接收n字節(jié)數(shù)據(jù)這幾個(gè)子程序。
評(píng)論