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

📄 ad320.c

📁 8051f320单片机AD程序
💻 C
字号:
#include   <c8051f320.h>   
  #include   <stdio.h>   
    
  #define   VREF 3 /*   Voltage   Reference   */   
    
  void   main   (   void   )     {   
    
  unsigned   int   adval;   
    
  /*   initialize   the   serial   interface   */   
      SCON0     =   0x50;                       /*   SCON0:   mode   1,   8-bit   UART,   enable   rcvr                 */   
      TMOD     |=   0x20;                               /*   TMOD:     timer   1,   mode   2,   8-bit   reload                 */   
      TH1         =   221;                                 /*   TH1:       reload   value   for   9600   baud   @   16MHz       */   
      TR1         =   1;                                     /*   TR1:       timer   1   run                                                     */   
      TI0         =   1;                                     /*   TI0:       set   TI   to   send   first   char   of   UART         */   
    
  /* Configure   P1.0   as   Analog   Input     */   
      P1MDIN   =   0xFE;                                 /*     P1.0   only                                                                 */     
      P1SKIP   =   0x01;                                 /*     Skip   Crossbar   decoding   for   this   pin             */   
    
  /*   Init   MUX   */   
      AMX0P   =   0x00;                                   /*     Select   Positive   Input   Port   P1.0             */   
      AMX0N   =   0x1F;                                   /*     GND   Negative   Inputs   (Single-ended   Mode)         */   
    
  /*   Init   ADC   */   
      ADC0CF   =   0xF8;                                 /*     SAR   clock   =   31,   Right-justified   result         */   
      ADC0CN   =   0x80;                                 /*     Enable   ADC   0,   Normal   Tracking,               */   
                                                                  /* Start   Convert   on   AD0BUSY   set                 */   
    
  while   (1){   
    
      AD0BUSY   =   1;                                 /*     Start   ADC   0   conversion                     */   
      while   (AD0BUSY);                             /*     Wait   for   conversion                         */   
    
  /*   Read   0-511   value   in   ADC0   */   
      adval   =   ADC0L   +   (ADC0H   <<   8);   
    
  /*   Output   0-511   ADC0   value   without   using   floating-point   */   
      printf   ("ADC0   Value   %4u   =   %01u.%04u   Volts\r",   
                    (unsigned)   adval,   
                    (unsigned)   (adval   *   VREF)   >>   10,                                                     /*   Output   Integer   Portion   */   
                    (unsigned)   ((adval   *   VREF   *   10000UL)   >>   10UL)   %   10000);       /*   Output   Decimal   Portion   */   
                            
      }       
  }   
    
  

⌨️ 快捷键说明

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