单片机
返回首页

数码管显示数字钟程序

2018-01-10 来源:eefocus

#include 
#define uint unsigned int 
   uint DIDA=0,SEC=0,MIN=0,HOUR=0,h=0;  
   code char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 

  void timer0() interrupt 1 using 1  
    {  
     TR0=0; 
     TH0=0x3c; 
     TL0=0xb0; 
     DIDA++; 
     TR0=1; 
    }             
   main() 
{  uint p,k; 
   uint KEY(); 
   void    CONV(); 
   void ITX();     
   TMOD=0x01; 
   TH0=0x3c;TL0=0xb0;    
   ET0=1;EA=1; 
   TR0=1; 

  while(1) 
 {   if(h==0) 
   {  
     P2=0x81; 
     P0=0x80; 
     for(p=0;p<200;p++); 
   } 
   else  
    { 
      P2=0x81; 
     P0=0x00; 
     for(p=0;p<200;p++); 
    } 

     CONV(); 
     ITX(); 
     P1=0x0f; 
     if(P1!=0x0f) 
   { for(p=0;p<=10000;p++); 
     if(P1!=0x0f) 
     { k=KEY(); 
       if(k==0) 
       {  MIN++; 
           if(MIN==60) 
           {  MIN=0; 
                 HOUR++; 
              if(HOUR==24) 
                  HOUR=0; 
              } 
       } 
       else if(k==4) 
       {  HOUR++; 
          if(HOUR==24) 
             HOUR=0; 
       } 
     } 
   } 
  } 
}  
    void CONV() 
{  
    if(DIDA==20) 
    { 
      DIDA=0; 
      SEC++; 
      h=!h; 
      if(SEC==60) 
       { SEC=0; 
            MIN++; 
           if(MIN==60) 
           {  MIN=0; 
                 HOUR++; 
              if(HOUR==24) 
                  HOUR=0; 
              } 
       } 
    } 


      void ITX() 
{      uint i,j,k,e,p; 
      i=HOUR/10; 
      j=HOUR%10; 
      k=MIN/10; 
      e=MIN%10; 
      P2=0x80; 
      P0=tab[j]; 
      for(p=0;p<200;p++); 
      P2=0x81; 
      P0=tab[i]; 
      for(p=0;p<200;p++); 
      P2=0x82; 
      P0=tab[e]; 
      for(p=0;p<200;p++); 
      P2=0x83; 
      P0=tab[k]; 
      for(p=0;p<200;p++); 


  uint KEY() 
{  uint i,k; 
    unsigned char code tab[16]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb, 
                      0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; 
        P1=0x0f;    
          i=P1; 
        P1=0xf0;         
        i=i|P1; 
        for(k=0;tab[k]!=i&&k<16;k=k+1); 
          return (k); 


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 光控音效发生器电路

  • 非常简单的150W功放电路图

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章