#include<>电子爱好者社区,***@3sw)[%Na#include<>电子爱好者社区+[$o2CrRMFWf6osfrP1_ADC_EN=0x97;//A/D转换功能允许寄存器]_f+Qw1Z0sfrADC_CONTR=0xC5;//A/D转换控制寄存器电子爱好者社区z8NKMAS|sfrADC_DATA=0xC6;//A/D转换结果寄存器高8位,sfrADC_LOW2=0xC7;//A/D转换结果寄存器低2位,如果是8位AD无此寄存器。f/jVd:g8lJ0电子爱好者社区:h(l3xwI%v*C|q4M#defineucharunsignedchar;$OQ#N/`#l:E&KI0#defineuintunsignedint;Uintad_out1,ad_out2;6D5YtC(jm%bd7n3b?w0voiddelay(uchardelay_time)//延时函数电子爱好者社区:^2L+nYT7w5?*[{R"r%vK)]*hl\i2h0 ucharn;E&:tV0 uintm;P,s{zqj0 for(n=0;n<delay_time;n++)电子爱好者社区+i/QD/X!C+u"E*AZ {tmymXI+b0 for(m=0;m<10000;m++);0dpvxOOk+uB0 }p/k(j_5`g+}电子爱好者社区,voN[3el9_电子爱好者社区(Q_4t#x&mOc?ucharget_AD_result(ucharchannel)电子爱好者社区3Op8~]{K_{电子爱好者社区pzK2^n'p ucharAD_finished=0;//存储A/D转换标志电子爱好者社区0`R:?,y;AN/}.kqz ADC_DATA=0;电子爱好者社区K5f[x{-qY$S%}0S+L2v ADC_CONTR=channel;//选择A/D当前通道电子爱好者社区c$M2Fw#aeY _nop_();_nop_();_nop_(); //使输入电压达到稳定_nop_();_nop_();_nop_();%B2}+})Q1iL1in'_/Z0 ADC_CONTR|=0x08;//0000,1000令ADC_START=1,启动A/D转换电子爱好者社区******@w(~!Yr2tu"B AD_finished=0;电子爱好者社区dldW+Q2sxh)M while(AD_finished==0)//等待A/D转换结束******@bqb$Ja0 {电子爱好者社区zg[&p,y/lKF AD_finished=(ADC_CONTR&0x10);//0001,0000,ADC_FLAG==1测试A/D转换结束否电子爱好者社区YK+`/]'R-I }bAc1GJ+jphL0 ADC_CONTR&=0xF7;//1111,0111令ADC_START=0,关闭A/D
STC单片机通用AD转换程序 来自淘豆网www.taodocs.com转载请标明出处.