共陽極數碼管三極管驅動
阿新 • • 發佈:2017-10-18
數碼管 spa unsigned rup pan nbsp fin tab ble
1 #include<reg51.h> 2 3 4 #define unint unsigned int 5 #define unchar unsigned char 6 7 sbit k=P3^2; 8 sbit L=P1^0; 9 10 unint a=1,b=1,c=1,d=1,s=0; 11 unchar code table[]={0xc0,0xf9,0xa4,0xb0, 12 0x99,0x92,0x82,0xf8, 13 0x80,0x90}; 14 15 16 voiddelay(unint x) 17 { 18 unint i,j; 19 for(i=121;i>0;i--) 20 for(j=0;j<=x;j++); 21 } 22 23 void main() 24 { 25 L=0; 26 P2=0x0f; 27 P0=table[0]; 28 IT0=0; 29 EA=1; 30 EX0=1; 31 while(1); 32 33 } 34 35 void cut_num(void) 36 { 37 if(s==10000) 38 s=0; 39 d=s%10; 40 c=(s/10)%10; 41 b=(s/100)%10; 42 a=(s/1000)%10; 43 } 44 void print_num() 45 { 46 delay(1); 47 P2=0x08; 48 P0=table[d]; 49 if((a!=0)||(b!=0)||(a==0&&b==0&&c!=0)) 50 { 51 delay(1); 52 P2=0x04; 53 P0=table[c]; 54 } 55 if(a!=0||(a==0&&b!=0)) 56 { 57 delay(1); 58 P2=0x02; 59 P0=table[b]; 60 } 61 if(a!=0) 62 { 63 delay(1); 64 P2=0x01; 65 P0=table[a]; 66 } 67 } 68 void int0()interrupt 0 69 { 70 71 s++; 72 cut_num(); 73 delay(300); 74 while(k==0) 75 print_num(); 76 while(k!=0) 77 print_num(); 78 79 80 }
共陽極數碼管三極管驅動