1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| #include <reg51.h> sbit k1_down=P3^1; sbit k2_down=P3^0; sbit k3_down=P3^2; sbit k4_down=P3^3; unsigned char paused = 0;
unsigned char count=0,miao=0,min=0,hour=0; unsigned char disp[]={0x14,0x10,0x0c,0x08,0x04,0x00}; unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void timer_1() interrupt 3 { TH1=(65536-10000)/256; TL1=(65536-10000)%256; TF1=0; if(k4_down==0) paused = !paused; if(!paused) { count++; if(count==100) count=0; miao++; if(miao==60) { miao=0;min++; if(min==60) { min=0;hour++; if(hour==24) hour=0; } } } } else { count++; if(count==15) { count=0; if (k1_down==0) { hour = (++hour) % 24; } if (k2_down==0) { min = (++min) % 60; } if (k3_down==0) { miao = (++miao) % 60; } } } }
void Miao(unsigned char i) { unsigned char m; P2=disp[4]; P0=~led[i/10]; for(m=0;m<100;m++); P0=0x00; P2=disp[5]; P0=~led[i%10]; for(m=0;m<100;m++); P0=0x00; }
void Min(unsigned char j) { unsigned char m; P2=disp[2]; P0=~led[j/10]; for(m=0;m<100;m++); P0=0x00; P2=disp[3]; P0=~led[j%10]; for(m=0;m<100;m++); P0=0x00; }
void Hour(unsigned char k) { unsigned char m; P2=disp[0]; P0=~led[k/10]; for(m=0;m<100;m++); P0=0x00; P2=disp[1]; P0=~led[k%10]; for(m=0;m<100;m++); P0=0x00; }
void main() { TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET1=1; EA=1; TR1=1; while(1) {Miao(miao);Min(min);Hour(hour);} }
|