在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機實現光源的跟蹤

      51單片機實現光源的跟蹤

      作者: 時間:2016-11-27 來源:網絡 收藏
      AD采集兩路電壓,并比較,控制電機轉動方向,并將數據傳至上位機
      西安理工大學--自動化與信息工程學院
      鄒藝良 編寫(2014.08.25)
      //*******************************
      //西安理工大學--自動化與信息工程學院--鄒藝良
      //*******************************
      #include
      #include
      #include
      void ADC_init();
      int get_ADC_result(char ch);
      unsigned int show_ADC_result_ch0();
      unsigned int show_ADC_result_ch1();
      void Send(unsigned char dat);
      void uart_init();
      void delay(unsigned int a);
      void delay_10ms();
      sbit P2_0=P2^0;
      sbit P2_1=P2^1;
      sbit P1_3=P1^3;
      void positive_turn(unsigned int count); //順時針
      void negative_turn(unsigned int count); //逆時針
      void stop_turn();
      void main()
      {
      unsigned int ch0,ch1;
      int value,chazhi,z1,z2,z3,z4,gap;
      gap=30;
      while(1)
      {
      uart_init();
      ADC_init();
      //顯示左右兩傳感器電壓
      ch0=show_ADC_result_ch0();//通道ch0電壓
      Send(0x20); //四個空格符
      Send(0x20);
      Send(0x20);
      Send(0x20);
      ch1=show_ADC_result_ch1();//通道ch1電壓
      Send(0x20); //四個空格符
      Send(0x20);
      Send(0x20);
      Send(0x20);
      //顯示差值電壓
      value=ch0-ch1;
      if(ch0>ch1)
      {chazhi=ch0-ch1;}
      else
      {chazhi=ch1-ch0;}
      z1=chazhi/1000;
      z2=chazhi00/100;
      z3=chazhi000/10;
      z4=chazhi000;
      Send(0x43);//C
      Send(0x3D);//=
      if(ch0
      {Send(0x2D);}
      else
      {Send(0x2B);}
      Send(z1+48);
      Send(0x2E);//.
      Send(z2+48);
      Send(z3+48);
      Send(z4+48);
      if((ch0+gap)
      {Send(0x52);}
      if(ch0>(ch1+gap))
      {Send(0x4C);}
      if(-gap<(ch0-ch1) || (ch0-ch1)
      {Send(0x20);}
      //Send(0xD); //回車
      //Send(0xA); //換行
      //光源跟蹤
      if(-gap
      stop_turn();
      else if(value<-gap)
      negative_turn(10);
      else if(value>gap)
      positive_turn(10);
      //for(p=0;p<50;p++) //延時1s刷新一次
      //{delay_10ms();}
      }
      }
      void ADC_init()
      {
      P1ASF=0x03;//設置P1.0,P1.1為AD轉換口
      ADC_CONTR=0x80;//打開AD電源、選擇轉換速度、
      ADC_RES=0;
      ADC_RESL=0;
      AUXR1&=0xfb; //設置AD轉換結果存放方式,此設為10位
      delay(5);
      }
      int get_ADC_result(char ch)
      {
      unsigned int result;
      ADC_CONTR=0x88|ch;//開啟AD,選擇通道
      _nop_();
      _nop_();
      _nop_();
      _nop_();
      while(!(ADC_CONTR & 0x10));//等待轉換完成,FLAG標志位置位
      ADC_CONTR&=0x67; //關AD,清FLAG01100111
      result=ADC_RES*4+ADC_RESL; //獲取10位結果
      return(result);
      }

      上一頁 1 2 下一頁

      關鍵詞: 51單片機光源跟

      評論


      技術專區(qū)

      關閉