我是用89C51这个芯片的,需要编一个电子钟 要求两个按钮 按下第一个按钮 第二个按钮可以辅助调节分钟 按下第一个按钮第二次 第二个按钮则可以调节 小时。有高手会吗?? 帮手解决下小弟的疑惑,感激!!
这个是本人编的程序,但还有错误 不可用,求指点!
#include<reg51.h>
unsigned char count=0,H=0,sec=0,min=0;
sbit K1=P2^0;
sbit K2=P2^1;
unsigned char D;
void delay();
void main()
{
unsigned char segled[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
IE=0x8F;
IT0=1;
IT1=1;
TR0=1;
while(1)
{
P1=segled[min%10];
P0=0x7f;
delay();
P1=segled[min/10];
P0=0xbf;
delay();
P1=segled[H%10];
P0=0xdf;
delay();
P1=segled[H/10];
P0=0xef;
delay();
}
}
void delay()
{
TH1=(8192-5000)/32;
TL1=(8192-5000)%32;
TR1=1;
while(!TF1);
TF1=0;
TR1=0;
}
void intt0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
count=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
H++;
if(H>24)
{
H=0;
}
}
}
}
}
void key_prc(){
if(K1==0)
{D++;
if(D>2)
D=0;
}
}
switch(D)
{
case 1:
if(k2==0)
{min++;
if(min==60)
{min==0;
H++;
if(H==24)
H=0;
}
}
;break
case 2:
if(k2==0)
{H++;
if(H==24)
{H=0;}
}
;break
}
loveliness:}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你设一个变量X,当这个变量x等于 0表示没有按键操作,1表示设置分 2表示设置时 3表示天 4表示月 等等
那么你就知道了,当按第一个键时,如果x=0,那么将x=1 再按就加1 再按就=0
按第二个键时,如果x=0 那个x=3(设置日期)
如果x=1 分钟++
如果x=2 小时++
如果x=3 天++
其他您自己想想
一周热门 更多>