#include"MSP430x11x1.h"
#defineuintunsignedint
#defineucharunsignedchar
//器件地址
ucharPCF8576=0x70;
//內(nèi)存數(shù)據(jù)定義
ucharByteCnt;//I2C數(shù)據(jù)字節(jié)計數(shù)器
ucharSlvAdr;//被控器地址
ucharSubAdr;//被控器單元地址
ucharXmtDat[5];//發(fā)送數(shù)據(jù)緩沖區(qū)
//ucharMODE1=0x45;
ucharMODE2=0xCD;//
ucharBank_sel=0x78;
ucharflag;
ucharDigit[10];
#defineSDABIT3//P2.3controlsSDAline(pull-upusedfor
logIC1)
#defineSCLBIT4//P2.4controlsSCLline(pull-upusedforlogic1)
/******************************************************************************
;子程序
;名稱:START
;描述:啟動I2C總線子程序--發(fā)送I2C起始條件
;;*****************************************************************************/
voidSTART(void)
{
P2OUT|=SDA;//SDA=1
_NOP();
P2OUT|=SCL;//SCL=1
_NOP();
P2OUT&=~SDA;//SDA=0
_NOP();
P2OUT&=~SCL;//SCL=0
}
/*--------------------------------------------------------------------------
;名稱:STOP
;描述:停止I2C總線子程序--發(fā)送I2C總線停止條件
;-------------------------------------------------------------------------*/
voidSTOP(void)
{
P2OUT&=~SDA;//SDA=0
_NOP();
P2OUT|=SCL;
_NOP();
P2OUT|=SDA;
_NOP();
P2OUT&=~SCL;
}
voidcack(void)/*應(yīng)答位檢查*/
{
P2OUT|=SDA;
P2OUT|=SCL;
P2DIR&=~SDA;
_NOP();
P2OUT&=~SCL;
P2DIR|=SDA;
}
voiddelay(uchartime)
{
uchari;
do{
for(i=100;i!=0;i--);
}while(--time!=0);
}
/*----------------------------------------------------------------------
;名稱:SendByte
;描述:字節(jié)數(shù)據(jù)傳送子程序發(fā)送一個字節(jié)數(shù)據(jù)或地址給被控器PCF8576
;------------------------------------------------------------------------*/
voidSendByte(ucharData)
{
uchari=8;
do
{
if((Data&0x80)==0x80)
P2OUT|=SDA;
else
P2OUT&=~SDA;
P2OUT|=SCL;
_NOP();
P2OUT&=~SCL;
Data=Data
-
驅(qū)動程序
+關(guān)注
關(guān)注
19文章
836瀏覽量
48038 -
MSP430F1121
+關(guān)注
關(guān)注
0文章
3瀏覽量
1850 -
PCF8576
+關(guān)注
關(guān)注
1文章
1瀏覽量
1756
發(fā)布評論請先 登錄
相關(guān)推薦
評論