如果是STC89C52單片機,led接在P2口,低電平點亮,那么初始化P2=0XFF; 此時用>>1的方法,是不是就把led依次點亮了,并保持亮了呢。
數碼管結構分:
段 (由abcdefgh 8個LED組成的圖形,如1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等等圖形)和 位 (其實就是數碼管的共陽或共陰的公共點)。數碼管極性分:共陰(位共低電平),共陽(位共高電平)
如果是共陽數碼管,那么位就是陽極(電源正極或單片機IO輸出高電平),段就是8個LED的陰極,如果把段接到P1口(abcdefgh->P10~P17),P1=0X00; 數碼管就是顯示一個8,并且右下角有個小數點。如果要顯示一個8,不顯小數點,那么就是給h段一個高電平,P1=0x80;(1000 0000),一個數碼管顯示8的數碼管就亮了。代碼實現就是:
P37=1;// (接通數碼管位電源) P1=0X80;// (給段數據顯示8) 。然后延時一下,保持數碼管亮1MS左右,P37=0;//位關閉,消除鬼影。
要其它數碼管亮起來,根據數碼管數量就不停地重復上面的代碼,每個數碼管都會顯示8。
不同的IO控制不同的位為1就顯示對應的一位數碼管,給段不同的數據,那么數碼管就顯示不同的圖形了。
|