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

資源簡介

好東西自己下載,hmc5883l 電子羅盤 430單片機

資源截圖

代碼片段和文件信息

typedef?unsigned?char?uchar;
typedef?unsigned?int?uint;

#define?HMC5883L_DIR???P2DIR
#define?HMC5883L_IN????P2IN
#define?HMC5883L_OUT???P2OUT
#define?SCL??BIT0?????//IIC時鐘引腳定義
#define?SDA??BIT1?????//IIC數據引腳定義???
??????????????????????//DRDY?不接?
#define?SCL_H??(HMC5883L_DIR|=SCLHMC5883L_OUT|=SCL)
#define?SCL_L??(HMC5883L_DIR|=SCLHMC5883L_OUT&=~SCL)
#define?SDA_H??(HMC5883L_DIR|=SDAHMC5883L_OUT|=SDA)
#define?SDA_L??(HMC5883L_DIR|=SDAHMC5883L_OUT&=~SDA)

#define?SlaveAddress??0x3c??????????//定義器件在IIC總線中的從地址
uchar?Rec_Data[6];
int?xyz;
double?Angle;
uint?Acr;
???
/*延時函數*/
void?Delay(uint?t)
{
while(t--);
}

/*起始信號*/
void?IIC_Start(void)
{
????SDA_H;
????SCL_H;
????Delay(50);
????SDA_L;
????Delay(50);
????SCL_L;
}

/*停止信號*/
void?IIC_Stop(void)
{
????SDA_L;
????SCL_H;
????Delay(50);
????SDA_H;
????Delay(50);
}

/*發送應答信號*/
void?IIC_SendAck(char?Ack)
{???
????if(Ack)??????//ack?(0:ACK?1:NACK)
????SDA_H;
????else?SDA_L;
????SCL_H;
????Delay(50);
????SCL_L;
????Delay(50);
}

/*接收應答信號*/
char?IIC_RecAck(void)
{???
????char?CY;
????HMC5883L_DIR&=~SDA;
????SCL_H;
????Delay(50);
????if(HMC5883L_DIR&SDA)
??????CY=1;
????else?CY=0;
????SCL_L;
????Delay(50);
????return?CY;
}

/*向IIC總線發送一個字節數據*/
void?HMC5883_Send_Byte(uchar?Dat)
{
????uchar?i;
????for(i=0;i<8;i++)
????{
????????if(Dat&BIT7)
????????SDA_H;
????????else?SDA_L;
????????SCL_H;
????????Delay(50);
????????SCL_L;
????????Delay(50);
????????Dat<<=1;
????}
????IIC_RecAck();
}

/*從IIC總線接收一個字節數據*/
uchar?HMC5883_Rec_Byte(void)
{
????uchar?iDat=0;
????SDA_H;
????HMC5883L_DIR&=~SDA;
????for(i=0;i<8;i++)
????{
????????Dat<<=1;
????????SCL_H;
????????Delay(50);
????????
????????if((HMC5883L_IN&SDA)==SDA)
????????Dat|=BIT0;
????????
????????SCL_L;
????????Delay(50);
????}
????return?Dat;
}

/*單字節寫HMC5883*/
void?Single_Write_HMC5883(uchar?Addressuchar?Dat)
{
????IIC_Start();
????HMC5883_Send_Byte(SlaveAddress);
????HMC5883_Send_Byte(Address);
????HMC5883_Send_Byte(Dat);
????IIC_Stop();
}

/*單字節讀HMC5883*/
uchar?Single_Read_HMC5883(uchar?Addr)
{
????uchar?Value;
????IIC_Start();
????HMC5883_Send_Byte(SlaveAddress);
????HMC5883_Send_Byte(Addr);
????IIC_Start();
????HMC5883_Send_Byt

評論

共有 條評論