淺談單片機rom和ram與代碼的關係,以及爲什麼要加上拉電阻

ROM,RAM以及code,data

ram掉電丟失
rom掉電不丟失
因爲單片機RAM很有限,所以將不變的保存到ROM中
CODE關鍵字的作用就是告訴編譯器把這些內容寫到ROM中
以 AT89c51 爲例,其中有 128 字節隨機存儲器(又稱數據儲存器 RAM)和 4K 字節的只讀存 儲器(又稱程序存儲器 ROM)
因爲ram太小,所以把放在rom裏邊
data是放在ram裏
在這裏插入圖片描述

51單片機爲什麼要加上拉電阻

P0口和其它三個口的內部電路是不同的,如下圖

P0口是接在兩個三極管D0和D1之間的,而P1-P3口的上部是接一個電阻的。P0口的上面那個三極管D0是在進擴展存儲器或擴展總線時使用MOVX指令時纔會控制它的導通和截止,在不用此指令時都是截止的。在平常我們使用如:P0_1=0 P0_1=1這些語句時控制的都是下面那個三極管D1。
我們先假設P1口接一個74HC373,來看一看它的等效圖
在這裏插入圖片描述
當AT89S51的P1口上接了74HC373後就等於接了一個負載,如上圖右邊。一般來說這些數字電路的輸入阻抗都很大,都在幾百K到上兆歐姆,而P1口內的電阻R一般在幾十K以內。在這裏插入圖片描述如上圖,當我們發出指令P1=0時,三極管D導通,見中間的等效圖,這時P1點的電位爲0。
當發出P1=1的指令後,三極管D截止,見右邊等效圖,因爲Rx的阻值要比R的阻值大得多,因此P1點的電位是接近電源電壓的。即高電平。

我們再來看看P0口接負載時的圖
在這裏插入圖片描述當P0=0時,等效圖是中間的,三極管D1導通,P0點的電位爲0。
而當P0=1時,等效圖是右邊的,三極管D1截止,而上面的三極管D0始終是截止的,這樣P0點就等效於懸空了,它處在不穩定狀態,P0點又是RX的高阻抗輸入點,很容易受到外界和周圍電路的干擾從而直接影響到74HC373的輸出狀態。因此就得加上個電阻。如下圖在這裏插入圖片描述加上電阻Rc後,電路的狀態就和P1口一樣了,這個電阻Rc就是上拉電阻。

但你如果只是爲了讓P0口驅動個發光管,那電路可以直接簡化成下圖那樣。S51內部的電流最好不超過15mA,如果發光管的電壓爲2.2V那電阻就是(5-2.2)÷15=0.18K,也就是180歐姆。在這裏插入圖片描述當P0=0時P0點爲低電位,發光管亮起,流過D1的電流約爲15mA。
當P0=1時,P0點爲懸空,但發光管和180歐電阻都是低阻抗元件,P點電位就爲高電位,再說也無任何輸出影響,因此這樣電路是可以的。

發佈了22 篇原創文章 · 獲贊 5 · 訪問量 4053
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章