Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1974449
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类: BSD

2009-10-27 21:07:57

#include
#include
#define LED7 XBYTE[0x9f00]
#define LED6 XBYTE[0x9f01]
#define LED5 XBYTE[0x9f02]
#define LED4 XBYTE[0x9f03]
#define LED3 XBYTE[0x9f04]
#define LED2 XBYTE[0x9f05]
#define LED1 XBYTE[0x9f06]
#define LED0 XBYTE[0x9f07]
#define uint unsigned int
#define uchar unsigned char
uint  aa,sec,min,hour;
unsigned int cnt=20;
uint  t[]=    //数码显示表(89c52)
{       
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40
};

///////////初始化、、、、、、、、、、、、,,,,,,,,,,。。。。。
void initial()
{aa=0;
 sec=50;
 min=30;
 hour=18;
 
 LED0=0;
 LED1=0;
 LED2=0;
 LED3=0;
 LED4=0;
 LED5=0;
 LED6=0;
 LED7=0;
 
}

 ////////////////////////////时、、、、、、、、、、、、、、、、、、、、、、、、
void hourr()

 
 if(hour>23)
 hour=0;
 hour++;
}
 
 ///////////////分、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
void minn()
{
  if(min>=59)
   { 
     min=0;
     hourr();
   }
 min++;
}
 
////////////////////////////////////////秒,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
void secc()
{  
    //aa++ ;
 if(cnt==0)
     {
     cnt=20;
     if(sec>59)
      {
    sec=0;
    minn();
      }
   sec++;
  }
  
 
}
 
 
void main()
{
  TMOD=0x01;//选定时器0,工作方式1
  TH0=(65535-50000)/255;//设置初始值
  TL0=(65535-50000)%255;
  EA=1;//打开总中断
  ET0=1;//打开定时器0中断
  TR0=1;//定时器开始计数
  initial();
  
while(1)
 {   //secc();
    LED0=t[sec%10];
    LED1=t[sec/10];
    LED2=t[10];
    LED3=t[min%10];
    LED4=t[min/10];
    LED5=t[10];
    LED6=t[hour%10];
    LED7=t[hour/10];
    secc();
  }
}
 
 ////////////////////中断、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

void timer0()  interrupt 1   //定时器0
{
 TH0=(65535-50000)/255;//设置初始值
 TL0=(65535-50000)%255;
 cnt--;
   
}    

 
阅读(752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~