4位共陰數(shù)碼管顯示(595*2方式)

顯示方式:兩片595級(jí)聯(lián),一片作為段選,一片作為位選。
數(shù)據(jù)執(zhí)行方式:先灌入位選數(shù)據(jù)再灌入段選數(shù)據(jù),鎖存器動(dòng)作一次性輸出至數(shù)碼管進(jìn)行顯示。
總結(jié):對(duì)于顯示位數(shù)較小的數(shù)碼管,顯示比較方便,數(shù)據(jù)一次性輸出。但對(duì)于位數(shù)較多的數(shù)碼管顯示,程序較為復(fù)雜可能會(huì)增大延遲,結(jié)構(gòu)繁雜(適合2~8位顯示,高于8位用595-138方式利于實(shí)現(xiàn),138可替換更多位數(shù)的譯碼器)



附件:“主程序代碼附注”
*********************************************************************************************************
#include"STCXXXX.H"
sbit SCK = P6^0; //IO口設(shè)定
sbit RCK = P6^2;
sbit DIO = P6^4;? ? ??
u16 a,b,c,d,e,f;? ? ? ? ? ?//參數(shù)
u num,ge,shi,bai,qian,js;
//{0x3f(0),0x06(1),0x5b(2),0x4f(3),0x66(4),0x6d(5),0x7d(6),0x07(7),0x7f(8),0x6f(9),0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x00}?
code Data1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};? ? ?//段選數(shù)組
code Data2[]={0xfe,0xfd,0xfb,0xf7};? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//位選數(shù)組
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
void Gun(u16 e,u16 f); //顯示函數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
void delay(); ? ? ? ? ?//延時(shí)
void main()
{ ?
js = 0;
? ??
while(1)//死循環(huán)
? ? { ? ? ??
? ? ? ? Gun(0,qian); ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? Gun(1,bai); ? ? ? ??
? ? ? ? Gun(2,shi); ? ? ? ?
? ? ? ? Gun(3,ge); ? ? ? ?
? ? ? ? js++;? ? ? ? ?//每次循環(huán),js+1
? ? ? ? if(js == 200) //==等于 >大于 < 小于 >= 大于等于 <= 小于等于;一個(gè)延時(shí)
? ? ? ? {
? ? ? ? ? ? js=0;? ? ?//js清零復(fù)位
? ? ? ? ? ? num++;
? ? ? ? ? ? qian=num%10000/1000;
? ? ? ? ? ? bai=num%1000/100;
? ? ? ? ? ? shi=num%100/10;
? ? ? ? ? ? ge=num%10;
? ? ? ? }
? ? }
} ?
?
void Gun(u16 e,u16 f) ? ? ? ? ? ??
{ ?
? ? a = Data2[e];? ? ? ??
? ? ? ? ??
? ? for(b=0;b<8;b++)??
? ? {
? ? ? ? DIO = a&0x80;??
? ? ? ? SCK = 0;
? ? ? ? SCK = 1; ? ? ?
? ? ? ? a=a << 1; ? ??
? ? }?
? ? a = Data1[f];?
? ? for(b=0;b<8;b++)??
? ? {
? ? ? ? DIO = a&0x80;??
? ? ? ? SCK = 0;
? ? ? ? SCK = 1; ? ??
? ? ? ? a=a << 1; ? ?
? ? }?
? ? RCK=0;? ? ? ? ? ? ?
? ? RCK=1;? ? ? ? ? ??
}
4位共陰數(shù)碼管顯示(595*2方式)的評(píng)論 (共 條)
