上拉電阻: 就是將不確定的信號通過一個電阻拉到高電平,同時此電阻起到一個限流的作用。 下拉電阻,就是下拉到低電平。 1、 OC 門要輸出高電平, 必須外部加上拉電阻才能正常使用, 其實 OC 門就相當於單片機 IO 的開漏輸出。2、 加大普通 IO 口的驅動能力。 標準 51 單片機的內部 IO 口 ...
上拉電阻: 就是將不確定的信號通過一個電阻拉到高電平,同時此電阻起到一個限流的作用。
下拉電阻,就是下拉到低電平。
1、 OC 門要輸出高電平, 必須外部加上拉電阻才能正常使用, 其實 OC 門就相當於單片
機 IO 的開漏輸出。
2、 加大普通 IO 口的驅動能力。 標準 51 單片機的內部 IO 口的上拉電阻, 一般都是在幾
十 K 歐, 比如 STC89C52 內部是 20K 的上拉電阻, 所以最大輸出電流是 250uA, 因此外部加
個上拉電阻, 可以形成和內部上拉電阻的並聯結構, 增大高電平時電流的輸出能力。
3、 在電平轉換電路中, 比如我們前邊講的 5V 轉 12V 的電路中, 上拉電阻其實起到的是
限流電阻的作用。
4、 單片機中未使用的引腳, 比如匯流排引腳, 引腳懸空時, 容易受到電磁干擾而處於種
個紊亂狀態, 雖然不會對程式造成什麼影響, 但通常會增加單片機的功耗, 加上一個對 VCC
的上拉電阻或者一個對 GND 的下拉電阻後, 可以有效的抵抗電磁干擾。
那麼我們在進行電路設計的時候, 又該如何選擇合適的上下拉電阻的阻值呢?
1、 從降低功耗的方面考慮應當足夠大, 因為電阻越大, 電流越小。
2、 從確保足夠的引腳驅動能力考慮應當足夠小, 電阻小了, 電流才能大。
3、 在開漏輸出時, 過大的上拉電阻會導致信號上升沿變緩。 我們來解釋一下: 實際電
平的變化都是需要時間的, 雖然很小, 但永遠都達不到零, 而開漏輸出時上拉電阻的大小就
直接影響了這個上升過程所需要的時間。
#include<reg52.h>
unsigned char code BeatCode[8] = {
0x0E, 0x0C, 0x0D, 0x09, 0x0B, 0x03, 0x07, 0x06}; //步進電機節拍對應的IO控制碼
void delay();
void main()
{
unsigned char tmp;
unsigned char index = 0;
while(1)
{
tmp = P1; //P1口低四位控制步進電機
tmp = tmp & 0xF0; //低四位清零
tmp = tmp | BeatCode[index]; //低四位賦值
P1 = tmp;
index++;
index = index & 0x07; //index到8以後清零。0000 1000 & 0000 0111
delay();
}
}
void delay()
{
unsigned int i = 200;
while(i--);
}