#include "stc12c5a.h" //包含STC12C5A60S2单片机寄存器定义文件
unsigned char data adc_hi _at_ 0x31; //A/D转换结果变量高2位
unsigned char data adc_low _at_ 0x30; //A/D转换结果变量低8位
void main(void)
{
unsigned long i;
ADC_CONTR|=0x80; //开A/D转换电源,第一次使用时要打开内部模拟电源
for (i=0;i<10000;i++);//适当延时
P1ASF=0x04;
ADC_CONTR=0xE2; //选择P1.2作为A/D转换通道
for (i=0;i<10000;i++); //适当延时
AUXR1 |=0x04;//ADRJ=1
ADC_CONTR|=0x08; //启动 A/D 转换
EADC=1; //EADC=1, 开放ADC的中断控制位
EA=1; //开放CPU总中断
while(1); //循环等待ADC中断
}
void ADCSPI_ISR (void) interrupt 5 // ADC和SPI中断函数
{
ADC_CONTR&=0xE7; //将ADC_FLAG清0
adc_hi=ADC_RES&0x03; //保存A/D转换结果高2位
adc_low=ADC_RESL; //保存A/D转换结果低8位
ADC_CONTR|=0x08; //启动 A/D 转换
}