中断显示时间

//通过中断控制时间,在数码管上显示
#include<reg52.h>
 sbit wei=P2^3;
 sbit duan=P2^2;
 unsigned char code d[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //duan
unsigned char code w[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
char tt[8];
int num;
void main()
{
  int sz1,sz2,fz1,fz2,mz1,mz2,i,t;
  TMOD=0x01;
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;

  sz1=1; //定位显示初始值
  sz2=6;
  fz1=5;
  fz2=2;
  mz1=0;
  mz2=0;
  while(1)
  {
   
  for(i=0;i<8;i++)
    {
         //num++:
   t=300;
   while(t--);
  if(num==20)
  {
   num=0;
   mz2++;
   if(mz2>9)
    {mz2=0;mz1++;}
   if(mz1>5)

    {fz2++;mz1=0;}
   if(fz2>9)
    {fz1++; fz2=0;}
   if(fz1>5)
    {sz2++;fz1=0;}
    if(sz2>9)
     {sz1++;sz2=0;}
   if(sz1==2&&sz2>4)
    sz1=0;
  }
  tt[0]=d[sz1];
  tt[1]=d[sz2];
  tt[2]=0x40;
  tt[3]=d[fz1];
  tt[4]=d[fz2];
  tt[5]=0x40;
  tt[6]=d[mz1];
  tt[7]=d[mz2];
     
   P0=w[i];
   wei=1;
   wei=0;

   P0=tt[i];
   duan=1;
   duan=0;
   }

  }
}
void time0() interrupt 1
{
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
  num++; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值