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

📄 main.c

📁 c8051f330_adc.zip,资源多多共享!不亦乐乎!
💻 C
字号:
#include <c8051f330.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 P0.0 as Analog Input  */
  P0MDIN = 0xFE;				   /*  P0.0 only                                		*/ 
  P0SKIP = 0x01;				   /*  Skip Crossbar decoding for this pin  	    	*/

/* Init MUX	 */
  AMX0P = 0x00;				     /*  Select Positive Input Port P0.0              */
  AMX0N = 0x11;				     /*  GND Neg 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 Count %4u = %01u.%04u Volts\r",
         (unsigned) adval,
         (unsigned) (adval * VREF) >> 9,                          /* Output Integer Portion */
         (unsigned) ((adval * VREF * 10000UL) >> 9UL) % 10000);   /* Output Decimal Portion */
            
  }  
}

⌨️ 快捷键说明

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