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

📄 main.c

📁 c8051f320系列单片机使用adc的c源程序。
💻 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 P0.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 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 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 + -