欢迎来到天天文库
浏览记录
ID:51660863
大小:13.49 KB
页数:2页
时间:2020-03-14
《STC单片机AD转换程序设计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include电子爱好者社区,@3sw)[%Na#include电子爱好者社区+[$o2CrRMFWf6osfrP1_ADC_EN=0x97;//A/D转换功能允许寄存器]_f+Qw1Z0sfrADC_CONTR=0xC5;//A/D转换控制寄存器电子爱好者社区z8NKMAS
2、sfrADC_DATA=0xC6;//A/D转换结果寄存器f/jVd:g8lJ0sfrP1M0=0x91;电子爱好者社区$K"r.e,vyqsfrP1M1=0x92; 电子爱好者社区:h(l3xwI%v*C
3、q4M#defineucharunsignedchar;$OQ#N/
4、`#l:E&KI0#defineuintunsignedint;6D5YtC(jm%bd7n3b?w0voiddelay(uchardelay_time)//延时函数电子爱好者社区:^2L+nYT7w5?*[{R"r%vK)]*hli2h0 ucharn;E&S.XG:tV0 uintm;P,s{zqj0 for(n=0;n5、`g+e.k0}电子爱好者社区,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 delay(1); //使输入电压达到稳定%B2}+})6、Q1iL1in'_/Z0 ADC_CONTR7、=0x08;//0000,1000令ADC_START=1,启动A/D转换电子爱好者社区5@w(~!Yr2tu"B AD_finished=0;电子爱好者社区dldW+Q2sxh)M while(AD_finished==0)//等待A/D转换结束zm@bqb$Ja0 {电子爱好者社区zg[&p,y/lKF AD_finished=(ADC_CONTR&0x10);//0001,0000,ADC_FLAG==1测试A/D转换结束否电子爱好者社区YK+`/]'R-I }bAc1GJ+jphL0 8、ADC_CONTR&=0xF7;//1111,0111令ADC_START=0,关闭A/D转换,电子爱好者社区Vq3O.IZT return(ADC_DATA);//返回A/D转换结果Z^R#E$h0}X1xAn,fI*L"R+qL9M0电子爱好者社区!LU)XOzMw` voidmain()FC'l4H+u!F;Lkv0{ M[:hW?1m@)yx0 P1=P19、0x03;//0000,0011,P1.0,P1.1为A/D转换,即通道0与1&ER5x#cGv)m@0 P1_ADC_EN=0x03;//0000,0011,P1的P1.0,P1.1设置为A/D转换输入10、脚电子爱好者社区P;isV0ocmw //断开P1.0,P1.1内部上拉电阻8W11、KNq;KR??1{&E0 while(1)电子爱好者社区8L-[;t[9Rv {电子爱好者社区5bLrhO}4B get_AD_result(0);7q4`p[*ux~I0 delay(200);电子爱好者社区6Ks)@X:]F get_AD_result(1);电子爱好者社区5LM/L0{8v,N1R8] delay(200);6`~-uhAGYq%aw0 }VMlH5yHzo12、8zn0}
5、`g+e.k0}电子爱好者社区,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 delay(1); //使输入电压达到稳定%B2}+})
6、Q1iL1in'_/Z0 ADC_CONTR
7、=0x08;//0000,1000令ADC_START=1,启动A/D转换电子爱好者社区5@w(~!Yr2tu"B AD_finished=0;电子爱好者社区dldW+Q2sxh)M while(AD_finished==0)//等待A/D转换结束zm@bqb$Ja0 {电子爱好者社区zg[&p,y/lKF AD_finished=(ADC_CONTR&0x10);//0001,0000,ADC_FLAG==1测试A/D转换结束否电子爱好者社区YK+`/]'R-I }bAc1GJ+jphL0
8、ADC_CONTR&=0xF7;//1111,0111令ADC_START=0,关闭A/D转换,电子爱好者社区Vq3O.IZT return(ADC_DATA);//返回A/D转换结果Z^R#E$h0}X1xAn,fI*L"R+qL9M0电子爱好者社区!LU)XOzMw` voidmain()FC'l4H+u!F;Lkv0{ M[:hW?1m@)yx0 P1=P1
9、0x03;//0000,0011,P1.0,P1.1为A/D转换,即通道0与1&ER5x#cGv)m@0 P1_ADC_EN=0x03;//0000,0011,P1的P1.0,P1.1设置为A/D转换输入
10、脚电子爱好者社区P;isV0ocmw //断开P1.0,P1.1内部上拉电阻8W
11、KNq;KR??1{&E0 while(1)电子爱好者社区8L-[;t[9Rv {电子爱好者社区5bLrhO}4B get_AD_result(0);7q4`p[*ux~I0 delay(200);电子爱好者社区6Ks)@X:]F get_AD_result(1);电子爱好者社区5LM/L0{8v,N1R8] delay(200);6`~-uhAGYq%aw0 }VMlH5yHzo
12、8zn0}
此文档下载收益归作者所有