單片機(jī)是控制器件而不是驅(qū)動(dòng)器件,因?yàn)檩敵?a href="http://www.asorrir.com/tags/電流/" target="_blank">電流很小,不足以驅(qū)動(dòng)某些需要大電流的外設(shè)。 單片機(jī)的GPIO口驅(qū)動(dòng)能力有限,不能直接驅(qū)動(dòng)較大功率的負(fù)載。
標(biāo)準(zhǔn)51的P0口(雙向口)在作為I/O口使用時(shí),是開(kāi)漏結(jié)構(gòu),在實(shí)際應(yīng)用中通常要添加上拉電阻(排阻)。 P1、P2、P3都是準(zhǔn)雙向I/O,內(nèi)部有上拉電阻,既可作為輸入又可以作為輸出。
P0三態(tài)門有三個(gè)狀態(tài),即在其的輸出端可以是高電平、低電平,同時(shí)還有一種就是高阻狀態(tài)(或稱為禁止?fàn)顟B(tài))
惡補(bǔ)一些基礎(chǔ)概念,稍微了解下,原理看不懂跳過(guò)...
1.灌電流方式
LED正極接VCC,負(fù)極接IO口。 IO為高電平是LED兩極電平相同,沒(méi)有電流,LED熄滅;IO為低電平時(shí),電流從VCC流入IO,LED點(diǎn)亮。
但是當(dāng)你把LED正極接在IO接口,負(fù)極接GND時(shí),將IO接口置于高電平,LED會(huì)亮,但因?yàn)镮O接口上拉能力不足而使亮度不理想
2.三極管驅(qū)動(dòng)
三極管全稱半導(dǎo)體三極管,也稱晶體三極管,是一種控制電流的半導(dǎo)體器件其作用是把微弱的電信號(hào)放大成幅度值較大的電信號(hào),也用作無(wú)觸點(diǎn)開(kāi)關(guān),在電路中主要起開(kāi)關(guān)和增大電流的作用。
NPN基極高于發(fā)射極電壓是導(dǎo)通,PNP發(fā)射極電壓高于基極電壓則導(dǎo)通。
NPN高電平時(shí)導(dǎo)通,PNP低電平時(shí)導(dǎo)通;
以共陽(yáng)極4位數(shù)碼管為例,共陰極感覺(jué)電路復(fù)雜繁瑣,直接用專用IC驅(qū)動(dòng)就好
PNP例子代碼用自學(xué)單片機(jī)04里面的代碼即可,NPN里面有
注意:唯一的區(qū)別【使用PNP三極管,基極為低電平時(shí),才導(dǎo)通】
NPN三極管基極為高電平導(dǎo)通
3.使用專用IC提高驅(qū)動(dòng)能力(74HC245)
74hc245是一種在單片機(jī)系統(tǒng)中常用的驅(qū)動(dòng)器,在電路中的作用是:增加io口的驅(qū)動(dòng)能力,比如說(shuō)51單片機(jī)的io口本身的驅(qū)動(dòng)電流較小但所帶的負(fù)載很大,這種時(shí)候就可以使用74hc245來(lái)增強(qiáng)io口的驅(qū)動(dòng)能力
共陰極數(shù)碼管連接方式
共陰極數(shù)碼管代碼稍微改動(dòng)下
1.顯示數(shù)字0-9的數(shù)組和共陽(yáng)極不一樣不一樣
2.位碼低電平導(dǎo)通,位碼高電平截至沒(méi)有壓降
#include
#include "DelayXms.h"
#define led P2
const u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰極數(shù)碼管0-9
sbit bitcode0 = P1^0;
sbit bitcode1 = P1^1;
sbit bitcode2 = P1^2;
sbit bitcode3 = P1^3;
void display(u16 number);
void main()
{
u16 count=0;
while(1){
count++;
display(count);
if(10000 ==count)
count = 0;
}
}
void display(u16 number)
{
led = a[number/1000];//千位
bitcode0 = 0; //位碼低電平導(dǎo)通
DelayXms(9);
bitcode0 = 1;//位碼高電平導(dǎo)通
led = a[(number/100)%10];//百位
bitcode1 = 0;//位碼低電平導(dǎo)通
DelayXms(9);
bitcode1 = 1;//位碼高電平導(dǎo)通
led = a[(number/10)%10];//十位
bitcode2 = 0;
DelayXms(9);
bitcode2 = 1;
led = a[number%10];//個(gè)位
bitcode3 = 0;
DelayXms(9);
bitcode3 = 1;
}
-
led
+關(guān)注
關(guān)注
242文章
23691瀏覽量
670807 -
三極管
+關(guān)注
關(guān)注
145文章
3651瀏覽量
123939 -
單片機(jī)
+關(guān)注
關(guān)注
6063文章
44915瀏覽量
646756 -
GPIO
+關(guān)注
關(guān)注
16文章
1270瀏覽量
53550 -
灌電流
+關(guān)注
關(guān)注
0文章
127瀏覽量
9334
發(fā)布評(píng)論請(qǐng)先 登錄
常用單片機(jī)I/O端口的驅(qū)動(dòng)能力介紹
關(guān)于51單片機(jī)IO引腳的驅(qū)動(dòng)能力與上拉電阻
單片機(jī)IO引腳驅(qū)動(dòng)能力提升篇
用什么芯片可以增強(qiáng)GPIO口的驅(qū)動(dòng)能力
gpio驅(qū)動(dòng)能力是什么意思
使用三極管提高單片機(jī)IO口驅(qū)動(dòng)LED的能力的設(shè)計(jì)
單片機(jī)IO引腳驅(qū)動(dòng)能力的提高

單片機(jī)IO引腳驅(qū)動(dòng)能力提升篇
單片機(jī)驅(qū)動(dòng)能力不足的提高方法
如何提高單片機(jī)的驅(qū)動(dòng)能力
STC15單片機(jī)的GPIO口驅(qū)動(dòng)LED資料合集

STM32單片機(jī)GPIO口簡(jiǎn)介

單片機(jī)的驅(qū)動(dòng)能力對(duì)點(diǎn)亮LED燈的影響

如何讓單片機(jī)的IO口利用最大化

評(píng)論