adc.c

来自「CCS_ADC 16f877用法,通到一为RA0;」· C语言 代码 · 共 52 行

C
52
字号
#include<18f258.h>
#fuses XT,NOWDT,PUT,NOPROTECT,BROWNOUT,NOLVP
#device ADC=10
#use delay(clock=4000000)
#use fast_io(B)
static int digit0,digit1;
int const LED_SEG[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
#int_timer1
void isr1()
{
	static int flag=0;
	set_timer1(0xFF06);
	output_low(PIN_C0);
	output_low(PIN_C5);
	if(flag)
	{
		flag=0;
		output_b(LED_SEG[digit1]);
		output_high(PIN_C5);
	}
	else
	{
		flag=1;
		output_b(LED_SEG[digit0]);
		output_high(PIN_C0);		
	}
}

void main()
{
	long data;	
	setup_adc_ports(RA0_ANALOG_RA3_RA2_REF);
	setup_adc(ADC_CLOCK_DIV_64);
	set_tris_b(0);
	set_tris_a(0x0f);
	SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);
	set_timer1(0xFF06);
	enable_interrupts(INT_TIMER1);
	enable_interrupts(INT_AD);
	enable_interrupts(GLOBAL);
	while(1)
	{
		set_adc_channel(0);
		delay_us(50);
		data=read_adc();
		data=(data*50)/1024;
	//	data=29;
		digit0=data%10;
		digit1=data/10;
		delay_ms(200);
	}
}

⌨️ 快捷键说明

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