新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機動態(tài)數(shù)碼管的設計

單片機動態(tài)數(shù)碼管的設計

作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
一、數(shù)碼管動態(tài)顯示

動態(tài)顯示

本文引用地址:http://m.butianyuan.cn/article/201611/322008.htm

LED數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。

二、Proteus仿真實驗



源程序:

#include//C51頭文件
#include//函數(shù)頭文件
#define uchar unsigned char//宏定義uchar=unsigned char
#define uint unsigned int//宏定義uint=unsigned int

uchar duan_code[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f
};//共陰極數(shù)碼管段碼0~9
uchar wei_code[]={0xFE,0XFD}; //共陰極數(shù)碼管位碼

void delay_ms(uint z)//ms級延遲函數(shù),z表示形參,是幾就是幾ms延遲
{
uint x,y;
for(x=z;x>0;x--)
for(y=99;y>0;y--)
{ _nop_();
_nop_();
}
}

void main(void)//主函數(shù)
{
uint i=23;//初始化數(shù)碼管顯示的值
P0=0X00;//初始化P0口為低電平
P2=0XFF;
while(1)
{
P2=0XFE;//十位顯示
P0=duan_code[i/10];//通過對i取整,求出十位顯示的數(shù)字
delay_ms(5);//每次間隔2ms
P2=0XFF;

P2=0XFD;//個位顯示
P0=duan_code[i];//通過對i取余,求出個位顯示的數(shù)字
delay_ms(5);//每次間隔2ms
P2=0XFF;

}
}



評論


技術(shù)專區(qū)

關(guān)閉