秒表代码为什么暂停时,动态刷新也关闭了

#include <at89x51.h>#define uint unsigned int #define uchar unsigned char uchar code led[]={0xfe,0xfd,0xfb,0xf7,0xef};uchar code ledbuf[]={0xc0,0xf9,0xa4,0xb0,0x99,0x

img


92,0x82,0xf8,0x80,0x90};sbit Key1=P3^2;uint d=0;uchar x[5];uint ms=0;uint s=0; uint a=0;void mdelay(uint j){ uint i; for(;j>0;j--) for(i=0;i<124;i++);}void main(){ TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR1=0; while(1) { IT0=1; EX0=1; EA=1; while(TF1==0); TF1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ms++; if(ms==20) { s++; ms=0; } x[0]=s/10000; x[1]=(s%10000)/1000; x[2]=(s%1000)/100; x[3]=(s%100)/10; x[4]=s%10; P2=led[0]; P0=ledbuf[x[0]]; mdelay(2); P2=0XFF; P0=0Xff; P2=led[1]; P0=ledbuf[x[1]]; mdelay(2); P2=0XFF; P0=0Xff; P2=led[2]; P0=ledbuf[x[2]]; mdelay(2); P2=0XFF; P0=0Xff; P2=led[3]; P0=ledbuf[x[3]]; mdelay(2); P2=0XFF; P0=0Xff; P2=led[4]; P0=ledbuf[x[4]]; mdelay(2); P2=0XFF; P0=0Xff; EX0=0; }} void int_0() interrupt 0{ if(Key1==0) { mdelay(10); if(Key1==0) d++; } switch(d) { case 1 :TR1=1;break; case 2 :s=0;break; case 3 :TR1=0;d=0;break; } }

img

-

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。