#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit k0=P3^6; sbit k1=P3^1; sbit clk=P2^1; uchar aa,m,f,h,k=0,nk=0;nf,nh; uchar code p0[]={0Xa0,0Xbb,0X62,0X2a,0X39,0X2c,0X24,0Xba,0X20,0X28}; void init(); void time(); void display(uchar a,uchar b,uchar c,uchar d); void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void main() { init(); while(1) { display(h/10,h%10,f/10,f%10); time(); if(nk==1) { if(nh==h) { if(nf==f) { clk=0; delay(1); clk=1; delay(1); } } } } } void time() { if(k1==0) { delay(1); if(k1==0) { while(!k1) { display(h/10,h%10,f/10,f%10); if(k==1) { if(k0==0) { delay(1); if(k0==0) { while(!k0) display(h/10,h%10,f/10,f%10); f++; if(f==60) { f=0; } display(h/10,h%10,f/10,f%10); } } } if(k==2) { if(k0==0) { delay(2); if(k0==0) { while(!k0) display(h/10,h%10,f/10,f%10); h++; if(h==24) { h=0; } display(h/10,h%10,f/10,f%10); } } } } k++; if(k==1) { TR0=0; } if(k==3) { TR0=1; k=0; } } }
if(k0==0) { delay(1); if(k0==0) { while(!k0) { display(nh/10,nh%10,nf/10,nf%10); if(k==0) { if(k1==0) { delay(1); if(k0==0) { while(!k1) display(nh/10,nh%10,nf/10,nf%10); nf++; if(nf==60) { nf=0; } display(nh/10,nh%10,nf/10,nf%10); } } } if(k==1) { if(k1==0) { delay(2); if(k1==0) { while(!k1) display(nh/10,nh%10,nf/10,nf%10); nh++; if(nh==24) { nh=0; } display(nh/10,nh%10,nf/10,nf%10); } } } if(k==2) { if(k1==0) { delay(1); if(k1==0) { while(!k1) display(nh/10,nh%10,nf/10,nf%10); nk=!nk; display(nh/10,nh%10,nf/10,nf%10); } } } } k++; if(k==3) { k=0; } } } } void display(uchar a,uchar b,uchar c,uchar d) { P1=0x10; P0=p0[a]; delay(1); P0=0xff;
P1=0x20; P0=p0[b]; delay(1); P0=0xff;
P1=0x40; P0=p0[c]; delay(1); P0=0xff;
P1=0x80; P0=p0[d]; delay(1); P0=0xff;
if(nk==1) { P1=0x80; P0=0xdf; delay(1); P0=0xff; }
} void init() { m=0; h=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; if(aa==20) { aa=0; m++; clk=0; delay(0.9); clk=1; delay(0.9); P1=0x20; P0=0xdf; delay(2); P0=0xff; if(m==60) { m=0; f++; if(f==60) { f=0; h++; if(h==24) { h=0; } } } } }
|