51單片機怎么控制引腳的輸出 如何讓單片機隨機一個引腳輸出高電平?
如何讓單片機隨機一個引腳輸出高電平?如果單片機支持位操作(位尋址),可以直接控制一個位的管腳。比如AT89C51的微控制器:P1 01;如果不支持位操作(位尋址),則使用AND或操作,如atmega
如何讓單片機隨機一個引腳輸出高電平?
如果單片機支持位操作(位尋址),可以直接控制一個位的管腳。
比如AT89C51的微控制器:P1 01;如果不支持位操作(位尋址),則使用AND或操作,如atmega 16:porta | 0x 01;(即PA0寫1)
51單片機輸出為什么不是高電平有效?
由于51單片機的管腳是一個準雙向端口,為了正確讀取管腳的內(nèi)容,在輸入前加一個高電平。也就是說,在輸出變?yōu)檩斎胫?,必須發(fā)送高電平才能正確讀取數(shù)字,已經(jīng)處于輸入狀態(tài),所以不發(fā)送高電平也可以稱為準雙向。
51單片機的IO口是a "準;"雙向端口,拉電流弱,吸電流強,換句話說,輸出電平高時能輸出的電流太小,負載重時拉不高;
51單片機可以控制多少輸出輸入?
答:51單片機有4個I/O口,每個都是8位雙向口,占32個管腳。每個端口包括一個鎖存器(即特殊寄存器P0-P3)、一個輸入驅(qū)動器和一個輸入緩沖器。一般來說,這四個端口稱為P0 ~ P3。無需片外擴展的存儲在系統(tǒng)中,這四個端口的每一位都可以用作雙向通用I/O端口。
在具有片外擴展存儲器的系統(tǒng)中,P2端口用作高位8位地址線,P0端口用作低位8位地址線和分時雙向數(shù)據(jù)總線。
對Arduino設(shè)為輸出(OUTPUT)的引腳進行寫操作(digitalWrite)的作用是什么?
首先要明確IO口的幾種常見模式。對于數(shù)字IO,常見的模式有:推挽輸出、開漏輸出、浮空輸入(高阻輸入)、上拉輸入、下拉輸入。STM32支持以上所有模式,但很多單片機并不支持以上所有模式。比如Arduino采用的AVR微控制器不支持開漏輸出和下拉輸入。
第二,要明確 "輸入阻抗 "和 "輸出阻抗 "。比如當IO口輸出高電平時,并不是像機械開關(guān)一樣直接在IO口內(nèi)部的電源正極插入一根導(dǎo)線,IO腳和電源正極之間實際上存在一個電阻。當這個阻力很小時,我們稱之為 "強壯 "。當這種阻力很大時,我們稱之為 "弱 "。當然,這個電阻的一端接IO引腳,如果另一端接電源正極,就成了上拉電阻,如果接地,就叫下拉電阻。
讓 我們先來談?wù)勢敵瞿J健τ贏rduino,當IO口用pinMode設(shè)置為輸出時,IO的狀態(tài)實際上是 "強大的推拉和,也就是說,設(shè)置為高電平時,IO口對電源正極的電阻比較小(強上拉),設(shè)置為低電平時,IO口對地的電阻比較小。也比較小(強下拉),所以IO口驅(qū)動能力強。事實上,它 沒有那么強烈,它 大約幾十毫安,可以點亮LED。這里順便說一下常見的51單片機,它的IO口總是連一個上拉電阻,之所以這么叫是因為它比較大。弱上拉,所以51單片機的上拉電流驅(qū)動能力(IO管腳高時電流從IO管腳流向外部電路的能力)比較弱,只有100μA左右,通常只會讓LED發(fā)出很弱的光,所以51單片機IO口點亮LED的通常是灌水。電流(電流從外部電路流入IO引腳)。