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

📄 main.c

📁 c8051f020_adc.zip,资源多多共享!不亦乐乎!
💻 C
字号:
#include <C8051F020.h>
#include <stdio.h>

#define V_REF 3

#define BIT4 0x01 << 4
#define BIT5 0x01 << 5
#define BIT7 0x01 << 7

unsigned char volt;

void main(void)
{
/* disable to watchdog timer */
  EA = 0;
  WDTCN = 0xDE;
  WDTCN = 0xAD;
  EA = 1;

/* setup serial 0 */
  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         */

  P1MDIN &= !0x01;  /* Set pin P1.0 as analog input                     */
  REF0CN  = 0x0A;   /* Set voltage reference to "internal"              */
  ADC1CF  = 0xF9;   /* Set analog amp gain to 1.0                       */
  AMX1SL  = 0x00;   /* Set MUX to pin 0                                 */
  ADC1CN |= BIT7;   /* Set AD1EN to activate the ADC                    */

/* Start first sample */ 
  ADC1CN &= (0xFF ^ BIT5);  /* Clear AD1INT flag                        */
  ADC1CN |= BIT4;           /* Set AD1BUSY flag, this starts conversion */

  while(1)
  {
    if(ADC1CN & BIT5)
    {
      //printf ("ADC0 Count %4u = %01u.%04u Volts\r",
      //  (unsigned) ADC1,
      //  (unsigned) (ADC1 * V_REF) >> 8,                        /* Output Integer Portion */
      //  (unsigned) ((ADC1 * V_REF * 10000UL) >> 8UL) % 10000); /* Output Decimal Portion */      
      ADC1CN &= (0xFF ^ BIT5);  /* Clear AD1INT flag                         */
      ADC1CN |= BIT4;           /* Set AD1BUSY flag, this starts conversion  */
    }
  }
}

⌨️ 快捷键说明

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