功能說明:
4個共陽極七段顯示器每次顯示4個數(shù)字,從0-F共有16個字,分成3-0,7-4,B-8,F(xiàn)-C四組數(shù)字,每次顯示一組,依次顯示,循環(huán)不止。
電路說明:
本實(shí)驗(yàn)所使用的共陽極七段顯示器是由4個七段顯示器做在一起,所以4個七段顯示器共享一組七段控制線,而每一個七段顯示器都有自己的共陽極腳,故這組共陽極七段顯示器共有12只引腳。
晶體管Q1-Q4 作為電子開關(guān),使用PNP型三極管,當(dāng)晶體管的基極為低電位時,發(fā)射極與集電極導(dǎo)通,但是會有0.2V的壓降。
由于每一個晶體管的發(fā)射極都可接上電源供給所控制的共陽極七段顯示器,故在七段顯示器的每一段LED上必須串接一個電阻,以防止LED被燒毀。因?yàn)榘l(fā)射極可以直接接VCC而無須再串接電阻,但需注意基極必須接一個數(shù)千歐的電阻,這樣晶體管才會正常工作。
完整的程序文件下載地址:http://m.raoushi.com/f/htdef.rar
程序:
#include "HT48F50E.H"
const unsigned char number[16]={
0x81,0xcf,0x92,0x86,
0xcc,0xa4,0xa0,0x8f,
0x80,0x84,0x88,0xe0,
0xb1,0xc2,0xb0,0xb8}; //數(shù)碼管顯示0-F
void delayms(unsigned int dly)
{
unsigned int i;
for(i=0;i<dly;i++)
{
_delay(984);
}
} //延時函數(shù)1MS
void main()
{
unsigned char j;
_pac=0x00;
_pbc=0x00; //PA,PC輸出選擇
while(1) //大循環(huán)
{
for(j=0;j<50;j++) //循環(huán)顯示
{
_pb=0xfe; //選通第一位數(shù)碼管
_pa=number[0]; //顯示0
delayms(5); //延時5MS(下同)
_pb=0xfd;
_pa=number[1];
delayms(5);
_pb=0xfb;
_pa=number[2];
delayms(5);
_pb=0xf7;
_ pa=number[3];
delayms(5);
}
for(j=0;j<50;j++)
{
_pb=0xfe;
_pa=number[4];
delayms(5);
_pb=0xfd;
_pa=number[5];
delayms(5);
_pb=0xfb;
_pa=number[6];
delayms(5);
_pb=0xf7;
_pa=number[7];
delayms(5);
}
for(j=0;j<50;j++)
{
_pb=0xfe;
_pa=number[8];
delayms(5);
_pb=0xfd;
_pa=number[9];
delayms(5);
_pb=0xfb;
_pa=number[10];
delayms(5);
_pb=0xf7;
_pa=number[11];
delayms(5);
}
for(j=0;j<50;j++)
{
_pb=0xfe;
_pa=number[12];
delayms(5);
_pb=0xfd;
_pa=number[13];
delayms(5);
_pb=0xfb;
_pa=number[14];
delayms(5);
_pb=0xf7;
_pa=number[15];
delayms(5);
}
}
}

