|
我驅(qū)動(dòng)4為共陽(yáng)的方法,電路圖相同,供參考:
unsigned char code disdata[]={
0x01,0x4F,0x12,0x06,0x4C,
0x24,0x20,0x0D,0x00,0x04};//0-9
void dis_off (){
P3 = 0xFF; //P3對(duì)應(yīng)筆畫(huà),關(guān)所有顯示
H2=1;H4=1;
H1=1;H3=1;
delay(10-light);
}
void dispNum (unsigned char q,unsigned char dot){ //dot=1為顯示小數(shù)點(diǎn);
unsigned char x;
x=disdata[q];
dp=1-dot;
a=x>>6 & 0x01;
b=x>>5 & 0x01;
c=x>>4 & 0x01;
d=x>>3 & 0x01;
e=x>>2 & 0x01;
f=x>>1 & 0x01;
g=x & 0x01;
}
/******************顯示程序*************************/
void disp(){
unsigned int ii;
unsigned int vv;
unsigned char i;
for(ii=0;ii<50;ii++){
i=v%10; //我用的是四位led,所以這里的v=原始v/10
vv=v-i;
H1=0;dispNum(i,0);delay(light);dis_off();
i=(vv/10)%10;
vv=vv-10*i;
H2=0;dispNum(i,0);delay(light);dis_off();
i=(vv/100)%10;
vv=vv-100*i;
H3=0;dispNum(i,1);delay(light);dis_off(); //第三位顯示小數(shù)點(diǎn)
i=(vv/1000)%10;
if(i>0){
H4=0;dispNum(i,0);delay(light);dis_off(); //第四位是0,不顯示
}
}
}
|
|