數(shù)碼管的 8 個段,我們直接當成 8 個 LED 小燈來控制,那就是 a、b、c、d、e、f、g、dp 一共 8 個 LED 小燈。我們通過圖 5-3 可以看出,如果點亮 b 和 c 這兩個 LED 小燈,也就是數(shù)碼管的 b 段和 c 段,其他的所有的段都熄滅的話,就可以讓數(shù)碼管顯示出一個數(shù)字 1,那么這個時候實際上 P0 的值就是 0b11111001,十六進制就是 0xF9。那么我們寫一個程序進去,來看一看數(shù)碼管顯示的效果。
#includesbitADDR0=P1^0;sbitADDR1=P1^1;sbitADDR2=P1^2;sbitADDR3=P1^3;sbitENLED=P1^4;voidmain(){ENLED=0;//使能U3,選擇數(shù)碼管DS1ADDR3=1;ADDR2=0;ADDR1=0;ADDR0=0;P0=0xF9;//點亮數(shù)碼管段b和cwhile(1);}
大家把這個程序編譯一下,并下載到單片機中,就可以看到程序運行的結果是在最右側的數(shù)碼管上顯示了一個數(shù)字 1。
用同樣的方法,我們可以把其他的數(shù)字字符都在數(shù)碼管上顯示出來,而數(shù)碼管顯示的數(shù)字字符對應給 P0 的賦值,我們叫做數(shù)碼管的真值表。我們來列一下我們這個電路圖的數(shù)碼管真值表,注意,這個真值表里顯示的數(shù)字都不帶小數(shù)點的,如表 5-7。
大家可以把上邊那個用數(shù)碼管顯示數(shù)字 1 程序中的 P0 的賦值隨便修改成表 5-7 真值表中的數(shù)值,看看顯示的數(shù)字的效果。