<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機驅(qū)動六向重力傳感器

          單片機驅(qū)動六向重力傳感器

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏


          /*********************************************************************************************
          程序名:   單片機驅(qū)動六向重力傳感器例程
          編寫人:    杜洋 
          編寫時間:  2010年3月23日
          硬件支持:  STC12C4052AD 內(nèi)部RC振蕩(4MHz)
          接口說明:  一位數(shù)碼管(用于顯示),傳感器接口
          修改日志:  
          /*********************************************************************************************
          說明:
          數(shù)碼管顯示數(shù)字即表示傳感器方位狀態(tài)。
          0:無傳感器連接,1:上,2:下,3:左,4:右,5:前,6:后

          本文引用地址:http://www.ex-cimer.com/article/201612/324204.htm

          # 6個方向的開關(guān)量關(guān)系如下:

          朝上:全開
          朝下:全關(guān)
          朝前:K3、K4開
          朝后:K1、K2開
          朝左:K1、K3開
          朝右:K2、K4開
          /*********************************************************************************************/

          #include //STC12C5A60S2系列單片機頭文件

          /**********************************************************************************************/
          sbitDY_LED1_L1=P1 ^ 2; //a:數(shù)碼管段碼定義
          sbitDY_LED1_L2=P1 ^ 3; //b
          sbitDY_LED1_L3=P3 ^ 4; //c
          sbitDY_LED1_L4=P3 ^ 3; //d
          sbitDY_LED1_L5=P3 ^ 2; //e
          sbitDY_LED1_L6=P1 ^ 1; //f
          sbitDY_LED1_L7=P1 ^ 0; //g
          sbitDY_LED1_L8=P3 ^ 5; //DP點

          sbitD1=P1 ^ 7; //六向傳感器接口
          sbitD2=P1 ^ 6; //
          sbitD3=P1 ^ 5; //
          sbitD4=P1 ^ 4; //

          unsigned char code disdata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //無小數(shù)點數(shù)碼管段碼表(0~9)

          /*********************************************************************************************/
          void delay1ms (unsigned int a){ // 1ms延時程序
          unsigned int i;
          while( --a != 0){
          for(i = 0; i < 900; i++);
          }
          }
          /*********************************************************************************************/
          void dis_off (void){ //關(guān)所有顯示P1 = 0xff;
          P3 = 0xff;
          }
          /*********************************************************************************************/
          void display (unsigned char d){ //顯示驅(qū)動程序
          unsigned char i;
          i = d & 0x01;
          if(i == 0x01){
          DY_LED1_L1 = 0;}
          i = d & 0x02;
          if(i == 0x02){
          DY_LED1_L2 = 0;}
          i = d & 0x04;
          if(i == 0x04){
          DY_LED1_L3 = 0;}
          i = d & 0x08;
          if(i == 0x08){
          DY_LED1_L4 = 0;}
          i = d & 0x10;
          if(i == 0x10){
          DY_LED1_L5 = 0;}
          i = d & 0x20;
          if(i == 0x20){
          DY_LED1_L6 = 0;}
          i = d & 0x40;
          if(i == 0x40){
          DY_LED1_L7 = 0;}
          i = d & 0x80;
          if(i == 0x80){
          DY_LED1_L8 = 0;}dis_off();
          }
          /*********************************************************************************************
          函數(shù)名:六向方位傳感器驅(qū)動程序
          調(diào) 用:S_6D();
          參 數(shù):無
          返回值:0:無傳感器連接,1:上,2:下,3:左,4:右,5:前,6:后
          結(jié) 果:輸出傳感器當(dāng)前方位數(shù)值
          備 注:
          /**********************************************************************************************/
          unsigned char S_6D (void){ //6向方位傳感器(6D)驅(qū)動程序
          unsigned char a;
          a =0; //
          if(D1 == 0 && D2 == 0 && D3 == 0 && D4 == 0){
          a = 1;
          }
          if(D1 == 1 && D2 == 1 && D3 == 1 && D4 == 1){
          a = 2;
          }
          if(D1 == 0 && D2 == 0 && D3 == 1 && D4 == 1){
          a = 3;
          }
          if(D1 == 1 && D2 == 1 && D3 == 0 && D4 == 0){
          a = 4;
          }
          if(D1 == 0 && D2 == 1 && D3 == 0 && D4 == 1){
          a = 5;
          }
          if(D1 == 1 && D2 == 0 && D3 == 1 && D4 == 0){
          a = 6;
          }
          return a; //返回值
          }
          /**********************************************************************************************/
          /*********************************************************************************************/
          void main (void){ //主程序(僅用與傳感器測試)
          unsigned char c;
          dis_off();
          c = 0;
          while (1){
          c = S_6D();//讀取傳感器狀態(tài)
          if(c != 0){//不為0時顯示數(shù)值
          display(disdata[c]);//調(diào)用數(shù)碼管顯示
          }
          }
          }
          /*************************************************************



          關(guān)鍵詞: 單片機六向重力傳感

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();