_nop_();//至少100ns的高电平保持时间 START=0;//下跳沿启动转换 while(EOC==0);//=0正在转换 =1转换完毕 OE=1;//输出转换数据 tmp=P0;//保存数据 return tmp;//返回AD转换数据
}
void DisPlay(uchar dat)//显示数据{ uchar bai,shi,ge;
bai=dat/51; shi=dat%51*10/51; ge=dat%51*10%51*10/51;
WriteLcd(0,0x01);//清屏 WriteAdd(0x00); WriteLcd(1,'U'); WriteLcd(1,'0'); WriteLcd(1,':'); WriteLcd(1,bai+0x30); WriteLcd(1,'.'); WriteLcd(1,shi+0x30); WriteLcd(1,ge+0x30); WriteLcd(1,'V');}
void main(){ uint ii; uchar tmp;
InitLCD();//液晶初始化 TMOD=0x20;//定时0 8位自动重载方式 TH0=253;//2us定时产生500KHz信号 TL0=253; EA=1;//开总中断 ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1) { tmp=ADCStrat(0);//转换通道并保存0数据 DisPlay(tmp);//显示AD值 for(ii=0;ii<5000;ii++); } }
void timer0()interrupt 1{ SLOCK=~SLOCK;//产生500KHz信号}