这是我的程序:
#include<reg52.h>
#define adcdataport P1
sbit adc_start=P3^6;
sbit adc_oe=P3^7;
sbit adc_clk=P3^4;
uint convcompflag=1;
uint convresult;
void adcwork(void)
{
adc_oe=0;
adc_start=0;//锁存地址并清零逐次比较寄存器
adc_start=1;//复位逐次比较寄存器
EX1=1;//允许INT1中断
adc_start=0;//启动转换
while(convcompflag);//等待转换完成
adc_oe=1;
convresult=adcdataport;
delayms(500);
adc_oe=0;
}
我加入了“#define uint unsigned int “然后调试可是出现了很多警告:
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?ADCWORK?TEXT1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?C_INITSEG
*** WARNING L10: CANNOT DETERMINE ROOT SEGMENT
Program Size: data=12.0 xdata=0 code=32
"ADC" - 0 错误 (s), 3 警告 (s).
你的程序里没有void main()?
没有void delayms()?