在用c語言進行微控制器**編寫的時候我們需要引入一些微控制器專用的標頭檔案如:#include ,#include 等。
在#include 標頭檔案中,擴充套件了幾個型別專門用於微控制器的操作,這裡說下sfr和sbit:
sfr就是特殊功能暫存器,他是微控制器記憶體中的一段特殊的區域,這片記憶體區域中儲存的值用於配置微控制器,比如微控制器的輸入輸出。
在89c51rc系列中,這片區域的位址是80h~ffh總共128b。
我們可以通過改變這片位址中儲存的值(如由0變為1),而改變微控制器的某些功能,如進行輸出或者讀取輸入等。
用簡單的例子理解,比如我們點亮乙個led燈,首先這個led燈元件是接在微控制器的p0段埠的第乙個埠上。
實際上p0段埠就是特俗功能暫存器的80h位址的位元組控制,80h位元組有8個bit,對應著p0段的8個埠。
所以我們在**中只要給80h的第乙個bit賦值為0,則該埠就會輸出乙個低電平,從而點亮led燈。
而擴充套件的sfr型別,就是用於定義乙個特殊功能暫存器的某一位元組。sbit就是用於定義某一位元組的第幾個bit。
所以我們引入這個標頭檔案中可以直接使用定義好的p0給它的某乙個bit賦值:sbit led0 = p0^1;led0=0;
微控制器位址擴充套件
匯流排 位址匯流排 p0口作為低八位位址,p2口作為高八位位址,兩者共同構造位址匯流排。由此可見,微控制器最多可以有16條位址線,因此最大定址範圍為64 kb 0000h ffffh 位址匯流排是單向的,只能由微控制器向外傳送。資料匯流排 資料匯流排由p0口構成,雙向。需要注意的是p0口兼作位址匯流...
微控制器擴充套件IO口
微控制器如何擴充套件io口?首先我們先講講為什麼要擴充套件io口。在我們使用51微控制器的時候,有時候會出現io口不夠用的情況。比如鍵盤!這個時候io口的資源就十分有限了。按鍵是我們常用的器件,做某些東西的時候又不能缺少按鍵。如果乙個按鍵對應乙個io口,那麼可想而知,按鍵所佔的io口的數量是很大的。...
微控制器位址擴充套件後
我們在微控制器的儲存空間不夠用之後,需要外擴這個時候我們一般,要麼外擴ram 要麼外擴flash 要麼ram和flash一起擴,但是不管怎麼樣,我們這裡有幾個問題需要澄清下 1 微控制器上電後怎麼執行外擴的flash程式?ea vpp 訪問和序儲存器控制訊號 接高電平時 當ea為高電平時,cpu執行...