您好,欢迎访问三七文档
有疑问联系QQ286339554#includeSTC12C5410AD.H#includecommon.h#includemath.h#defineucharunsignedchar#defineuintunsignedint#defineRELOAD0Xfd//240011.0592M1TSMOD=02400?#defineMMC2122_address0x68//2212#defineENABLE_IAP0X83sbitcom1=P3^2;sbitcom2=P3^3;sbitcom3=P1^6;sbitcom4=P1^7;sbitsda=P3^7;sbitscl=P2^7;sbittxd=P3^1;sbitG2=P1^4;sbitDP=P1^5;ucharflag=0;//·½Ïò±êÖ¾ucharflag1=0;ucharadjust_flag=2;floatgcos=0;floatgsin=0;floatangle_cos=0;floatangle_sin=0;floatangle=0;unsignedcharcunchu1;unsignedcharcunchu2;unsignedcharcunchu3;unsignedcharcunchu4;unsignedcharcunchu5;ucharcalibarte_flag=0;intMaxx;intMinx;intMaxy;intMiny;intx,y;intx_max=0;intx_min=5000;inty_max=0;inty_min=5000;intxxyy_max=0;intxxyy_min=5000;intdisturb_x=0;//intdisturb_y=0;//¸ÉÈÅ×ø±êvoidcalibrate_mmc2122();voidPort_initial(void){P1M0=0X00;P1M1=0XFF;P2M0=0X00;//0X80;P2M1=0XFF;com1=1;com2=1;com3=1;com4=1;}voidSerial_inial(){SCON=0X50;//8BITvariablebratenooddcheckTMOD=0X21;//TIMER18-AUTORELOADTH1=RELOAD;TL1=RELOAD;TH0=0x3c;TL0=0xb0;TR1=1;ES=1;ET0=0;IT0=0;//1:FALLING0:LOWLEVELEX0=1;//ENABLEEA=1;}/*********************************************************************Ãû³Æ:Delays(number)*¹¦ÄÜ:¶ÌÔÝÑÓʱ*ÊäÈë:number*Êä³ö:number************************************************************************/voidDelays(unsignedintnumber)//ÑÓʱ×Ó³ÌÐò,ÓÉnumber¾ö¶¨ÑÓʱʱ¼ä{unsignedchartemp;for(;number!=0;number--){for(temp=0;temp50;temp++){}}}voidSend_uart(BYTEi){EA=0;ES=0;TI=0;SBUF=i;while(TI==0);TI=0;ES=1;EA=1;}//============================================================//***********************************************************////º¯Êý¹¦ÄÜ£º·¢ËÍ×Ö·û´®µ±×Ö·û´®µÄÖ¸ÕëÒƵ½¡®\0'ʱ½áÊø//º¯ÊýÊäÈ룺±»·¢Ë͵Ä×Ö·û´®String//º¯Êý·µ»Ø£ºÎÞ//***********************************************************////============================================================voidSendConstString(BYTEconst*s){BYTEc;for(;;){c=*s;if('\0'==c){break;}Send_uart(c);s++;}}//====================================================//****************************************************//º¯Êý¹¦ÄÜ:½«1ByteµÄ16½øÖƵÄÊý±äΪ×Ö·û´®·¢ËÍ//º¯ÊýÊäÈ룺±»·¢Ë͵Ä×Ö½Ú//º¯Êý·µ»Ø£ºÎÞ//****************************************************//====================================================voidSendHexString(BYTEcHex){BYTEcTemp;cTemp=cHex4;if(cTemp9){Send_uart(cTemp+'A'-10);}else{Send_uart(cTemp+'0');}cTemp=cHex&0x0F;if(cTemp9){Send_uart(cTemp+'A'-10);}else{Send_uart(cTemp+'0');}Send_uart('');}/*********************************************************************Ãû³Æ:StartI2C()*¹¦ÄÜ:I2CÆô¶¯ÐźÅ*ÊäÈë:*Êä³ö:***********************************************************************/voidStartI2C()//I2CÆô¶¯ÐźÅ{sda=1;Delays(1);scl=1;Delays(1);sda=0;Delays(1);scl=0;Delays(1);}/*********************************************************************Ãû³Æ:Stop2C()*¹¦ÄÜ:I2CÍ£Ö¹ÐźÅ*ÊäÈë:*Êä³ö:***********************************************************************/voidStopI2C()//I2CÍ£Ö¹ÐźÅ{scl=0;Delays(1);sda=0;Delays(1);scl=1;Delays(1);sda=1;Delays(1);}/*********************************************************************Ãû³Æ:ackI2C()*¹¦ÄÜ:·¢ËÍÓ¦´ðÐźÅ*ÊäÈë:*Êä³ö:***********************************************************************/voidackI2C()//·¢ËÍÓ¦´ðÐźÅ{sda=0;Delays(1);scl=1;Delays(1);scl=0;Delays(1);sda=1;Delays(1);}/*********************************************************************Ãû³Æ:NoackI2C()*¹¦ÄÜ:·¢ËÍ·ÇÓ¦´ðÐźÅ*ÊäÈë:*Êä³ö:***********************************************************************/voidNoackI2C()//·¢ËÍ·ÇÓ¦´ðÐźÅ{sda=1;Delays(1);scl=1;Delays(1);scl=0;Delays(1);}/*********************************************************************Ãû³Æ:TestackI2C()*¹¦ÄÜ:¼ì²éÓ¦´ðÐźÅ-Êä³öErrorBit*ÊäÈë:*Êä³ö:***********************************************************************/bitTestackI2C()//¼ì²éÓ¦´ðÐźÅ-Êä³öErrorBit{bitErrorBit;sda=1;Delays(1);scl=1;Delays(1);ErrorBit=sda;Delays(1);scl=0;Delays(1);return(ErrorBit);}/*********************************************************************Ãû³Æ:x24c02_init()*¹¦ÄÜ:24c02³õʼ»¯×Ó³ÌÐò*ÊäÈë:ÎÞ*Êä³ö:ÎÞ***********************************************************************/voidfreebus(void){scl=1;Delays(1);sda=1;Delays(1);}/*********************************************************************Ãû³Æ:Write8BitI2C(unsignedcharinput)*¹¦ÄÜ:Êä³ö8λÊý¾Ý(input)*ÊäÈë:input*Êä³ö:8λÊý¾Ý(input)***********************************************************************/bitWrite8BitI2C(ucharinput)//Êä³ö8λÊý¾Ý(input){unsignedchartemp;for(temp=8;temp!=0;temp--){sda=(bit)(input&0x80);//inputÓë0x80µÃµ½Êý¾Ý×î¸ßλDelays(1);scl=1;Delays(1);scl=0;Delays(1);input=input1;}return1;}/*********************************************************************Ãû³Æ:Read8BitI2C()*¹¦ÄÜ:¶Á³ö8λÊý¾Ý*ÊäÈë:*Êä³ö:rbyte***********************************************************************/ucharRead8BitI2C()//¶Á³ö8λÊý¾Ý{uchartemp,rbyte;rbyte=0;for(temp=0;temp8;temp++){scl=1;Delays(1);rbyte=rbyte1;Delays(1);rbyte=rbyte|((uchar)(sda));scl=0;Delays(1);}return(rbyte);}voidIAP_disable(){IAP_CONTR=0;IAP_CMD=0;IAP_TRIG=0;IAP_ADDRH=0x80;IAP_ADD
本文标题:电子指南针
链接地址:https://www.777doc.com/doc-75404 .html