功能說明:
4個共陽極七段顯示器每次顯示4個數(shù)字,從0-F共有16個字,分成3-0,7-4,B-8,F(xiàn)-C四組數(shù)字,每次顯示一組,依次顯示,循環(huán)不止。
電路說明:
本實驗所使用的共陽極七段顯示器是由4個七段顯示器做在一起,所以4個七段顯示器共享一組七段控制線,而每一個七段顯示器都有自己的共陽極腳,故這組共陽極七段顯示器共有12只引腳。
晶體管Q1-Q4 作為電子開關(guān),使用PNP型三極管,當(dāng)晶體管的基極為低電位時,發(fā)射極與集電極導(dǎo)通,但是會有0.2V的壓降。
由于每一個晶體管的發(fā)射極都可接上電源供給所控制的共陽極七段顯示器,故在七段顯示器的每一段LED上必須串接一個電阻,以防止LED被燒毀。因為發(fā)射極可以直接接VCC而無須再串接電阻,但需注意基極必須接一個數(shù)千歐的電阻,這樣晶體管才會正常工作。
完整的程序文件下載地址:http://www.zg4o1577.cn/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); } } }