资源简介

51单片机做得倒计时牌,数码管显示,动态扫描

资源截图

代码片段和文件信息

#include 
#include 
void timer0_init();               //定时器0初始化
void delay(int);                  //延时程序
void trans_led(intintintint);  //数码管显示传送函数
sbit P10=0x90;                    //管脚定义
sbit P30=0xB0;
sbit P20=0xA0;
int day=0hour=0min=0sec=0;     //定义时间变量
unsigned int state=0;             //运行状态标志
unsigned int asec=0;              //记录定时器0中断次数,当asec=20时计时为1s 
unsigned int check_b=0check_s=0check_g=0;    //记录set键的按下次数
char table[10]={0xC00xF90xA40xB00x990x920x820xF80x800x90};  //定义表格
main(){
  timer0_init();
  EX0=1;
  EX1=1;
  IT0=1;
  IT1=1;
  EA=1;
  TR0=1;
  while(1){
   switch(state){
     case(1):trans_led(10051010); //“天“的百位闪烁
             break;
     case(2):trans_led(10100510); //“天“的十位闪烁
             break;
     case(3):trans_led(10101005); //“天“的个位闪烁
             break;
     default:trans_led(0202020);  //正常运行
             break;
             
   }
  }
}
void timer0_init(){
  TMOD=0x21;
  TH0=0x3C;
  TL0=0xB0;
  ET0=1;
  TF0=0;
}
void Timer0_overflow() interrupt 1 using 0{
  TH0=0x3C;
  TL0=0xB0;
  asec++;
  if(asec==20){             //定时一秒            
    asec=0;
    if(sec==0){
      sec+=60;
      min--;
    }
    if(min<0){
      min+=60;
      hour--;
    }
    if(hour<0){
      hour+=24;
      day--;
    }
    if(day>=0){              //计时时间未完,秒减一
      sec--;
    }
    else{
      day=hour=min=sec=0;    //计时结束
      TR0=0;
    }
  }
}
void Int0() interrupt 0 using 0{  //set键
  if(state>4)
    state=1;
  else
    state++;
  if(state==4){
    state=0;
    TR0=1;
  }
}
void Int1() interrupt 2 using 0{ //select/start键

 if(state>=1&&state<=3){
  TR0=0;
  hour=min=sec=0;
  timer0_init();
  }
    switch(state){
       case(1):day+=100;
               check_b++;
               break;
       case(2):day+=10;
               check_s++;
               break;
       case(3):day++;
               check_g++;
               break;
       default:break;        
     }
   
  if(check_b>9)               //计时范围限制
    day-=1000;
  if(check_s>9){        
    day-=100;
  }
  if(check_g>9){
    day-=10;
  }
  
}
void delay(int time){
  int ij;
  for(i=0;i<=time;i++){
    for(j=0;j<=10;j++);
  }
}
void trans_led(int aint bint cint d){
                           //显示秒
  P2=0xFE;
  P1=table[sec%10];
  delay(20);
  P2=0xFF;

  P2=0xFD;               
  P1=table[sec/10];
  delay(20);
  P2=0xFF;
  
                          //显示分
  P2=0xFB;
  P1=table[min%10];
  delay(20);
  P2=0xFF;
  
  P2=0xF7;               
  P1=table[min/10];
  delay(20);
  P2=0xFF;
  
  
                         //显示时
  P2=0xEF;
  P1=table[hour%10];
  delay(20);
  P2=0xFF;
  
  P2=0xDF;               
  P1=table[hour/10];
  delay(20);
  
   
  
                        //显示天
  delay(a);          
  P2=0xFF;             
  P30=0; 
  check_b=day/100;          
  P1=table[check_b];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      22495  2008-07-20 21:35  彼岸之光\Backup of BACKUP~1.SCH

     文件      22495  2008-06-12 12:01  彼岸之光\Backup of bazg.Sch

     文件     286720  2008-07-20 21:35  彼岸之光\BACKUP~1.DDB

     文件       9235  2008-06-16 13:56  彼岸之光\bazg

     文件       3344  2008-06-14 16:37  彼岸之光\bazg.c

     文件     268288  2008-06-12 12:17  彼岸之光\bazg.ddb

     文件     121914  2008-06-14 16:37  彼岸之光\bazg.DSN

     文件       3483  2008-06-16 13:56  彼岸之光\bazg.hex

     文件     526676  2008-06-08 22:39  彼岸之光\bazg.jpg

     文件       6922  2008-06-16 13:56  彼岸之光\bazg.LST

     文件      12603  2008-06-16 13:56  彼岸之光\bazg.M51

     文件      10517  2008-06-16 13:56  彼岸之光\bazg.OBJ

     文件       1283  2008-06-16 13:52  彼岸之光\bazg.Opt

     文件        367  2008-06-16 13:57  彼岸之光\bazg.plg

     文件        840  2008-07-20 21:35  彼岸之光\bazg.PWI

     文件      15011  2008-06-07 12:46  彼岸之光\bazg.SRC

     文件       2076  2008-06-09 17:18  彼岸之光\bazg.Uv2

    .......      1293  2008-06-14 17:48  彼岸之光\bazg_Opt.Bak

    .......      2123  2008-06-09 17:11  彼岸之光\bazg_Uv2.Bak

     文件     108714  2008-06-10 16:33  彼岸之光\Last Loaded bazg.DBK

     文件       4154  2008-06-09 17:12  彼岸之光\mfm.lst

     文件      22495  2008-06-12 12:06  彼岸之光\Previous Backup of BACKUP~1.SCH

     文件      22495  2008-06-12 11:54  彼岸之光\Previous Backup of bazg.Sch

     文件       5115  2002-04-16 15:32  彼岸之光\STARTUP.A51

     文件      11784  2008-06-16 13:56  彼岸之光\STARTUP.lst

     文件        866  2008-06-16 13:56  彼岸之光\STARTUP.obj

     文件     122368  2008-06-16 13:43  彼岸之光\彼岸之光设计文档.doc

     目录          0  2008-07-20 21:36  彼岸之光

----------- ---------  ---------- -----  ----

              1615676                    28

............此处省略1个文件信息

评论

共有 条评论