📄 12c2052ad.c
字号:
这是我写的:
调用法:val=GetADVal(通道号);
转换前要先初始化。初始化函数为:InitADC();
#include "STC12C5410AD.H"
#define uchar unsigned char
void InitADC();
uchar GetADVal(uchar);
void InitADC()
{
uchar i,j;
ADC_CONTR|=0x80;
for(i=20;i>0;i--) for(j=250;j>0;j--);
}
uchar GetADVal(uchar ch)
{
uchar lastP1M0,lastP1M1,i,m_mask;
code uchar mtab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
lastP1M0=P1M0;
lastP1M1=P1M1;
ch&=0x07;
m_mask=mtab[ch];
P1M0|=m_mask;
P1M1|=m_mask;
ADC_CONTR&=0xf0;
ADC_CONTR|=ch;
for(i=250;i>0;i--); //待输入电压稳定后开始转换
ADC_CONTR|=0x08;
while((ADC_CONTR&0x10)==0);
ADC_CONTR&=0xe7;
P1M0=lastP1M0;
P1M1=lastP1M1;
return ADC_DATA;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -