ADC0809采樣轉(zhuǎn)換程序代碼
#include
#include
#define uchar unsigned char
#define IN0 XBYTE[0x7ff8] /*設(shè)置ADC0809的通道0地址*/
sbit ad_busy=P3^3; /*即EOC狀態(tài)*/
void adc0809(uchar idata *x) /*采樣結(jié)果放指針中的A/D采集函數(shù)*/
{
uchar i;
uchar xdata *ad_adr;
ad_adr=&IN0;
for(i=0;i<8;i++) /*處理8通道 */
{
*ad_adr=0; /*啟動(dòng)轉(zhuǎn)換*/
i=i;
i=i; /*延時(shí)等待EOC變低*/
while(ad_busy==0) /*查詢等待轉(zhuǎn)換結(jié)束*/
x[i]=*ad_adr; /*存轉(zhuǎn)換結(jié)果*/
ad_adr++; /*下一通道*/
}
}
void main(void)
{
static uchar idata ad[10];
adc0809(ad); /*采樣ADC0809通道的值*/
}