Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1993088
  • 博文数量: 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)

分类: C/C++

2009-05-15 23:08:37

#include
#define uint unsigned int
#define uchar unsigned char
sbit lcdrs=P3^0;
sbit lcdrw=P3^1;
sbit lcden=P3^2;
sbit ring=P2^1;
uchar aa,bb,cc,aa1,bb1,cc1,temp;
uchar cnt=20;
uchar cntt=20;
uint ss=0;
uchar table[]="0123456789:";
//uchar jjj=2;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void write_com(uchar com)
{
 lcdrs=0;//写命令
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
/*void write_data(uchar shuju)
{
 lcdrs=1; //写数据
 lcden=0;
 P0=shuju;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}*/
void write_data(uchar jj)
{
 lcdrs=1;//写数据 
 P0=jj;
 delay(5);
 lcden=1;//高脉冲激昂数据读走
 delay(5);
 lcden=0;
 
}
void display()
{   
  write_com(0x80);
 write_data(table[cc/10]);
  write_com(0x81);
 write_data(table[cc%10]);  //时

  write_com(0x82);
  write_data(table[10]); //:

    write_com(0x83);
 write_data(table[bb/10]);    //分
    write_com(0x84);
 write_data(table[bb%10]);
   
  write_com(0x85);
 write_data(table[10]);//:

     write_com(0x86);
 write_data(table[aa/10]); //秒
    write_com(0x87);
 write_data(table[aa%10]);
 
 
 if(cnt==0)
  {
   cnt=20;
   aa++;
   if(aa>=60)
    {
     aa=0;
     bb++;
     if(bb>=60)
      {
       bb=0;
       cc++;
       if(cc>=24)
        cc=0;
      }
    }
  }
}

void init()
{
 aa=45;//秒
 bb=56;//分
 cc=22;//时
 aa1=50;
 bb1=56;
 cc1=22;
 lcdrw=0;
 lcden=0;
 write_com(0x38);//显示开关及光标设置 
 write_com(0x0f);// write_com(0x0f);打开光标闪烁
 write_com(0x06);//光标指针自动加一
 write_com(0x01); //显示清屏数据指针清零
 write_com(0x80); //数据指针初始化
// write_com(0x80);//数据指针自动初始化
/*
 lcden=0;
 lcdrw=0;
 write_com(0x38);
 delay(5);
 write_com(0x0c);
 write_com(0x80);
 write_com(0x06);
  */
 
}
void main()
{
 EA=1;//开总中断
 ET0=1;//开定时器中断零
 TR0=1;//定时器零开始计数
 
 TMOD=0x01;
 TH0=(65535-50000)/256;
 TL0=(65535-50000)%256;
 init();
 write_com(0x81);

 //write_date(jjj);
  
    
    while(1)
    {
     display();
    }
 
 

}
  
/*void ringg()
{
if(aa1==aa&bb1==bb&cc1==cc)

 temp=cc1;
 ring=0;
 if(temp==cc+5)
 ring=1; 
}
*/ 
 /*{
  ET1=1;//开定时器中断零
  TR1=1;//定时器零开始计数
  TMOD=0x01;
  TH1=(65535-50000)/256;
  TL1=(65535-50000)%256;
  cntt--; 
   if(cntt==0)
   {
    cntt=20;
    ss++;
    if(ss==120)
     ring=1;
   }
  }
*/  
   
void timer0() interrupt 1
{
 TH0=(65535-50000)/256;
 TL0=(65535-50000)%256;
 cnt--;
  /*
  write_com(0x80);
 write_data(table[cc/10]);
  write_com(0x81);
 write_data(table[cc%10]);
  write_com(0x82);
 write_data(table[bb/10]);
  write_com(0x83);
 write_data(table[bb%10]);
 write_data(table[aa/10]);
 write_data(table[aa%10]);
     */
   /*
   write_com(0x80);
 write_data(table[cc/10]);
  write_com(0x81);
 write_data(table[cc%10]);  //时

  write_com(0x82);
  write_data(table[10]); //:

    write_com(0x83);
 write_data(table[bb/10]);    //分
    write_com(0x84);
 write_data(table[bb%10]);
   
  write_com(0x85);
 write_data(table[10]);//:

     write_com(0x86);
 write_data(table[aa/10]); //秒
    write_com(0x87);
 write_data(table[aa%10]);
      */
 if(cnt==0)
  {
   cnt=20;
   aa++;
   if(aa>=60)
    {
     aa=0;
     bb++;
     if(bb>=60)
      {
       bb=0;
       cc++;
       if(cc>=24)
        cc=0;
      }
    }
  }
//ringg();
if(aa1==aa&bb1==bb&cc1==cc)
  { 
   ring=0;
   temp=aa1+60;
  
  }
 if(temp==aa)
   ring=1; 
 
 
}
阅读(1402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~