本帖最后由 DAXSX 于 2013-5-15 09:45 编辑  
 
 问一下 为什么段选,和位选,之后要把PO口至高位呢 
 
动态显示的时候 如果延时时间很长1s以上,不需要P0口 0xff,也行。 如何延时很短 就要P0口 oxff。为什么呢 
#include<reg52.h> 
#define uchar unsigned char 
#define uint unsigned int  
uchar num; 
uchar aum; 
sbit wei=P2^1; 
sbit du=P2^0; 
sbit dianz=P2^2; 
uchar code wex[]= 
       { 
           0xfe,0xfd,0xfb, 
           0xf7,0xef,0xdf, 
           0xbf,0x7f 
           };  //位选 12345678 
uchar code dux[]= 
       { 
           0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 
           };  //0,1,2,3,4,5,6,7 
void delay(uint t) 
{uint i,j; 
   for(i=t;i>0;i--) 
     for(j=110;j>0;j--); 
} 
void main() 
{num=0; 
aum=0; 
 dianz=0; 
  while(1) 
         { 
          if(num==7){ 
                   num=0; 
                } 
                //if(aum==6){ 
        //        aum==0; 
        //        } 
                 
// 
                 wei=1; 
          P0=wex[num]; 
          wei=0; 
                  P0=0xff; 
          delay(2); 
          du=1; 
          P0=dux[num]        ; 
          du=0; 
            
      P0=0xff; 
           
           
           
          
//         aum++; 
         num++; 
         delay(5); 
         } 
} 
 
 
 
 
 |