楼主的显示程序,放在了:if(flag==1) {......} ,语句中。
这样只有在收到数据后,才显示一遍,显示结束时,仅仅是显示个位,前两位,都消影了。
动态显示程序,必须不停的调用,才能看见各个位。
动态显示程序,应该放在条件语句的外面,如下:
while(1)
{
bai=a/100;
shi=a%100/10;
ge=a%10;
display(bai,shi,ge);//--放在这里,才能稳定的显示
if(flag==1)
{
ES=0;
flag=0;
bai=a/100;
shi=a%100/10;
ge=a%10;
display(bai,shi,ge);//放在这里,显示的机会太少了
SBUF=a;
while(!TI);
TI=0;
ES=1;
……
延时时间太短
实物还是仿真?