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

📄 adccont.c

📁 8051试验程序 基础教材
💻 C
字号:
/* Author      : ADI - Apps            www.analog.com/MicroConverter

 Date          : October 2003

 File          : ADCcont.c

 Hardware      : ADuC842

 Description   : Performs ADC conversions in continuous mode at a
                 rate of 104KSPS (assuming an 2.097152 Mclk).
                 Outputs ADC results via UART.  Continuously
                 flashes LED.
                 All rate calculations assume an 2.097152MHz Mclk. */

#include <stdio.h>
#include <ioaduc843.h>

#define adcled P3_bit.P33
#define LED P3_bit.P34		//P3.4 drives red LED on eval board

#pragma vector = ADCI_int
__interrupt void adc_int(){
	printf("%02BX%02BX\n",ADCDATAH,ADCDATAL);
	return;
}

void DELAY(int length);
			

void main(void)
{
	int CHAN = 0;

	T3CON = 0x083;
	T3FD = 0x02D;
	SCON = 0x052;

	/* PRECONFIGURE... */

	ADCCON1 = 0x0AC;	// power up ADC /8 + 4 acq clock
	ADCCON2 = CHAN;		// select channel to convert

	/*LAUNCH CONTINUOUS CONVERSIONS...*/

	IE_bit.EA = 1;		// enable interrupts
	IE_bit.EADC = 1;	// enable ADC interrupt
	ADCCON2_bit.CCONV = 1;	// begin continuous conversions

	/* CONTINUE WITH OTHER CODE... */
	
	for (;;){
		DELAY(20);
		LED ^= 1;       // blink (complement) the LED
        }

	// the micro is free to continue with other tasks (flashing the LED in
	// this case) while the ADC is continuously converting, and results
	// are being handled by the ADC interrupt service routine.
}

void DELAY(int length){
	while (length >=0)
		length--;
}

⌨️ 快捷键说明

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