1. 為什麼單片機上第一個發光二極體是0xfe還有其他的燈呢分別是什麼
和發光二極體的接法有關,二極體陰極端連單片機,輸出低電平0就會點亮,0xfe對應的引腳信號為11111110,其中的0就是輸出給第一個發光二極體陰極端的低電平信號。其他的燈對應的輸出低電平編碼信號同樣點亮。
例如:假設單片機的P0口接了八個LED,其中JPP0接的是高電平5V,而L0.0到L0.7接的分別是P0.7到P0.0這樣的話如果P0.7到P0.0上電平是高電平,那麼這個led的壓降就是0,led不亮,如果P0.7到P0.0上電平是低電平,那麼led上就會產生壓降,led就會亮。
#include<reg51.h> /*包含單片機寄存器的頭文件*/
void main(void){while(1){P0=0xfe; /*第一個燈亮*/ P0=0xff; /*第一個燈滅*/}}
P0=0xfe,相當於P0=11111110,這時候P0.0=0,燈L0.7亮,然後P0=0xff,相當於P0=11111111,這時候P0.0=1,燈L0.7滅,然後由於這兩句是放在while(1)中的由於其中1是while{}中的語句執行的條件,由於1始終為真,所以這兩句循環執行。燈L0.7就在不斷閃爍,亮滅。
(1)單片機fe什麼意思擴展閱讀:
相關發光二極體引腳點亮編碼:
原理:給二極體陽極和陰極加上正向電壓時,二極體導通。 當給陽極和陰極加上反向電壓時,二極體截止。 因此,二極體的導通和截止,則相當於開關的接通與斷開。
0XFE=1111 1110 表示一個燈亮。0xfd = 1111 1101 第二個燈亮。0xfb = 1111 1011 第三個燈亮。0xf7 = 1111 0111 第四個燈亮。0xef = 1110 1111 第五個燈亮。0xdf = 1101 1111 第六個燈亮。0xbf = 1011 1111 第七個燈亮。0x7f = 0111 1111 第八個燈亮。
2. 單片機矩陣按鍵掃描為什麼用if判斷兩次
好好看書,這是延時消抖,按鍵剛按下時會有一個不穩定過程,似接非接,會出現高低電平的幾次跳變,如果只檢測一次低電平就認為按鍵按下了,會出現兩種情況,一是按一次被當作多次,二是某些偶爾的干擾也可能被當作按鍵按下。延時10到20ms,真正按下按鍵就穩定了,如果是干擾第二次判斷不可能仍是低電平。
3. 單片機中為什麼 P1=0xfe,中的f是P1^0-p1^3,
P1口8條線,P1^0到P1^7,0xfe是16進製表示:1111 1110 前面4位是f,後面4位是e,8421原則