欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于單片機上拉電阻接線問題 第二問 [打印本頁]

作者: happy2058    時間: 2020-5-2 23:40
標(biāo)題: 關(guān)于單片機上拉電阻接線問題 第二問
本帖最后由 happy2058 于 2020-5-3 15:03 編輯

一直沒搞好,睡都睡不好,這個板把我都快搞瘋了
單片機IO不夠5V 加了上拉電阻發(fā)現(xiàn)不行。試過1K和10K  然后發(fā)現(xiàn)以下問題點。
1,不管P1還是P2,單獨給0xff 就是5V ,如果把整個代碼下去進就只有3.9V左右,我把線都拔掉,空載3.9V。為什么???
2,下圖,1 IO串10K  給0V  e極給5V VCC,   上拉1K        數(shù)碼管不亮
               2圖 IO串10K 給0V   e極給5V VCC ,                   數(shù)碼管亮
               3圖 IO串10K P2 3.9V   e極給5V,  上拉1K       數(shù)碼管不亮          注:上拉到4.7V左右

               4圖 IO串10K P2 3.9V   e極給5V ,                  數(shù)碼管亮

               5圖 IO串1K  P2 3.9V    e極給5V    上拉10K或1K    不管有沒有上拉電阻,三極管都處在放大狀態(tài)     數(shù)碼管不受控

求大神分析一下,三極管沒學(xué)好,不要見笑!!! 三極管是S8550  PNP

板上P24~P27是懸空,接了半邊開關(guān)管腳




7a595214a548c2220fe946766aa877f.jpg (136.44 KB, 下載次數(shù): 77)

7a595214a548c2220fe946766aa877f.jpg

03ba4d1562816b83e4734af3934bae9.jpg (62.71 KB, 下載次數(shù): 60)

03ba4d1562816b83e4734af3934bae9.jpg

作者: happy2058    時間: 2020-5-2 23:51
程序如下
#include <reg52.h>
//                                                       0   1   2   3   4   5   6   7  8    9
unsigned char LED8DATA_One[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
//                                                    段選高位       底位
unsigned char LED8DATA_Two[4] = {0xef, 0xdf, 0xbf, 0x7f};
//unsigned char LED8DATA_Two[4] = {0xff, 0xff, 0xff, 0xff};              // 測試用全給1
unsigned char led[4] = {0x00};
int minute=60 ,sec=0;                                                                  //60分鐘
unsigned int Counter=0;
void LEDDATA(unsigned char MM, unsigned char jj)
{
P0 = MM;
P2= jj;
}
void Time1_Init()                                                                      //定時器1中斷   1毫秒
{
TMOD |= 0X10;
TMOD &= 0XDF;
  //TMOD = 0X10;
TH1 = 0XFC;
TL1 = 0X66;
TR1 = 1;
}
void int_Init()
{
ET1 = 1;
EA = 1;
}
void main()
{  
  unsigned char k=0;
  Time1_Init();
  int_Init();
  while (1)
   {
  led[3] = sec % 10;
  led[2] = sec / 10 % 10;
  led[1] = minute % 10;
  led[0] = minute / 10 % 10;

   if (k < 4)
   {
   k++;
   }
   else
   {
   k = 0;
   }
      LEDDATA(LED8DATA_One[led[k]],LED8DATA_Two[k]);
   if (500 < Counter)
      LEDDATA(LED8DATA_One[led[k]]^0X80,LED8DATA_Two[k]);                        //時鐘顯示
   }
}
void interrupt_time_1() interrupt 3                                                            //60分鐘倒數(shù)中斷
{
TH1 = 0XFC;
TL1 = 0X66;
Counter++;
if (1000 == Counter)
{
  Counter = 0;
  sec--;
  if(sec<0)
  {
  sec=59;
  }
  if (sec == 59)
  {
   minute--;
  }
}
}


作者: odfggf    時間: 2020-5-3 16:00
看來你是沒有弄清單片機上拉電阻的意思。在正電源和IO口之間接的才叫上拉電阻,如圖
作者: odfggf    時間: 2020-5-3 16:25
本帖最后由 odfggf 于 2020-5-3 16:56 編輯

  PNP導(dǎo)通的條件就是B級低于E級,5張圖說的其實是PNP的偏置電阻。偏置電阻用1K,和10K串聯(lián)分壓,B級電壓高于4.3V,不夠PNP導(dǎo)通條件。
圖中這幾個10K電阻,是PNP的B級限流電阻,取值1K---4.7K,都足以滿足3極管的開關(guān)2種狀態(tài),點亮數(shù)碼管。在單片機數(shù)字電路當(dāng)中,只需要考慮3極管的開關(guān)2種狀態(tài),放大等別的狀態(tài)不需要,所以只需要給b級接一個限流電阻就行了,別的不需要

作者: 星際塵埃    時間: 2020-5-3 17:27
單片機輸出低電平時,通過IC內(nèi)部下拉到地。當(dāng)輸出高電平時,由內(nèi)部上拉至vcc。三極管導(dǎo)通電壓Vbe一般0.5到0.8v之間。
1/4.電流經(jīng)上拉通過IC內(nèi)部回流到地。vbe電壓為上拉電阻電壓,不考慮IC內(nèi)部下拉分壓時。粗略計算Vbe也無法滿足導(dǎo)通電壓,因而截至。
2/3.Vbe足以滿足導(dǎo)通電壓,因而不論高低電平都回導(dǎo)通。
5.就更不必說了。
作者: 幻劍心    時間: 2020-5-3 17:41
上拉電阻:+5V---電阻---IO口。
圖一:IO 0V。竄兩電阻至5V。先當(dāng)于兩個電阻(10K,1K)分壓,1K電阻分到的電壓驅(qū)動三極管,也就是三極管E和B之間的電壓為5*(1/11)約0.5V,三極管不導(dǎo)通。所以led不亮。
圖二:三極管e極和B極電壓降約5V,三極管導(dǎo)通,LED亮。
其它的圖同理。就不分析了。
至于圖3會亮。應(yīng)該是8550有關(guān)。8550的EB壓降只要達(dá)到1.2V就會導(dǎo)通。
最后,如果要加上拉電阻,避免出現(xiàn)LED在單片機待機狀態(tài)下信號錯誤。就在10K電阻的另一端直接接+5V就行。這樣,10K就是上拉電阻。你那個1K的電阻是并聯(lián)在三極管BE極之間的。起到的是分壓作用。不是上拉作用。
作者: happy2058    時間: 2020-5-3 20:20
odfggf 發(fā)表于 2020-5-3 16:00
看來你是沒有弄清單片機上拉電阻的意思。在正電源和IO口之間接的才叫上拉電阻,如圖

謝謝你,之前不太明白,只知道為了得到一個電壓才接電阻
作者: happy2058    時間: 2020-5-3 20:21
星際塵埃 發(fā)表于 2020-5-3 17:27
單片機輸出低電平時,通過IC內(nèi)部下拉到地。當(dāng)輸出高電平時,由內(nèi)部上拉至vcc。三極管導(dǎo)通電壓Vbe一般0.5到0 ...

嗯,謝謝你,我好好理解一下
作者: happy2058    時間: 2020-5-3 20:21
odfggf 發(fā)表于 2020-5-3 16:25
PNP導(dǎo)通的條件就是B級低于E級,5張圖說的其實是PNP的偏置電阻。偏置電阻用1K,和10K串聯(lián)分壓,B級電壓高 ...

謝謝你哦
作者: happy2058    時間: 2020-5-3 20:24
幻劍心 發(fā)表于 2020-5-3 17:41
上拉電阻:+5V---電阻---IO口。
圖一:IO 0V。竄兩電阻至5V。先當(dāng)于兩個電阻(10K,1K)分壓,1K電阻分到的電 ...

謝謝你,我那單片機IO口,電壓不夠,搞我好久,我要給1,讓三極管不通
幫我看看這個圖。IO的總電流是不是這樣計算的,我基礎(chǔ)不好

bedc1dd3b1d6c879461516408bfd0a7.jpg (60.14 KB, 下載次數(shù): 50)

bedc1dd3b1d6c879461516408bfd0a7.jpg

作者: TTQ001    時間: 2020-5-4 01:54
在上圖中,應(yīng)將10k電阻器放在左側(cè)5V電源下方,然后連接到IO和晶體管的基極,注意,在連接IO之前,添加一個1k電阻器。 在晶體管發(fā)射極和右側(cè)5V之間,添加一個300 ohm的電阻器以限制LED電流。 IO被拉低以點亮LED,電流計算如下:在發(fā)射器上,(5V-1V)/ 300 ohm〜13.3mA; 在基極上,Vb = 5-1-0.3 = 3.7V,IO電流I = 3.7V-0.2 / 1k = 3.5mA,上拉電阻器電流I_pull_up =(5-3.7)/ 10k = 0.13mA,晶體管 基本電流Ib = 3.5mA-0.13mA = 3.37mA,LED電流I_LED = 13.3mA-3.37mA = 9.93mA;
作者: happy2058    時間: 2020-5-4 10:39
TTQ001 發(fā)表于 2020-5-4 01:54
在上圖中,應(yīng)將10k電阻器放在左側(cè)5V電源下方,然后連接到IO和晶體管的基極,注意,在連接IO之前,添加一個1 ...

你看我這個圖,因為IO 給輸出的時候不到5V (沒有外接電路)實測只有3.8到4V之間。是不是程序把電壓拉低了?
給低電平的時候,三極管導(dǎo)通,給高電平的時候,電壓拉不上來,三極管無法斷開。
在IO上拉,無法拉高。這方法不可行
問1-在基極上拉,這個點的電壓要在4.3以上才能斷開三極管。電阻要考慮三級管導(dǎo)通時基級電壓。斷開時基極電壓。電阻取值隨IO變化?
問2-IO電壓在沒有外接電路的時候,電壓是怎么因為程序變化有影響??長通電是5V。跑程序的時候電壓不足。
問3-有沒有什么方法可以讓IO固定在5V。壓降小一點

51hei截圖_20200504101454.png (110.05 KB, 下載次數(shù): 59)

51hei截圖_20200504101454.png

ddd.jpg (85.83 KB, 下載次數(shù): 61)

ddd.jpg

作者: odfggf    時間: 2020-5-5 09:39
happy2058 發(fā)表于 2020-5-4 10:39
你看我這個圖,因為IO 給輸出的時候不到5V (沒有外接電路)實測只有3.8到4V之間。是不是程序把電壓拉低 ...

這個應(yīng)該考慮電源供電的穩(wěn)定性,是不是電源供電不足?
另外在跑程序時,IO會不斷變化,測出的電壓是不準(zhǔn)的。
如果檢測都沒有問題,可以考慮用電平轉(zhuǎn)換器,而不是在三極管基級加電阻,這個無論怎么加,都不會有任何作用




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1