根据你的描述,我个人作出如下判断:
1、有可能是你的程序写的有误,仿真是一回事,真正运行是另一回事。

2、如果你是完全按照图上焊接的,你这个板子其实是不稳定的,为什么呢,因为单片机直接驱动数码管是不够力的,虽然你用的是P0口,但是驱动数码管也很费力,如果你需要帮忙,可以百度Hi联系我
#include <intrins.h>
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ad0_7 P0 //AD数据口
sbit cs=P1^0; //芯片选择信号,控制芯片的启动和结果读取,低电平有效
sbit rd=P1^1; //读数据控制,低电平有效
sbit wr=P1^2; //AD转换起动控制,上升沿有效
sbit intr=P1^3; //AD转换结束输出低电平
unsigned char seg[5]={0,46,0,0,0};
void main(void)
{ uint ad_data;
uint k;
TMOD=0x20;
TH1=0xe6;
TL1=0xe6;
TR1=1;
SCON=0x40;

while(1)
{ cs=0; //允许进行A/D转换
wr=0;_nop_();wr=1; //WR由低变高时,AD开始转换
while(intr); //查询转换结束产生INTR 信号(低电平有效)
cs=1;
ad0_7=0xff;
cs=0; //允许读
rd=0; //读取转换数据结果数据结果
_nop_();
ad_data=ad0_7; //把数据存到ad_data中
rd=1;cs=1; //停止A/D读取
seg[0]=ad_data/51+48; //(最高位)
seg[1]=46;
seg[2]=ad_data%51*10/51+48; //第三位
seg[3]=ad_data%51*10%51*10/51+48; //第二位
seg[4]=ad_data%51*10%51*10%51*10/51+48; //(最低位)
for( k=0;k<=4;k++)
{
SBUF=seg[k];

while(!TI)
TI=0;
}
}
}


