刚接触PIC18F4520这款单片机。还有很多地方不太了解,帮别人做个AD转换程序,卡住了,来请教坛里的牛人大哥。
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include<p18f4520.h>
#include<adc.h>
/*
*
*/
void delay(unsigned int dly)
{
unsigned char i=100;
for(;dly>0;dly--)
for(;i>0;i--);
}
/*
???ADC???
*/
void init_adc()
{
PORTAbits.AN0=1;
ADCON1=0x00;//??AIN0?????
ADCON0=0x08;//set 2 channel
TRISA |=0x04;
ADCON2=0x90;//AD??????16Tad Fosc/16
PIR1bits.ADIF=0;
ADRES=0x0000;
}
unsigned get_ad()
{
unsigned char tmp_data=0;
ADCON0 |= 0x01;
while(ADCON0 &0x02);
PIR1bits.ADIF=0;
tmp_data=ADRESL;
return tmp_data;
}
int main(int argc, char** argv)
{
unsigned char tmp=255;
unsigned char value;
TRISB=0x00;
PORTB=0xff;
init_adc();
while(1)
{
value=get_ad();
PORTB=value;
delay(1000);
}
return (0);
} |