51微控制器 code,idata,關鍵字筆記

2021-10-06 02:04:18 字數 905 閱讀 1082

code」關鍵字  51特有

有這樣一種資料,我們在程式中要使用,但是卻不會改變它的值,定義這種資料時可以加乙個 code 關鍵字修飾一下,這個資料就會儲存到我們的程式空間 flash 中,這樣可以大大節省微控制器的 ram 的使用量,畢竟我們的微控制器 ram 空間比較小,而程式空間則大的多。那麼現在要使用的數碼管真值表,我們只會使用它們的值,而不需要改變它們,就可以用 code 關鍵字把它放入 flash 中了 。

keil c51 語言中的關鍵字,代表了 ram 不同區域的劃分

data:片內 ram 從 0x00~0x7f

idata:片內 ram 從 0x00~0xff

pdata:片外 ram 從 0x00~0xff

xdata:片外 ram 從 0x0000~0xffff

在 keil 預設設定下, data 是可以省略的,即什麼都不加的時候變數就是定義到 data 區域中的。

data 區域 ram 的訪問在組合語言中用的是直接定址,執行速度是最快的。如果你定義成 idata,不僅僅可以訪問 data 區域,還可以訪問 0x80h~0xff 的範圍,但加了 idata 關鍵字後,訪問的時候 51 微控制器用的是通用暫存器間接定址,速度較 data會慢一些。

而且我們平時大多數情況下不太希望訪問到 0x80h~0xff,因為這塊通常用於中斷與函式呼叫的堆疊, 所以在絕大多數情況下,我們使用內部 ram 的時候,只用 data 就可以了。

對於外部 ram 來說,使用 pdata 定義的變數存到了外部 ram 的 0x00~0xff 的位址範圍內,這塊位址的訪問和 idata 類似,都是用通用暫存器間接定址,而如果你定義成 xdata,

可以訪問的範圍更廣泛,從以訪問的範圍更廣泛,從 0 到 64k 的位址都可以訪問到,但是它需要使用 2 個位元組暫存器dptrh 和 dptrl 來進行間接定址,速度是最慢的。

51微控制器 code,idata,關鍵字筆記

code 關鍵字 51特有 有這樣一種資料,我們在程式中要使用,但是卻不會改變它的值,定義這種資料時可以加乙個 code 關鍵字修飾一下,這個資料就會儲存到我們的程式空間 flash 中,這樣可以大大節省微控制器的 ram 的使用量,畢竟我們的微控制器 ram 空間比較小,而程式空間則大的多。那麼現...

51微控制器

數碼管顯示幾乎是每次藍橋杯微控制器設計與開發組競賽的必考部分,相對於使用lcd1602作為顯示裝置,使用數碼管來顯示能夠更好的考察參賽選手的微控制器基本功,因為ct107d開發平台的設計使得數碼管的顯示不僅牽扯到數碼管顯示的 基本內容,還涉及到74hc573鎖存器,74hc02異或門,74hc138...

51微控制器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 1.供電電源 一般開發板上提供兩種供電方式,usb供電和專用電源供電。使用usb供電你只要用一根usb線將開發板usb電源介面與電腦的usb...