#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 转换 }