立即注册 登录
返回首页

uid:73463的个人空间

日志

自己写的 15秒倒计时程序

热度 2已有 2076 次阅读2016-12-24 08:01 | 程序

 #include<reg52.h>
    sbit ADDR0=P1^0;
    sbit ADDR1=P1^1;
    sbit ADDR2=P1^2;
    sbit ADDR3=P1^3;
    sbit ENLED=P1^4;
    unsigned char LedChar[]={
    0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
    0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
    };
    unsigned char LedBuff[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};  
    unsigned char flag1s=0;
    unsigned int  cnt=0;
    unsigned char i=0;
    void main()
 {        unsigned long sec=0xF;
          ADDR3=1;
    ENLED=0;
          EA=1;
       ET0=1;
    TMOD=0x01;
    TH0=0xFC;
    TL0=0x67;
    TR0=1;
    while(1)
   {      if(flag1s==1)
    {  flag1s=0;
          if(sec>0)
       {sec--;
    }
    else
    {sec=0x00;
    }
    LedBuff[0]=LedChar[sec%10];
    LedBuff[1]=LedChar[sec/10%10];
    LedBuff[2]=LedChar[sec/100%10];
    LedBuff[3]=LedChar[sec/1000%10];
    LedBuff[4]=LedChar[sec/10000%10];
    LedBuff[5]=LedChar[sec/100000%10];
       }
 }
  }
         void InterruptTimer0() interrupt 1
  {   TH0=0xFC;
      TL0=0x67;
   cnt++;  
   if(cnt>=1000)
   { cnt=0;
     flag1s=1;
   }
   P0=0xFF; //消隐//
   switch (i)
   {case 0:ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=LedBuff[0];break;
    case 1:ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=LedBuff[1];break;
    case 2:ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=LedBuff[2];break;
    case 3:ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=LedBuff[3];break;
    case 4:ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=LedBuff[4];break;
    case 5:ADDR2=1;ADDR1=0;ADDR0=1;i=0;P0=LedBuff[5];break;
    default:break;
   }
  }
1

路过

鸡蛋

鲜花

握手

雷人

刚表态过的朋友 (1 人)

发表评论 评论 (3 个评论)

回复 ZHANGJINGYU 2016-12-24 10:08
word哥,你确定这是你写的?这不是把人家书上的代码原模原样抄下来的吗?
回复 ztflove51 2016-12-24 14:03
ZHANGJINGYU: word哥,你确定这是你写的?这不是把人家书上的代码原模原样抄下来的吗?
.....
回复 ztflove51 2016-12-24 14:07
ZHANGJINGYU: word哥,你确定这是你写的?这不是把人家书上的代码原模原样抄下来的吗?
都是宋老师的学生,不要互相伤害好吗?书上哪里和我这个一模一样了?

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部