You are on page 1of 6

Keil C51 開 發 系 統 基 本 知 識

1. 第 一 節 系 統 概 述
Keil C51 是美國 Keil Software 公司出品的 51 系列相容單片機 C 語言軟體發展系統,與彙編相比,C 語言在功能上、結構性、可讀性、可維護
性 上 有 明 顯 的 優 勢 , 因 而 易 學 易 用 。 用 過 組 合 語 言 後 再 使 用 C 來 開 發 , 體 會 更 加 深 刻 。
Keil C51 軟體提供豐富的庫函數和功能強大的集成開發調試工具,全 Windows 介面。另外重要的一點,只要看一下編譯後生成的彙編代碼,
就能體會到 Keil C51 生成的目標代碼效率非常之高,多數語句生成的彙編代碼很緊湊,容易理解。在開發大型軟體時更能體現高階語言的
優 勢 。
下 面 詳 細 介 紹 Keil C51 開 發 系 統 各 部 分 功 能 和 使 用 。
2. 第 二 節 Keil C51 單 片 機 軟 體 發 展 系 統 的 整 體 結 構
C51 工具包的整體結構,如圖(1)所示,其中 uVision 與 Ishell 分別是 C51 for Windows 和 for Dos 的集成開發環境(IDE),可以完成編輯、編
譯、連接、調試、仿真等整個開發流程。開發人員可用 IDE 本身或其他編輯器編輯 C 或彙編原始檔案。然後分別由 C51 及 A51 編譯器編譯生成
目標檔(.OBJ)。目標檔可由 LIB51 創建生成庫檔,也可以與庫檔一起經 L51 連接定位生成絕對目標檔(.ABS)。ABS 檔由 OH51 轉換成標準的
Hex 檔,以供調試器 dScope51 或 tScope51 使用進行源代碼級調試,也可由模擬器使用直接對目標板進行調試,也可以直接寫入程式存貯
器 如 EPROM 中 。

圖 (1) C51 工 具 包 整 體 結 構 圖

3. 第 三 節 Keil C51 工 具 包 的 安 裝
1. 1. C51 for Dos
在 Windows 下直接運行套裝軟體中 DOS\C51DOS.exe 然後選擇安裝目錄即可。完畢後欲使系統正常工作須進行以下操作(設 C:\C51 為安裝
目 錄 ) :
修 改 Autoexec.bat , 加 入
path=C:\C51\Bin
Set C51LIB=C:\C51\LIB
Set C51INC=C:\C51\INC
然 後 運 行 Autoexec.bat
2. 2. C51 for Windows 的 安 裝 及 注 意 事 項 :
在 Windows 下運行套裝軟體中 WIN\Setup.exe,最好選擇安裝目錄與 C51 for Dos 相同,這樣設置最簡單(設安裝於 C:\C51 目錄下)。然後將
套 裝 軟 體 中 crack 目 錄 中 的 檔 拷 入 C:\C51\Bin 目 錄 下 。
4. 第 四 節 Keil C51 工 具 包 各 部 分 功 能 及 使 用 簡 介
1. 1. C51 與 A51
1. (1) C51
C51 是 C 語 言 編 譯 器 , 其 使 用 方 法 為 :
C51 sourcefile[ 編 譯 控 制 指 令 ]
或 者
C51 @ commandfile
其中 sourcefile 為 C 原始檔案(.C)。大量的編譯控制指令完成 C51 編譯器的全部功能。包控 C51 輸出檔 C.LST,.OBJ,.I 和.SRC 文件的控制。
原 始 檔 案 (.C) 的 控 制 等 , 詳 見 第 五 部 分 的 具 體 介 紹 。
而 Commandfile 為一個連接控制檔其內容包括:.C 原始檔案及各編譯控制指令,它沒有固定的名字,開發人員可根據自己的習慣指定,
它 適 於 用 控 制 指 令 較 多 的 場 合 。
2. (2) A51
A51 是 組 合 語 言 編 譯 器 , 使 用 方 法 為 :
A51 sourcefile[ 編 譯 控 制 指 令 ]
或 A51 @ commandfile
其中 sourcefile 為 彙編 原始 檔案(.asm 或 .a51) ,而 編譯 控制指令的使用與其他彙編如 ASM 語言類似,可參考其他組合語言材料。
Commandfile 同 C51 中 的 Commandfile 類 似 , 它 使 A51 使 用 和 修 改 方 便 。
2. 2. L51 和 BL51
1. (1) L51
L51 是 Keil C51 套裝軟體提供的連接/定位器,其功能是將編譯生成的 OBJ 檔與庫檔連接定位生成絕對目標檔 (.ABS),其使用方法為:
L51 目 標 檔 列 表 [ 庫 檔 列 表 ] [to outputfile] [ 連 接 控 制 指 令 ]
或 L51 @Commandfile
根源程式的多個模組分別經 C51 與 A51 編譯後生成多個 OBJ 檔,連接時,這些檔全列於目標檔列表中,作為輸入檔,如果還需與庫檔
(.LiB)相連接,則庫檔也必須列在其後。outputfile 為輸檔案名,缺少時為第一模組名,尾碼為.ABS。連接控制指令提供了連接定位時的所有
控制功能。Commandfile 為連接控制檔,其具體內容是包括了目標檔列表,庫檔列表及輸出檔、連接控制命令,以取代第一種繁瑣的格式,
由 於 目的 模組 庫檔 大多 不止 1 個 ,因 而第 2 種 方 法 較 多 見 , 這 個 檔 案 名 字 也 可 由 使 用 者 隨 意 指 定 。
2. (2) Bl51
BL51 也 是 C51 套 裝 軟 體 的 連 接 / 定 位 器 , 其 具 有 L51 的 所 有 功 能 , 此 外 它 還 具 有 以 下 3 點 特 別 之 處 :
a. 可 以 連 接 定 位 大 於 64kBytes 的 程 式 。
b. 具 有 代 碼 域 及 域 切 換 功 能 (CodeBanking & Bank Switching)
c. 可 用 於 RTX51 作 業 系 統
RTX51 是一個即時多工作業系統,它改變了傳統的編程模式,甚至不必用 main( )函數,單片機系統軟體向 RTOS 發展是一種趨勢,這種
趨勢對於 186 和 386 及 68K 系列 CPU 更為明顯和必須,對 8051 因 CPU 較為簡單,程式結構等都不太複雜,RTX51 作用顯得不太突出,
其專業版軟體 PK51 套裝軟體甚至不包括 RTX51Full,而只有一個 RTX51TINY 版本的 RTOS。RTX51 TINY 適用於無外部 RAM 的單片機系
統 , 因 而 可 用 面 很 窄 , 在 本 文 中 不 作 介 紹 。 Bank switching 技 術 因 使 用 很 少 也 不 作 介 紹 。
3. 3. DScope51 , Tscope51 及 Monitor51
1. (1) dScope51
dScope51 是一個源級調試器和模擬器,它可以調試由 C51 編譯器、A51 彙編器、PL/M-51 編譯器及 ASM-51 彙編器產生的程式。它不需目
標板(for windows 也可通過 mon51 接目標板),只能進行軟體類比,但其功能強大,可類比 CPU 及其週邊器件,如內部串口,外部 I/O
及 計 時 器 等 , 能 對 嵌 入 式 軟 體 功 能 進 行 有 效 測 試 。
其 使 用 方 法 為 :
DS51[debugfile][INIT(initfile)]
其 中 debugfile 是 一 個 Hex 格 式 的 8051 檔 , 即 待 調 試 的 檔 其 為 可 選 的 , 可 在 進 入 dScope51 後 用 load 命 令 裝 入 。
Initfile 為一個初使化檔,它在啟動 dScope51 後,在 debugfile 裝入前裝入,裝有一些 dScope 的初使化參數及常用調試函數等。下面是一個
dScope.ini 檔 (for dos) 的 內 容 :
Load ..\..\ds51\8051.iof
Map 0,0xffff
dScope51 for Windows 則 直 接 用 滑 鼠 進 入 , 然 後 用 load 裝 入 待 調 檔 。
2. (2) tScope51
與 dScope51 不同的是 Scope51 必須帶目標板,目前它可以通過兩種方式訪問目標板。(1) 通過 EMul51 線上模擬器,tScope51 為該模擬器準
備了一個動態連接檔 EMUL51.IOT,但該方法必須配合該模擬器。(2) 通過 Monitov51 監控程序,這種方法是可行的,tScope51 為訪問
Monitor51 專 門 帶 有 MON51.IOT 連 接 程 式 , 使 用 時 可 通 過 串 口 及 監 控 程 序 來 調 試 目 標 板 。
其 使 用 方 法 為 :
TS51[INIT(file_name.ini)]
其 中 file_name.ini 為 一 個 初 使 化 檔 。
進 入 TS51 後 , 必 須 裝 入 IOT 檔 , 可 用 的 有 MON51.IOT 及 EMUL51.IOT 兩 種 , 如 裝 入 MON51.IOT :
Load.C:\C51\TS51\MON51.IOT CPUTYPE(80517)
可 惜 的 是 tScope51 只 有 for Dos 的 版 本 。
3. (3) Monitor 51
Monitor51 是 一個 監控 程序 通過 PC 機 的串 口與 目標 板進行通信,Monitor 操作需要 MON51 或 dScope51 for Windows,後面部分將對
Monitor51 做 較 為 詳 細 的 介 紹 。
4. 4. Ishell 及 uVision
1. (1) Ishell for Dos
這是一個 for Dos 的 IDE,直接在命令行鍵入 Ishell,則進入該環境,它使用簡單方便。其命令行與 DOS 命令行具有同樣的功能,對單模組
的 Project 直接由功能表進行編譯連接,對多模組的 project。則通過批次處理,BAT 檔進行編譯連接,然後通過功能表控制由 dScope51 或
tScope51 對 程 式 進 行 調 試 , 因 為 是 for dos 的 , 不 做 太 詳 細 介 紹 。
2. (2) uVision for Windows
uVision for Windows 是一個標準的 Windows 應用程式,它是 C51 的一個集成軟體發展平臺,具有源代碼編輯、project 管理、集成的 make 等
功 能 , 它 的 人 機 界 面 友 好 , 操 作 方 便 , 是 開 發 者 的 首 選 , 具 體 配 置 及 使 用 見 第 五 部 分 。
2. 第 二 章 Keil C51 軟 體 使 用 詳 解
1. 第 一 節 Keil C51 編 譯 器 的 控 制 指 令
C51 編 譯 器 的 控 制 指 令 分 為 三 類 : 原 始 檔 案 控 制 類 , 目 標 檔 控 制 類 及 列 表 控 制 類 。
1. 1. 原 始 檔 案 控 制 類
NOEXTEND : C51 原 始 檔 案 不 允 許 使 用 ANSI C 擴 展 功 能 。
DEFINE(DF) : 定 義 預 處 理 ( 在 C51 命 令 行 ) 。
2. 2. 目 標 檔 (Object) 控 制 類 :
COMPACT LARGE SMALL 選 編 譯 模 式
DEBUG(DB) 包 含 調 試 資 訊 , 以 供 模 擬 器 或 dSCope51 使 用 。
NOAMAKE(NOAM) 禁 止 AutoMake 資 訊 記 錄
NOREGPARMS 禁 止 用 寄 存 器 傳 遞 參 數
OBJECTEXTEND(OE) Object 檔 包 含 附 加 變 數 類 型 資 訊
OPTIMIZE(OT) 指 定 優 化 級 別
REGFILE(RF) 指 定 一 個 寄 存 器 使 用 的 檔 以 供 整 體 優 化 用
REGISTERBANK(RB) 指 定 一 個 供 絕 對 寄 存 器 訪 問 的 寄 存 器 區 名
SRC 不 生 成 目 標 檔 只 生 成 彙 編 原 始 檔 案
  其 他 控 制 項 不 常 用 。
3. 3. 列 表 文 件 (listing) 控 制 類 :
CODE(CD) : 向 列 表 文 件 加 入 彙 編 列 表
LISTINCLUDE(LC) : 顯 示 indude 檔
SYMBOLS(SB) : 列 表 檔 包 括 模 組 內 所 有 符 號 的 列 表
WARNINGLEVEL(WL) : 選 擇 “ 警 告 ” 級 別
2. 第 二 節 dScope51 的 使 用
1. 1. dScope51 for Dos
總 的 來 說 dScope51 具 有 以 下 特 性 :
l 高 階 語 言 顯 示 模 式
l 集 成 硬 體 環 境 類 比
l 單 步 或 “ GO” 執 行 模 式
l 記 憶 體 、 寄 存 器 及 變 數 訪 問
l Watch 運 算 式 之 值
l 函 數 與 信 號 功 能
下面,具體說明在進入 dScope51 for Dos 之後,如何實現上述功能,dScope51 採用下拉功能表格式和視窗顯示控制,共有 language、serial、
exe 、 register 四 個 視 窗 , 其 中 exe 為 命 令 行 視 窗 , language 為 程 式 視 窗 , serial 為 串 口 窗 , register 為 寄 存 器 窗 。
1. (1) 高 階 語 言 顯 示 模 式
單擊主功能表中的“View”,第一欄中的三條命令“Highlevel”、“Mixed”、“Assembly”分別對所裝入的程式按照“高級”、“混合級”及
“ 彙 編 級 ” 三 種 方 式 顯 示 , 以 方 便 調 試 使 用 。
2. (2) 集 成 硬 體 環 境 類 比 顯 示
主 功 能 表 中 “ Peripheral” 各 條 能 顯 示 類 比 硬 體 環 境 的 狀 態 , 其 中 :
i/o Port : 顯 示 各 I/O 口 之 值 , 對 8031 而 言 SFR 中 的 P1 、 P2 、 P3 、 P0 與 引 腳 之 值 分 別 列 出 :
Interrupt : 顯 示 5 個 中 斷 源 的 入 口 模 式 是 否 允 許 , 優 先 順 序 等 中 斷 狀 態 。
Timer : 顯 示 各 定 時 / 計 數 器 的 模 式 , 初 始 值 狀 態 等 。
int Message : 中 斷 資 訊 允 許 , 如 為 允 許 (“>>” 出 現 ) , 則 當 中 斷 申 請 時 , 顯 示 中 斷 源 資 訊 。 比 如 當 中 斷 發 生 時 會 顯 示 :
“interrupt Timer 0 occured” 等
A/D converter :
  顯 示 A/D 轉 換 器 狀 態 無 時 , 則 提 示 “ 無 ” 。
Serial : 串 口 資 訊 顯 示 , 包 括 串 口 模 式 、 波 特 產 等
Other : 其 他 器 件 , 如 為 8031 則 顯 示 “ 無 ”
3. (3) 單 步 或 “ Go” 執 行
“F8” 單 步 執 行 , “ F5” 全 速 執 行 到 中 斷 點 。 或 選 主 功 能 表 中 Trace 單 步 執 行 CPU 中 的 Go 全 速 執 行 。
4. (4) 記 憶 體 寄 存 器 及 變 數 訪 問
外 部 記 憶 體 管 理 MAP 功 能 表 : 設 置 (set) 、 取 消 (reset) 、 顯 示 (Display) 處 理 可 用 存 儲 空 間 。
修 改 Code 代 碼 : ASM 命 令
記 憶 體 顯 示 命 令 : D 類 別 為 (X 、 D 、 I 、 B 、 C)
修 改 記 憶 體 命 令 : E 有 以 下 幾 種 命 令 EB 、 EC 、 EI 、 EL 、 EF 、 EP
複雜資料類型顯示:Object 命令;用以顯示結構或陣列的內容。欲使此命令有效, C51 編譯器必須有 DB 及 OBJECTEXTEND 兩條。
反 彙 編 命 令 : U
5. (5) “Watch” 運 算 式 之 值
在 View 菜 單 的 “ Watch” 一 欄 中 有 四 項 : 其 中 包 括 定 義 Watch Point(Define) 、 刪 除 Watch Point(remove,kill all) , 及 自 動 更 新 選 項 。
也 可 用 WS 、 WK 等 命 令 代 替 , 下 面 具 體 看 “ 運 算 式 ” 類 型 :
dScope51 一次最多可設 16 個 WtchPoint 運算式,顯示於 Watch Window 之中,運算式可以是簡單變數,也可是複雜資料類型如結構、陣列
和 指 向 結 構 的 指 標 等 , 例 如 :
>WS *ptime
>WS ptime→hour
>WS some_record[o] , analog 等 等
6. (6) 關 於 .IOF 文 件
啟動 DS51 後必須裝入.IOF 檔才能使 CPU 及 Peripheral 各項起作用,這個函數的使用是依據 8051 系列 CPU 的不同特點,裝入 8051 各
CPU 硬 體 設 備 類 比 驅 動 檔 , 比 如 8031CPU 就 必 須 load DS51 目 錄 下 的 8051.IOF 。
2. 2. dScope for Windows
dScope for windows 具 有 dScope for dos 的 全 部 功 能 , 此 外 , 它 還 具 有 以 下 明 顯 的 優 點 :
(1) 標 準 的 Windows 介 面 , 操 作 更 容 易 更 簡 單 ;
(2) 常 用 操 作 多 用 對 話 方 塊 , 而 非 Dos 的 行 命 令 方 式 ;
(3) 視 窗 資 源 更 加 豐 富 : 記 憶 體 視 窗 、 覆 蓋 率 分 析 、 運 行 狀 態 分 析 視 窗 , 加 強 了 調 試 功 能 ;
因 為 dScope for Windows 功 能 強 大 , 具 體 操 作 在 第 八 章 詳 細 介 紹 。
3. 第 三 節 Monitor51 及 其 使 用
1. 1. Monitor51 對 硬 體 的 要 求
(1) 硬 體 系 統 為 51 系 列 CPU ;
(2) 帶 5K 外 部 程 式 記 憶 體 ( 從 O 位 址 開 始 ) , 存 放 Monitor51 程 式 ;
(3) 256Bytes 的外部資料記憶體以及 5K 的跟蹤緩衝區,此外,外部資料記憶體必須足夠容納所有應用程式碼及資料,且所有外部資料記
憶 體 必 須 為 馮 · 諾 伊 曼 記 憶 體 , 即 能 一 致 訪 問 XDATA 與 Code 空 間 。
(4) 一 個 計 時 器 作 為 串 列 傳 輸 速 率 發 生 器 供 串 口 使 用 ;
(5) 6 Bytes 的 空 餘 堆 疊 。
2. 2. Mon51 的 使 用
Mon51 的 使 用 途 徑 有 三 種 方 式 :
(1) Dos 行 命 令 方 式
即 先 用 install 對 MON51 進 行 配 置 , 然 後 用 MON51 進 入 Monitor 狀 態 , 啟 用 各 種 命 令 對 Monitor51 進 行 調 試 。
(2) tScope51 方 式
啟 動 tScope51 裝 入 TS51 目 錄 下 的 MON51.IOT 驅 動 檔 , 與 目 標 板 通 信 。
(3) dScope51 for Windows 方 式
在 選 CPU 驅 動 文 件 時 , 選 “ MON51.dll” , 則 檢 查 目 標 板 並 進 入 MON51 狀 態 。
3. 3. MON51 的 配 置
(1) MON51 for Dos 的 配 置
運行 install 檔(在 MON51 目錄下),不同的參數可以配置不同的硬體環境。INSTALL Serialtype [xdstastart[codestart[bank][PROMCHECK]]],
具 體 說 明 見 MON51 幫 助 文 件 或 使 用 手 冊 。
(2) MON51 for Windows 的 配 置
在啟用 MON51.dll 時,會使得系統自動檢查目標板連接,如配置不對,則彈出“Configuration”對話方塊,設置 PC 串口,串列傳輸速率等,
完 畢 單 擊 “ apply” 有 效 。
4. 4. 串 口 連 接 圖 :
收 發 交 叉 互 連 , RTS 、 CTS 直 連 , DSR 、 DTR 直 連 , 具 體 引 腳 排 列 參 考 串 口 資 料 。
5. 5. MON51 命 令 及 使 用
詳 細 的 MON51 命 令 可 參 閱 幫 助 。
4. 第 四 節 集 成 開 發 環 境 (IDE) 的 使 用
1. 1. Ishell for Dos 的 使 用
進入 Ishell 之後看到兩個視窗:一個是檔視窗,一個是 Dos 命令行視窗,視窗上方是下拉式的命令功能表,其中的 Files 控制檔視窗的顯
隱 。
使 用 Ishell , 第 一 步 就 是 配 置 系 統 , 即 要 學 習 兩 個 檔 的 修 改 與 創 建 :
1. (1) Ishell.CFG 文 件
每一個 project 都有一個 Ishell.CFG,其中存放有“Option 功能表和 Setup 功能表下的部分資訊;Bell enabled、Monochrome enabled、Editor
Selected、CRT Lines、target enviroment、name of user edit、Automatic load for configuration enabled、file window enabled、file specification for file
window 、 translate command line controls 、 project name 等 。
對 每 個 project 都 必 須 設 置 以 上 資 訊 , 然 後 存 檔 “ setup” 的 的 “ save” , 這 樣 才 可 正 式 開 始 下 面 工 作 。
2. (2) IShell.col 文 件
對 IDE 顏 色 設 置 , 如 不 改 動 , 可 以 缺 省 為 主 。
3. (3) CDF 文 件
該檔位於 BIN 目錄下,每一檔定義一組外部函數工具包,即定義外部環境如 8051.CDF,USER.CDF 等,開發者可修改 CDF 檔,供自己使
用,至於 CDF 檔內容可查看一下 8051.CDF 即可知道。注意.CDF 檔是 Ishell 系統的核心所在,不同的 CDF 檔可使本 IDE 適用於不同的編
譯 、 連 接 系 統 , 即 本 IDE 並 不 僅 適 於 C51 。
下 面 談 一 談 Automake 工 具 :
C51 的 Automake 是一個 project 管理器,在 8051 工具包中以 OBJECT 檔形式保留了一個 project 的資訊,AutoMake 用這些資訊來進行
project 管 理 , 一 旦 手 工 建 立 一 個 project , Automake 可 生 成 一 個 新 的 OBJECT , AutoMake 利 用 此 檔 來 編 譯 那 些 修 改 過 的 檔 。
Automake 支 持 C51 、 A51 、 L51/BL51 、 C166 、 A166 、 L166 等 編 譯 連 接 器 。 點 中 主 功 能 表 中 的 Automake 即 運 行 本 工 具 。
Ishell for Dos 使 用 比 較 繁 瑣 , 推 薦 使 用 uVision for windows 。
2. 2. uVision for windows 的 使 用
uVision 是 一 個 標 準 的 windows 應 用 程 式 , 其 編 譯 功 能 、 檔 處 理 功 能 、 project 處 理 功 能 、 視 窗 功 能 以 及 工 具 引 用 功 能 ( 如
A51 、 C51 、 PL/M41 、 BL51 dScope 等 ) 等 都 較 Ishell for Dos 要 強 得 多 。
uVision 採 用 BL51 作 連 接 器 , 因 為 BL51 相 容 L51 , 所 以 一 切 能 在 Dos 下 工 作 的 project 都 可 以 到 uVision 中 進 行 連 接 調 試 。
uVision 採用 dScope for windows 作調試器,該調試器支援 MON51 及系統類比兩種方式,功能較 for DOS 要強大好用,調試功能強大。
注 意 :
(1) Option 功能表下的各項要會使用,其中 A51、C51、PL/M51、BL51 定義各檔所使用的編譯、連接控制指令,dScope 定義一個 dScope 初始
化 檔 。 Make 則 是 定 義 一 個 make 檔 。
(2) 進 入 調 試 是 在 RUN 菜 單 下 運 行 dScope 。
(3) project 中 包 括 新 建 、 打 開 、 修 改 、 更 新 、 編 譯 、 連 接 等 poject 處 理 , 具 體 使 用 可 參 考 後 面 的 例 子 。
3. 第 三 章 Keil C51 vs 標 準 C
深入理解並應用 C51 對標準 ANSIC 的擴展是學習 C51 的關鍵之一。因為大多數擴展功能都是直接針對 8051 系列 CPU 硬體的。大致有以下
8 類 :
l 8051 存 儲 類 型 及 存 儲 區 域
l 存 儲 模 式
l 記 憶 體 類 型 聲 明
l 變 數 類 型 聲 明
l 位 元 變 數 與 位 元 定 址
l 特 殊 功 能 寄 存 器 (SFR)
l C51 指 針
l 函 數 屬 性
具 體 說 明 如 下 (8031 為 缺 省 CPU) 。
1. 第 一 節 Keil C51 擴 展 關 鍵 字
C51 V4.0 版 本 有 以 下 擴 展 關 鍵 字 ( 共 19 個 ) :
_at_   idata sfr16 alien interrupt small
bdata large _task_ Code bit pdata
using reentrant xdata compact sbit data sfr
2. 第 二 節 記 憶 體 區 域 (Memory Areas) :
1. 1. Pragram Area :
由 Code 說 明 可 有 多 達 64kBytes 的 程 式 記 憶 體
2. 2. Internal Data Memory:
內 部 資 料 記 憶 體 可 用 以 下 關 鍵 字 說 明 :
data : 直 接 定 址 區 , 為 內 部 RAM 的 低 128 位 元 組 00H ~ 7FH
idata : 間 接 定 址 區 , 包 括 整 個 內 部 RAM 區 00H ~ FFH
bdata : 可 位 定 址 區 ,   20H ~ 2FH
3. 3. External Data Memory
外 部 RAM 視 使 用 情 況 可 由 以 下 關 鍵 字 標 識 :
xdata : 可 指 定 多 達 64KB 的 外 部 直 接 定 址 區 , 位 址 範 圍 0000H ~ 0FFFFH
pdata : 能 訪 問 1 頁 (25bBytes) 的 外 部 RAM , 主 要 用 於 緊 湊 模 式 (Compact Model) 。
4. 4. Speciac Function Register Memory
8051 提供 128Bytes 的 SFR 定址區,這區域可位元定址、位元組定址或字定址,用以控制計時器、計數器、串口、I/O 及其它部件,可由以下
幾 種 關 鍵 字 說 明 :
sfr : 位 元 組 定 址 比 如 sfr P0=0x80; 為 PO 口 位 址 為 80H , “ = ” 後 H ~ FFH 之 間 的 常 數 。
sfr16 : 字 定 址 , 如 sfr16 T2=0xcc; 指 定 Timer2 口 地 址 T2L=0xcc T2H=0xCD
sbit : 位 定 址 , 如 sbit EA=0xAF; 指 定 第 0xAF 位 為 EA , 即 中 斷 允 許
還 可 以 有 如 下 定 義 方 法 :
sbit 0V=PSW^2 ; ( 定 義 0V 為 PSW 的 第 2 位 )
sbit 0V = 0XDO^2 ; ( 同 上 )
或 bit 0V-=0xD2(同上)。

You might also like