限流電阻只接在5678這4個引腳
把一個數碼管當成兩個數碼管來看,一個數字分兩次顯示
假設:#define out P1
com1 bit P1^0
com2 bit P1^1
com3 bit P1^2
com4 bit P1^3
顯示一個數字8:
設定com1,5678為推挽輸出
設定com2,com3,com4,為高阻,就是沒有輸出和吸入能力,隨便怎么操作,234這幾個數碼管都是不會亮的
顯示數碼管的ABCD:
這個過程com2,com3,com4是不參與的,因為是高阻,所以,不會有輸出和吸入能力的
1:
com1=1 ;//高電平輸出
out&=0x0f;//低電平吸入,用按位與操作,顯示,低位是com的,不影響
延時1mS;這是顯示部分
com1=0;//這是消除殘影部分
out&=0x0f;//com1為低電平,5678這幾個IO輸出低電平,用于消除殘影out&=0x0f一定要有,在這里out&=0x0f只是和數碼的"8"巧合了而已,不是重復操作
顯示數碼管EFG DP
2:
com1=0;//低電平吸入
out&=0xff;//高電平輸出,用按位與操作,顯示,低位是com的,不影響
延時1mS;out&=0x0f;//com1為低電平,5678這幾個IO輸出低電平,用于消除殘影
這就完成了一個數碼管的顯示了,剩下的也是一樣的道理,每次顯示之后都要消除殘影,每次顯示之前都要先更改幾個com的輸出模式,保證只有一個IO有輸出和吸入能力,其它的都沒有這個能力
5678這幾個高位的不需要設置,只要設置一次就行,設置成推挽
|