新手入门AD转换
直接将数据在RB口读出
代码如下
#include<pic.h>
#define uint unsigned int
#define uchar unsigned char
uint adval,ad;
// void adget(uchar advel);
void adintial();
void delay(uint len);
void initial();
void display();
void initial(void)
{
TRISA=0X02;
TRISB=0x00;
// PORTB=0x00;
// RBIF=1;
}
void delay(uint len)
{
uint i,d=10;
i=d*len;
while(--i)
{;}
}
void adinitial(void)
{
ADCON1=0X00; //AD配置,VDD参考电压
ADCON0=0X08; //F/2,AN1模拟输入,AD开
TRISA1=1; //RA1 is selectd for the input
//ADON=1; //启动AD转换
ADIF=0; //清除AD中断允许位
ADIE=1; //设置AD中断允许
PEIE=0; //AD interrupt enable
GIE=1; //全局中断开
ADON=1; //start AD conversion
}
void display()
{
TRISB=adval;
}
//uint adval,ad;
uchar adget()
{
delay(100);
// waiting(20);
//ADIF=0;
ADCON0=0X0D;
GO=1;
while(GO);
adval=ADRES;
delay(100);
ad=adval;
return(adval);
/*while(GO)
{
}*/
}
void main()
{
initial();
while(1)
{
adinitial();
adget();
display();
}
}
问题是仿真时只有RB0-RB2和RB7有反应,其他口没反应,请高手指点。
此帖出自
小平头技术问答
一周热门 更多>