[讨论] 基于51的电子钟!!!高手来传我一个~~~~~~~~~QQQQQQQQQ

sai520hai   2010-3-31 20:08 楼主
我要做一课程设计!!基于51的数字显示电子钟!!!!!高手做过,成功的!!!!拜托给我穿一个(要完整的电路图,程序)!!!!!:P :P :P


谢谢~~~~~我的邮箱:sai520hai@yahoo.com.cn

回复评论 (7)

:P
点赞  2010-3-31 20:09
自己先动脑做做 不会的来发问
加油!在电子行业默默贡献自己的力量!:)
点赞  2010-4-1 08:11

回复 板凳 soso 的帖子

给我一个详细一点的流程图吧!!!!!!!!!!!:( :( :( :( :( :(
点赞  2010-4-17 08:09
直接去买一个算了,搞什么啊,电路图发给你,程序发给你,你是大爷啊?
点赞  2010-4-17 09:25

回复 5楼 zheguzai 的帖子

呵呵,楼上先莫激动。不过想想也对,LZ你的态度很有问题,没人亏欠你什么,像你这样一上来就要这要那的,基本上是没人采你的……。最好你是自己动脑筋想想,在GOOGLE百度上多找找资料,实在不会的再来讨论。不过呢,像LZ这样张口就要的性格,多半也不会去下功夫找资料什么的,毕业设计嘛,到时候在老师那里拿一段“参考程序”一切就OK了,唉,当年自己的毕业设计这是这样做的。真的很悲哀
点赞  2010-4-17 11:23

回复 6楼 dxstar 的帖子

哎!!!!我自己也做了的啊!!!就是仿真不出来!!!!!郁闷很久了,你这样说~~~~:( :( :( :( :( :(
点赞  2010-4-24 15:19

回复 6楼 dxstar 的帖子

#include
#define uint unsigned int
#define uchar unsigned char
sbit k0 = P3^0 ; //分"+"键
sbit k1 = P3^1 ; //时"+"键
uint hour=12,min=0,sec=0;
uint tmcnt;//定时器计数
uchar code seg7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳数码管0—9码值
uchar code disp[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; // 位选

void delay1ms(uint k)           //延时约1毫秒
{ uint a,b;
for(a=0;a {        for(b=0;b<120;b++);
}
}



void init_timer( )   //定时20毫秒
{ TMOD=0x01;
TH0=0x4c; //50ms初值 晶振11.0592
TL0=0x00;
  EA=1;
  ET0=1         ;
  TR0=1          ;
}

void display( )  //显示子程序
{ uchar i;
  uchar data disdata[6]; //数据处理
  disdata[0]=hour/10;
  disdata[1]=hour%10;
  disdata[2]=min/10;
  disdata[3]=min%10;
  disdata[4]=sec/10;
  disdata[5]=sec%10;
  for(i=0;i<6;i++)
  { P0 = 0x00;
    P0 = seg7[disdata];
        P1=disp;
        delay1ms(2);
  }
}


void time0() interrupt 1
{ TMOD=0x01;

TH0=0x4c; //50ms初值 晶振11.0592
TL0=0x00;
  tmcnt++;
  if(tmcnt==20)         //计数50次为1秒
  {         tmcnt=0;
     sec++;
         if(sec==60)
         { sec=0;
           min++;
           if(min==60)
           { min=0;
           hour++;
           if(hour==24)
           {  hour=0;

           }
           }
         }
  }
}


void keyscan( )   //按键扫描
{  if(k1==0)
   { delay1ms(10);
     if(k1==0)
         { while(k1==0);
         sec=0;
         hour++;
         if(hour==24)
         { hour=0;
         }
         }
   }
   
   if(k0==0)
   { delay1ms(10);
     if(k0==0)
         { while(k0==0);
          sec=0;
          min++;
          if(min==60)
          {        min=0;
          }
         }
   }
}

void main( )         //主函数
{ init_timer( );
   while(1)
   { keyscan( );
     display( );
   }
}
点赞  2010-4-24 15:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复