📄 adc.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -