我要做一课程设计!!基于51的数字显示电子钟!!!!!高手做过,成功的!!!!拜托给我穿一个(要完整的电路图,程序)!!!!!:P :P :P
谢谢~~~~~我的邮箱:
sai520hai@yahoo.com.cn
回复 板凳 soso 的帖子
给我一个详细一点的流程图吧!!!!!!!!!!!:( :( :( :( :( :(
直接去买一个算了,搞什么啊,电路图发给你,程序发给你,你是大爷啊?
回复 5楼 zheguzai 的帖子
呵呵,楼上先莫激动。不过想想也对,LZ你的态度很有问题,没人亏欠你什么,像你这样一上来就要这要那的,基本上是没人采你的……。最好你是自己动脑筋想想,在GOOGLE百度上多找找资料,实在不会的再来讨论。不过呢,像LZ这样张口就要的性格,多半也不会去下功夫找资料什么的,毕业设计嘛,到时候在老师那里拿一段“参考程序”一切就OK了,唉,当年自己的毕业设计这是这样做的。真的很悲哀
回复 6楼 dxstar 的帖子
哎!!!!我自己也做了的啊!!!就是仿真不出来!!!!!郁闷很久了,你这样说~~~~:( :( :( :( :( :(
回复 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( );
}
}