• <acronym id="ibnab"><strong id="ibnab"></strong></acronym><track id="ibnab"><strike id="ibnab"></strike></track>
  • <track id="ibnab"></track><acronym id="ibnab"></acronym>
  • <pre id="ibnab"><ruby id="ibnab"></ruby></pre>
  • <td id="ibnab"><noscript id="ibnab"></noscript></td>
  • <p id="ibnab"><label id="ibnab"></label></p>
  • 專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    PIC單片機AD中斷調試(無數字濾波)

    作者:佚名   來源:不詳   點擊數:  更新時間:2014年08月31日   【字體:

    PIC單片機AD轉換的中斷調試程序如下(無數字濾波):

    #include<pic.h>
    #define uchar unsigned char
    #define uint  unsigned int
    __CONFIG(0x3B31);
    const uchar disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    uint adval;
    float advalf;
    uchar flag;
    void delayms(uint x)
    {  
       uint j,k;
       for(j=x;j>0;j--)
          for(k=110;k>0;k--);
    }
    void display(uint x )
    {  
     PORTD= disp[x/1000]|0x80;
        PORTA= 0xF1;
        delayms(1);
      
        PORTD= disp[x/100%10];
        PORTA= 0xF3;
        delayms(1);

        PORTD= disp[x/10%10];
        PORTA= 0xF5;
        delayms(1);

        PORTD= disp[x%10];
        PORTA= 0xF7;
        delayms(1);
    }
    void init()
    {
     uint adval=0;
        float advalf=0;
     flag = 0;
        TRISA=0x01;
        TRISC=0;
        PORTC=0x01;
        TRISD=0;
      
        ADCON0=0x41;  //8分頻(4M)、AN0、使能ADC
       ADCON1=0x8E;  //右對齊、AN0通道
     ADRESH = ADRESL = 0;
     PIE1 |=0x40;  //AD中斷使能
     INTCON |= 0xC0;  //外設使能、全局中斷使能
     ADGO=1;    //ADC轉換使能
        delayms(10);
    }
    void interrupt AD(void)
    {
     if(ADIF&&ADIE)  //AD中斷使能且標志位置位 
     {
      ADIF = 0;  //標志位復位
      ADGO=0;   //暫停AD轉換
      flag = 1;  //置標志位
     }
    }

    void main()
    {  
        init();
     while(1)
     {
      if(flag)
      { 
       flag = 0;
       adval=ADRESH;
          adval=adval<<8|ADRESL;
          advalf=adval/1023.0*5.0;
          adval=advalf*1000;
             ADGO=1;  //ADC轉換使能
            display(adval);
      }
     }
    }

    關閉窗口
    国产A片好看
  • <acronym id="ibnab"><strong id="ibnab"></strong></acronym><track id="ibnab"><strike id="ibnab"></strike></track>
  • <track id="ibnab"></track><acronym id="ibnab"></acronym>
  • <pre id="ibnab"><ruby id="ibnab"></ruby></pre>
  • <td id="ibnab"><noscript id="ibnab"></noscript></td>
  • <p id="ibnab"><label id="ibnab"></label></p>