当前位置:首页 > 单片机 > 单片机
[导读]//测试STC12C4052的AD//P1.7接可变电阻。P3.5 清位即开始转换#include "STC12C4052AD.h"void delay(){unsigned char l2;unsigned char l3 = 10;while(--l3){l2 = 20;while( --l2);}}main(){P3_7 = 0;ADC_CONTER = 0x

//测试STC12C4052的AD

//P1.7接可变电阻。P3.5 清位即开始转换
#include "STC12C4052AD.h"

void delay()
{
unsigned char l2;
unsigned char l3 = 10;
while(--l3)
{
l2 = 20;
while( --l2);
}

}

main()
{
P3_7 = 0;
ADC_CONTER = 0x80; //开启ad比较电压
while(1)
{
P3_5 = 1;
if ( P3_5 == 0 )
{
P1M0 = 0x80; //P1.7为开漏输入
P1M1 = 0x80; //P1.7为高阻输入
ADC_CONTER = 0xE7; //P1_7为ad
delay();
ADC_DATA = 0;
ADC_CONTER |= 0x08;
while ((ADC_CONTER & 0x10) != 0x10 )P1 = ADC_CONTER;
ADC_CONTER &= 0xe7;
P1 = ADC_DATA;
P3_7 = 1;
P1M0 = 0;
while(1);
}
}
}

//-------------------第二种方法 --------------------

#define uchar unsigned char
#define uint unsigned int
#include "stc12c5410ad.h"

void InitAd(void)
{
P1M0=0xff;
P1M1=0xff;


}
void InitUart(void)
{
SCON|=0X50;
TH1=TL1=0XFB;
TMOD|=0X20;
ES=1;
TR1=1;


}
void delay(void)
{
uint i;
for(i=0;i<0xfff0;i++);
}
void ReadAd(void)
{
uchar temp[16],i;
for(i=0;i<8;i++)
{
ADC_CONTR=i;
ADC_CONTR|=0x88;
while(!(ADC_CONTR&0x10));
ADC_CONTR=ADC_CONTR&0xef;
temp[2*i]=ADC_DATA;
temp[2*i+1]=ADC_LOW2;
}

SBUF=0xa0;
while(!TI);
TI=0;
for(i=0;i<16;i++)
{
SBUF=temp[i];
while(!TI);
TI=0;
}
SBUF=0xf6;
while(!TI);
TI=0;


}
main()
{
InitAd();
InitUart();
while(1)
{
ReadAd();
delay();
}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭