<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 數碼管動(dòng)態(tài)顯示數字

數碼管動(dòng)態(tài)顯示數字

作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò ) 收藏
LED數碼管動(dòng)態(tài)掃描顯示數字(C語(yǔ)言)
#include
sbit P00 = P0 ^ 0;
sbit P01 = P0 ^ 1;
sbit P02 = P0 ^ 2;
sbit P03 = P0 ^ 3;
int DATA_LED[11] =
{
//0~9的數碼管段碼 A0H,BBH,62H,2AH,39H,2CH,24H,BAH,20H,28H 根據具體電路而定,不通用
0xA0,//0
0xBB,//1
0x62,//2
0x2A,//3
0x39,//4
0x2C,//5
0x24,//6
0xBA,//7
0x20,//8
0x28,//9
0xFF
};
void delay(int m)//延時(shí)程序,延時(shí)m*0.5毫秒
{
unsigned int i;
unsigned int j;
for (i = 0; i < m; i++)
{
for (j = 0; j < 500; j++){}
}
}
void led(int n)//數碼管顯示及數據處理程序
{
P1 = 0xFF;
P1 = DATA_LED[n % 10];//個(gè)位
P00 = 0;
delay(1);
P00 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 10 % 10];//十位
P01 = 0;
delay(1);
P01 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 100 % 10];//百位
P02 = 0;
delay(1);
P02 = 1;
P1 = 0xFF;
P1 = DATA_LED[n / 1000 % 10];//千位
P03 = 0;
delay(1);
P03 = 1;
}
void main(void)
{
while (1)
{
led(404);//顯示數字404,實(shí)際顯示的是0404,需要在led()函數中判斷,沒(méi)有千位的情況,不是讓顯示成0
}
}

原理很簡(jiǎn)單,這是LED動(dòng)態(tài)顯示方式, 當P1為高電平,P0為低電平是,燈就亮。顯示寫(xiě)成了函數led(),調用很方便,這個(gè)還沒(méi)有解決小數的問(wèn)題,不過(guò),把原理弄懂了,其他的理解起來(lái)就會(huì )很快了。

本文引用地址:http://dyxdggzs.com/article/201612/325281.htm

我這里是給P1賦值, 例如P1=0xBB,換成二進(jìn)制,P1=10111011,可以看出剛好是八位,那P1^0=1;P1^1=1,P1^2=0…… ,不用分別給每個(gè)口賦值,把這個(gè)理解了就懂了。

P1 = 0xFF; //每次一定要重新賦值,不然可能會(huì )出現顯示全是8的情況


P1 = DATA_LED[n / 1000 % 10]; //千位的數字對應的數碼管段碼


P03 = 0; //前面有定義 sbit P03 = P0 ^ 3,就是把P0.3接低電平


delay(1); //采用空循環(huán)執行延時(shí)1*0.5毫秒,再關(guān)閉顯示下一位,利用人眼的視覺(jué)滯留,這種動(dòng)態(tài)變換就感覺(jué)不到了,12MHz的晶體振蕩器


P03 = 1; //每次顯示完了一定要接高電平,不然會(huì )顯示成全是8



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>