完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 于圭 于 2014-12-29 10:13 编辑 /************************************************** ================== HMC5883L测试程序=============== ** 3-轴数字罗盘 ** 协议:IIC 详细读写协议,请参考相关资料 ** 时间:2012.2.2 ** Author:Keliwen **************************************************/ #include #include #include #include typedef unsigned char uchar; typedef unsigned int uint; /*12232液晶引脚定义*/ ***it CS=P0^2; ***it SID=P0^1; ***it SCLK=P0^0; ***it SCL=P1^0; //IIC时钟引脚定义 ***it SDA=P1^1; //IIC数据引脚定义 #define SlaveAddress 0x3c //定义器件在IIC总线中的从地址 uchar Rec_Data[6]; /*延时函数*/ void Delay(uint t) { while(t--) {} } /******************************************** **LCD显示函数 ********************************************/ /*写入一个数据或指令*/ void Send_DATA(uchar Data,uchar A) { uchar i,Dat; CS=0; switch(A) { case 0 : Dat=0xf8; break;//写指令 case 1 : Dat=0xfa; break;//写数据 default : break; } SCLK=0; CS=1; for(i=0;i<8;i++) { SID=Dat&0x80; SCLK=0; SCLK=1; Dat<<=1; } Dat=Data&0xf0; for(i=0;i<8;i++) { SID=Dat&0x80; SCLK=0; SCLK=1; Dat<<=1; } Dat=(Data<<4); for(i=0;i<8;i++) { SID=Dat&0x80; SCLK=0; SCLK=1; Dat<<=1; } CS=0; Delay(20); } /*12232液晶初始化*/ void LCD_Init(void) { Delay(60000); Send_DATA(0x02,0); Send_DATA(0x0c,0); Send_DATA(0x30,0); Send_DATA(0x06,0); Send_DATA(0x01,0); Delay(3000); } /*显示字符串*/ void Dis_str(uchar Addr,uchar *str) { Send_DATA(Addr,0); Delay(10); while(*str!=' |