资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
/*=MC3L测试程序=* 3-轴数字罗盘*合同:I 具体读写合同,请参照有关资料* 时间:.2* utho:Kelwen*iclde eg5.h#iclude#incde stdiohincue itns.htypedf unsiged charuhar;typdef signent uint;/*23液晶引脚定义/ b CSP02;si IDP01;sbit SCLK=0;sbitS=P10; /IC时钟引脚定义bitDA11; /IC数据引脚定义#ene Sledrss 0 /定义器件在IIC总线中旳从地址ucha Rec_ata;*延时函数*/vid Dla(uint t) while(-) *LCD显示函数*/*写入一种数据或指令/oided_DAA(urat,carA) chr i,Dat; C=0; switc(A) as 0: at=0xf8;beak;/写指令 e 1 :Dat0f; brek;/写数据 deult :rk; CLK0; C1; for(i=;i8;i+) SID=Dt0x80; K=0; CL=1; D1; ata&xf0; for(i=0;8;i+) ID=Dt&0x8; CLK=0; CLK=; D=1; Dt=(aa4); o(0;i8;i+) ID=at&0; SCLK=0; LK=1; t1; C=0; la(0); 1232液晶初始化/void C_Iit(void) Dey(60); SendDTA(x2,); Se_DAT(0x0c,0); endDAA(03,); SendDA(x06,0); e_ATA(x01,0); Dly(30);/*显示字符串*/vd _(uchrdr,cha*str) end_ATA(Ad,0); Dla(10); hie(*sr!=) en_DATA(sr,); st+; eay(); 起始信号*/vid IIC_Stat(void) SDA=1; SCL=1; Dlay(5); SDA=0; Delay(5); CL0;/*停止信号*voidIC_top(vod) SDA; SL1; y(5); SD=1; ely(5);*发送应答信号*/oid C_SeAck(it ck) AAc;/a (:ACK :NAK) C=1; Del(5); SL; Dla();/接受应答信号*/biI_Rcc(voi) SCL; elay(); Y=SD; SL=; Dlay(); etu Y;/向IIC总线发送一种字节数据*void MC583en_e(uch Dat) uhar i; (i=;i8;+) Dat; SDACY; SCL=1; Dlay(); SCL; Day(5); _ReAck();/*从II总线接受一种字节数据*chr HMC83Rec_Bte(oid) car i,Da=0; SDA1; for(i=0;8;+) a=1; SCL=1; Delay(5); at |=SDA; SC=; Deay(5); rtun t;*单字节写HC5833/void ingl_WrteHMC53(uca Addess,ucaDat) IIC_at(); HMC583_Sn_Byt(lavAddes); HM583_Send_Bt(ddess); HMC5883_edBye(Dt); IC_t();/*单字节读HMC5*/*ucha ileRead_HMC883(uar dr) uchaVue; IIC_Sat(); H583_Seyte(Slaveddrss); HM883_Set(Addr); ICSrt(); HMC3SenByt(SlaveAddres);Vle=HC883_RcBye(); II_SenAc(); ICStp(); retu ale;/*多字节读M833*/vod MulipleRa_HM58(voi) ucri;/持续读出H5883内部角度数据,地址范畴x305 IICar(); HM583_ndByt(lavedres); HC88_eyte(0x03);/发送存储单元地址,从0x0开始 ISart(); M83_SenBte(aveAes+); for(i0;i6;i+) /持续读取个地址数据,存储在eat Rc_Data=C83_Rc_By(); f(i5) I_SndAck(1); 最后一种数据需要回NOAC le IC_SendAck(0); /回应K I_Stop(); Deay(00);/初始化5883,根据需要请参照pdf进行修改*void HMC53_Iit(void) ile_Wri_583(0x,00); /*主函数vid main(void) ntX,,Z; dblAgle; uit Acr; C_It();/CD122液晶初始化 Diss(0x80,3 轴数字罗盘); MC583_Init();/C588初始化 o ultipl_RadHMC583();/持续读出数据,存储在Re_a中 X=e_Data0 |_Dat;/Cbne MSBan L fX Datautt registe =eData28| ec_a3;/omieMSB and LSBo Z Dtaoutput regist YRec_Data48 | _Daa5;/Cmie Sand SB oY Dta otut egister ngle=atan((dle),(dul)X)*(18/.11592)+0;单位:角度(0360) Age=10; r=(uint); Send_A(9,0); SedDAA(Acr%000/10000x30,); endDATA(A1000/100+30,1); Send_DATA(Acr%100/0+x,); Sed_DAT(.,); d_DAT(Acr%10+0x30,1); Dela(500); h(1);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号