色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ADC0832模數(shù)轉(zhuǎn)換MSP430單片機(jī)程序+電路圖

          ADC0832模數(shù)轉(zhuǎn)換MSP430單片機(jī)程序+電路圖

          作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏

          /***********************************************
          sbit cs=P2^0;
          sbit clk=P2^1;
          sbit DI=P2^2;
          sbit DO=P2^6;
          *************************************************/
          uint adval;
          uchar temp;
          uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
          void delay(uint ms)
          {
          uchar j;
          while(ms--)
          {
          for(j=0;j<120;j++);
          }
          }
          void ADC_start()
          {
          P2OUT|=BIT0;//cs=1
          _NOP();
          P2OUT&=~BIT1;//clk=0
          _NOP();
          P2OUT&=~BIT0;//cs=0
          _NOP();
          P2OUT|=BIT2;//DI=1
          _NOP();
          P2OUT|=BIT1;//clk=1
          _NOP();
          P2OUT&=~BIT2;//DI=0;
          _NOP();
          P2OUT&=~BIT1;//clk=0;
          _NOP();
          }
          void ADC_read(uint CH)
          {
          uchar i;
          ADC_start();
          if(CH==0) //選擇通道0
          {
          P2OUT|=BIT2;// DI=1;
          P2OUT |=BIT1;//clk=1;
          _NOP();
          _NOP();
          P2OUT &=~BIT1;//clk=0;//第一個(gè)下降沿來(lái)DI=1
          _NOP();
          _NOP();
          P2OUT |=BIT2;//DI=0;
          P2OUT |=BIT1;//clk=1;
          _NOP();
          _NOP();
          P2OUT&=~BIT1;//clk=0;//第二個(gè)下降沿來(lái)DI=0,DI兩次為10,選ch0通道
          _NOP();
          _NOP();
          }
          else //選擇通道1
          {
          P2OUT|=BIT2;// DI=1;
          P2OUT |=BIT1;//clk=1;
          _NOP();
          _NOP();
          P2OUT &=~BIT1;//clk=0;//第一個(gè)下降沿來(lái)DI=1
          _NOP();
          _NOP();
          P2OUT |=BIT2;//DI=1;
          P2OUT |=BIT1;//clk=1;
          _NOP();
          _NOP();
          P2OUT&=~BIT1;//clk=0;//第二個(gè)下降沿來(lái)DI=0,DI兩次為11,選ch1通道
          _NOP();
          _NOP();
          }
          /****************下降沿讀數(shù)據(jù)*******************/
          P2OUT|=BIT1;//clk=1;
          _NOP();
          P2OUT&=~BIT1;//clk=0;再來(lái)下降沿讀書
          for(i=0;i<8;i++)
          {
          P2OUT|=BIT2;// DI=1;
          if(DO) // 判斷DO;
          {
          temp |=0x01;
          }
          else
          {
          temp &=0xfe;
          }
          P2OUT&=~BIT1;//clk=0;
          _NOP();
          _NOP();
          P2OUT|=BIT1;//clk=1;//上升沿來(lái),左移1位
          temp=temp<<1;
          }
          adval=temp;
          }
          /********顯示數(shù)據(jù)********************************/
          void display(uint dat)
          {
          P2OUT &=~BIT3;//關(guān)閉個(gè)位顯示P2.3
          P2OUT &=~BIT4;//關(guān)閉十位顯示P2.4
          P2OUT |=BIT5;//開啟百位顯示P2.5
          P1OUT=tab[dat/100];
          delay(1);
          P1OUT=0xff;
          P2OUT &=~BIT3;//關(guān)閉個(gè)位顯示P2.3
          P2OUT |=BIT4;//開啟十位顯示P2.4
          P2OUT &=~BIT5;//關(guān)閉百位顯示P2.5
          P1OUT=tab[(dat%100)/10];
          delay(1);
          P1OUT=0xff;
          P2OUT |=BIT3;//開啟個(gè)位顯示P2.3
          P2OUT &=~BIT4;//關(guān)閉十位顯示P2.4
          P2OUT &=~BIT5;//關(guān)閉百位顯示P2.5
          P1OUT=tab[dat/10];
          delay(1);
          P1OUT=0xff;
          }
          void main()
          {

          WDTCTL = WDTPW + WDTHOLD;
          P2DIR =0x3f;
          P1DIR|=0x7f;
          while(1)
          {
          ADC_read(0);
          delay(1);
          display(adval);
          }
          }

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: ADC0832模數(shù)轉(zhuǎn)換MSP43

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉