⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.c

📁 用pic18f8720做的电压采样处理程序
💻 C
字号:
#include <p18f8720.h>
#pragma config   WDT = OFF


union  adres
    {
       unsigned int y1;
       unsigned char adre[2];
      }adresult;
unsigned  char i;
unsigned  int  j;
       
/* I/O initial */

void  initial(void)
 {
  TRISD = 0X00;
     i  = 0x00;
     }
/*A/D change */
void  adin(void)
 {
 
  ADCON0 = 0X01;
  
  ADCON1 = 0X00;
  
  ADCON2 = 0XBB;
  
  PIE1   = 0X00;
  
  PIE2   = 0X00;
  PIE1bits.ADIE   = 0;
              
INTCONbits.PEIE   = 1;
 TRISAbits.TRISA0  = 1;
INTCONbits.GIE = 1;

  }
void delay(void)
 {
   for(j=65535; --j; )continue;
   }
   void alarm(void)
    {
      i = i^0xFF;
     PORTD =  i;
     }


  unsigned int AD_Initial(void)   //interrupt
  {
     char n;

     for(n=0;n<4;n++)
     {
         ADCON0bits.GO_DONE= 1;
         while(ADCON0bits.GO_DONE)continue;
         adresult.adre[0] = ADRESL;
         adresult.adre[1] = ADRESH;
     }
     
     return adresult.y1;
}

 void main()
  {
    unsigned int res;
   adin();
    
   initial();
   

   while(1)
    {
     res=AD_Initial();
     if(res > 0x100)
     {
      PORTDbits.RD0 = 0;
      delay();
     }
     else if(res > 0x200)
     {
        PORTDbits.RD1 = 0;
        delay();
       }
     else if(res > 0x300)
     {
        PORTDbits.RD2 = 0;
        delay();
       }
     
     }
   }
       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -