数码管只用延时函数显示时间

#include<reg52.h>
sbit duan=P2^2;
sbit wei=P2^3;
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];
void delay(unsigned int a)//晶振11.996345  100个125约1毫秒
{
 int i,j;
 for(j=0;j<a;j++)
 for(i=0;i<125;i++);

void main()
{
 int sz1,sz2,mz1,i,mz2,fz1,fz2,num,Num,flag;
 sz1=2;  //改这些数可以使初始值改变sz:时钟 fz:分钟 mz:秒钟
 sz2=0;
 fz1=2;
 fz2=0;
 Num=1;
 flag=Num;
 while(1)
 {
 for(i=0;i<8;i++)
 {
     num++;
     if(num%800==0)  //想让秒钟转快一点,把这数字变小!
     Num++;
    if(num>=50000)
    num=0;
    if(Num!=flag)
    { flag=Num;
   if(Num>59)
    Num=0;
    mz1=Num/10;
    mz2=Num%10;
    if(mz1==0&&mz2==0)
    fz2++;
    if(fz2>9)
    {
     fz2=0;fz1++;
    }
    if(fz1>5)
    {
     fz1=0;
     sz2++;
    }   
   // if(fz1==0&&fz2==0&&mz1==0&&mz2==0)
   //  sz2++;
     if(sz2>9)
     {
      sz1++;
      sz2=0;
     }
     if(sz1==2&&sz2==4)
     sz1=sz2=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;
 
    delay(2);  
 }
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值