51單片機-數碼管

共陰極是指所有發(fā)光二極管陰極連接在一起,這個(gè)共陰極可以用來(lái)做片選。

如圖,這里有8個(gè)發(fā)光二極管,到底哪個(gè)亮需要進(jìn)行片選。
段選:8段數碼管每一段的控制段叫段選
位選:就是進(jìn)行哪個(gè)8段數碼管亮的選擇
TX-1C使用兩片鎖存器74HC573實(shí)現位選和段選

這里的D0"7是連在單片機的I/O口上,當為高電平時(shí),Q與D中的數據一致,遇到負跳變沿時(shí)Q中的
數據保持住,D中的數據即使變化也不會(huì )影響Q。
MCUVersion2使用的是74HC245和38譯碼器74HC138


74HC245有一個(gè)緩沖和驅動(dòng)的作用,這樣可以使led顯示的更加穩定,
數碼管顯示分動(dòng)態(tài)顯示和靜態(tài)顯示,每個(gè)數碼管的狀態(tài)都是被不斷更新的,利用的人的視覺(jué)暫留,
使看上去數值保持在一個(gè)固定的位置上,人的視覺(jué)是有延續性的,當一個(gè)東西不斷變化時(shí),變化
的時(shí)間小于人眼的視覺(jué)暫留時(shí)間的話(huà),人的眼睛會(huì )以為這個(gè)東西是連續的。靜態(tài)顯示是一幅畫(huà)面
放在那看上去是不動(dòng)的而它確實(shí)是不動(dòng)的。動(dòng)態(tài)掃描顯示即輪流向各位數碼管送出字型碼和相應
位選,利用發(fā)光管的余暉和視覺(jué)暫留作用,使人的感覺(jué)好像各位數碼管同時(shí)都在顯示。
靜態(tài)顯示:
數碼管從左向右依次點(diǎn)亮:
#include <reg52.h>
void delay(){
int i,j;
for(i = 0; i < 0xff; i++)
for(j = 0; j < 0xff; j++)
;
}
unsigned int code duan[]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};
unsigned int code wei[]={
0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};
void main(){
while(1){
int i;
P2 = 0x39;
for(i = 0; i < 8; i++){
P2 = duan[ i];
P1 = wei[ i];
delay();
}
}
}
想讓哪個(gè)數碼管亮多少就亮多少:
評論