1秒加一个数字,求指点????中断里面该怎么写??

2019-07-16 01:11发布

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code S[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar x;
uint j=0;

delay1ms(uint i)//延时1毫秒
{
uchar t;
while(i--)
{
for(t=0;t<115;t++);
}
}

display(uchar x)//数码管显示
{
P2=0xef;
P0=S[x/10];
delay1ms(5);
P2=0xdf;
P0=S[x%10];
delay1ms(5);
P2=0xff;
}

void main()
{
TMOD=0x01;
EA=1;
IT0=0;
ET0=1;
TR0=1;
TH0=0x4c;
TL0=0x00;


while(1)        //20个50毫秒
{
do                       
{
TH0=0x4c;
TL0=0x00;
j=j+1;
}while(j<20);

j=0;
display(x);
x++;
}
}

void T0zhongduan() interrupt 1
{




}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
那低头一笑的温
2019-07-16 05:55
.....
.....  //以上是你原来的程序
bit   _1_second_flag = 0;
main()
{
       ....
       ....      //这几句是你原来的
      while(1)
      {
              if(_1_second_flag)
              {
                    _1_second_flag = 0;
                    display(x++);
              }
      }
}

void T0zhongduan() interrupt 1
{
        if(++j == 20)
        {
              j = 0;
              _1_second_flag = 1;    //1秒
        }
        TH0=0x4c;
        TL0=0x00;
}

一周热门 更多>