HMC5883L測(cè)試程序(20210419113327)_第1頁(yè)
HMC5883L測(cè)試程序(20210419113327)_第2頁(yè)
HMC5883L測(cè)試程序(20210419113327)_第3頁(yè)
HMC5883L測(cè)試程序(20210419113327)_第4頁(yè)
HMC5883L測(cè)試程序(20210419113327)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、知識(shí)就堤力量/*= HMC5883L測(cè)試程序=* 3-軸數(shù)字羅盤(pán)*協(xié)議:IIC詳細(xì)讀寫(xiě)協(xié)議,請(qǐng)參考相關(guān)資料* 時(shí)間:201222* Author:Keliwe n*/#in clude #in clude #i nclude #in clude vintrin s.htypedef un sig ned char uchar;typedef un sig ned int uint;/*12232液晶引腳定義*/sbit CS=P0A2;sbit SID=P0A1;sbit SCLK=P0A0;sbit SCL=P1A0;/IIC時(shí)鐘引腳定義sbit SDA=P1A1;/IIC數(shù)據(jù)引腳定義#de

2、fine SlaveAddress 0x3c定義器件在IIC總線中的從地址uchar Rec_Data 6;/*延時(shí)函數(shù)*/void Delay(ui nt t)while(t-)/*LCD顯示函數(shù)*/*寫(xiě)入一個(gè)數(shù)據(jù)或指令*/void Se nd_DATA(uchar Data,uchar A)uchar i,Dat;CS=0;switch(A)case 0 : Dat=0xf8; break;/ 寫(xiě)指令知識(shí)就堤力量case 1 : Dat=Oxfa; break;/ 寫(xiě)數(shù)據(jù) default : break;SCLK=O;CS=1;for(i=0;i8;i+)SID=Dat&0x80;SCLK

3、=0;SCLK=1;Dat=1;Dat=Data&OxfO;for(i=0;i8;i+)SID=Dat&0x80;SCLK=0;SCLK=1;Dat=1;Dat=(Data4);for(i=0;i8;i+)SID=Dat&0x80;SCLK=0;SCLK=1;Dat=1;CS=0;Delay(20);/*12232液晶初始化*/void LCD_I nit(void)Delay(60000);Se nd_DATA(0x02,0);Se nd_DATA(0x0c,0);Se nd_DATA(0x30,0);Se nd_DATA(0x06,0);Se nd_DATA(0x01,0);Delay(3

4、000);/*顯示字符串*/void Dis_str(uchar Addr,uchar *str)知識(shí)就堤力量Sen d_DATA(Addr,O);Delay(10);while(*str!=O)Se nd_DATA(*str,1);str+;Delay(10);/*起始信號(hào)*/void IIC_Start(void)SDA=1;SCL=1;Delay(5);SDA=0;Delay(5);SCL=0;/*停止信號(hào)*/void IIC_Stop(void)SDA=0;SCL=1;Delay(5);SDA=1;Delay(5);/*發(fā)送應(yīng)答信號(hào)*/void IIC_Se ndAck(bit Ack

5、)SDA=Ack;/ack (0:ACK 1:NACK)SCL=1;Delay(5);SCL=0;Delay(5);/*接收應(yīng)答信號(hào)*/bit IIC_RecAck(void)SCL=1;Delay(5);CY=SDA;知識(shí)就堤力量SCL=O;Delay(5);return CY;/*向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)*/void HMC5883_Se nd_Byte(uchar Dat)uchar i;for(i=0;i8;i+)Dat=1;SDA=CY;SCL=1;Delay(5);SCL=0;Delay(5);IIC_RecAck();/*從IIC總線接收一個(gè)字節(jié)數(shù)據(jù)*/uchar HMC58

6、83_Rec_Byte(void)uchar i,Dat=0;SDA=1;for(i=0;i8;i+)Dat=1;SCL=1;Delay(5);Dat |=SD A;SCL=0;Delay(5);return Dat;/*單字節(jié)寫(xiě)HMC5833*/void Sin gle_Write_HMC5883(uchar Address,uchar Dat) IIC_Start();HMC5883_Se nd_Byte(SlaveAddress);HMC5883_Se nd_Byte(Address);HMC5883_Se nd_Byte(Dat);IIC_Stop();/*單字節(jié)讀HMC5833*/*

7、uchar Si ngle_Read_HMC5883(uchar Addr)uchar Value;IIC_Start();HMC5883_Se nd_Byte(SlaveAddress);HMC5883_Se nd_Byte(Addr);IIC_Start();HMC5883_Se nd_Byte(SlaveAddress+1);Value=HMC5883_Rec_Byte();IIC_Se ndAck(1);IIC_Stop();return Value;*/*多字節(jié)讀HMC5833*/void Multiple_Read_HMC5883(void)uchar i; 連續(xù)讀出HMC5883

8、內(nèi)部角度數(shù)據(jù),地址范圍0x30x5IIC_Start();HMC5883_Se nd_Byte(SlaveAddress);HMC5883_Send_Byte(0x03);發(fā)送存儲(chǔ)單元地址,從0x03開(kāi)始IIC_Start();HMC5883_Se nd_Byte(SlaveAddress+1); for(i=0;i6;i+) /連續(xù)讀取 6個(gè)地址數(shù)據(jù),存儲(chǔ)在 Rec_DataRec_Datai=HMC5883_Rec_Byte();if(i=5)IIC_SendAck(1); /最后一個(gè)數(shù)據(jù)需要回NOACKelseIIC_SendAck(0); / 回應(yīng) ACKIIC_Stop();Dela

9、y(100);/初始化HMC5883,根據(jù)需要請(qǐng)參考 pdf進(jìn)行修改*void HMC5883_I nit(void)Si ngle_Write_HMC5883(0x02,0x00);/*主函數(shù)*/void mai n(void)int X,Y,Z;double An gle;uint Acr;LCDnit();/LCD12232 液晶初始化Dis_str(0x80,3 軸數(shù)字羅盤(pán));HMC5883ni t();/HMC5883 初始化doMultiple_Read_HMC5883(); 連續(xù)讀出數(shù)據(jù),存儲(chǔ)在Rec_Data中X=Rec_Data08 | Rec_Data1;/Combi ne

10、 MSB and LSB of X Data output register Z=Rec_Data28 | Rec_Data3;/Comb ine MSB and LSB of Z Data output register Y=Rec_Data48 | Rec_Data5;/Combi ne MSB and LSB of Y Data output register Angle= atan2(double)Y ,(double)X)*(180/3.14159265)+180; 單位:角度 (0360) An gle*=10;Acr=(ui nt)A ngle;Sen d_DATA(0x92,0);Sen d_DATA(Acr%10000/1000+0x30,1);Sen d_DATA(Acr%1000/100+0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論