51

来自「计算机控制系统」· 代码 · 共 61 行

TXT
61
字号
#include    <reg51.h>
#include    <absacc.h>
#define		Led_dat		XBYTE[0xcfe8]
#define		Led_ctl		XBYTE[0xcfe9]
struct  time
  {
   char minute;
   char second;
  };
 struct time  current_time;
void Display_byte(unsigned char loc,unsigned char dat)
  {
   unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
   loc &=0xf;
   Led_ctl = loc|0x80;
   if(dat==0xaa) Led_dat = table[10];
   else Led_dat = table[dat/10];     /*显示10进制数的十位数*/
   loc++;
   Led_ctl = loc|0x80;
   if(dat==0xaa) Led_dat = table[10];
   else Led_dat = table[dat%10];          /*显示10进制数的个位数*/    
  }
void time1(void) interrupt 3
  {
   static buf=0;
   TR1 = 0;
   TL1 = 0xaf;
   TH1 = 0x3c;
   buf++;
   if(buf>9)
     {
      buf=0;
      current_time.second++;
      if(current_time.second>59)
        {
         current_time.second = 0;
         current_time.minute++;
         if(current_time.minute>59)
          current_time.minute=0;  
        }
     }
   Display_byte(4,current_time.second);
   Display_byte(0,current_time.minute);
   TR1 = 1;
  }
void main(void)
  {
   TMOD = 0x10;
   TL1 = 0xaf;
   TH1 = 0x3c;
   IE = 0x88;
   Led_ctl = 0xd1;
   while((Led_ctl&0x80)==0x80);
   Led_ctl = 0x31;
   current_time.minute = 0;
   current_time.second = 0;
   Display_byte(2,0xaa);
   TR1 = 1;
   while(1);
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?