本帖最后由 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);
}
}
|