KeilC51使用詳解 (一)


第一節 系統概述

Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易 用。用過匯編語言后再使用C來開發,體會更加深刻。Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹Keil C51開發系統各部分功能和使用。

第二節 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中。  

第三節 Keil C51工具包的安裝

1. C51 for Dos

在Windows下直接運行軟件包中DOS/C51DOS.exe然后選擇安裝目錄即可。完畢后欲使系統 正常工作須進行以下操作(設C:/C51為安裝目錄):修改Autoexec.bat,加入path=C:/C51/BinSet C51LIB=C:/C51/LIBSet C51INC=C:/C51/INC然后運行Autoexec.bat

2. C51 for Windows的安裝及注意事項:

在Windows下運行軟件包中WIN/Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝於C:/C51目錄下)。然后將軟件包中crack目錄中的文件拷入C:/C51/Bin目錄下。

第四節 Keil C51工具包各部分功能及使用簡介

1. C51與A51

(1) C51

C51是C語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者C51 @ commandfile其中sourcefile為C源文件(.C)。大量的編譯控制指令完成C51編譯器的全部功能。包控C51輸出文件 C.LST,.OBJ,.I和.SRC文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而Commandfile為一個連接控制文件其內容 包括:.C源文件及各編譯控制指令,它沒有固定的名字,開發人員可根據自己的習慣指定,它適於用控制指令較多的場合。

(2) A51

A51是匯編語言編譯器,使用方法為:A51 sourcefile[編譯控制指令]或A51 @ commandfile其中sourcefile為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編 語言材料。Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。

2. L51和BL51

(1) L51

L51是Keil C51軟件包提供的連接/定位器,其功能是將編譯生成的OBJ文件與庫文件連接定位生成絕對目標文件(.ABS),其使用方法為:        L51   目標文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51   @Commandfile源程序的多個模塊分別經C51與A51編譯后生成多個OBJ文件,連接時,這些文件全列於目標文件列表中,作為輸入文件,如果還 需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接 定位時的所有控制功能。Commandfile為連接控制文件,其具體內容是包括了目標文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣 的格式,由於目標模塊庫文件大多不止1個,因而第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. DScope51,Tscope51及Monitor51

(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,0xffffdScope51 for Windows則直接用鼠標進入,然后用load裝入待調文件。

(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) Monitor 51

Monitor51是一個監控程序通過PC機的串口與目標板進行通信,Monitor操作需要MON51或dScope51 for Windows,后面部分將對Monitor51做較為詳細的介紹。

4. Ishell及uVision

(1) Ishell for Dos

這是一個for Dos的IDE,直接在命令行鍵入Ishell,則進入該環境,它使用簡單方便。其命令行與DOS命令行具有同樣的功能,對單模塊的Project直接由 菜單進行編譯連接,對多模塊的project。則通過批處理,BAT文件進行編譯連接,然后通過菜單控制由dScope51或tScope51對程序進行 調試,因為是for dos的,不做太詳細介紹。

(2) uVision for Windows

uVision for Windows是一個標准的Windows應用程序,它是C51的一個集成軟件開發平台,具有源代碼編輯、project管理、集成的make等功能,它的人機界面友好,操作方便,是開發者的首選,具體配置及使用見第五部分。

第二章 Keil C51軟件使用詳解

第一節 Keil C51編譯器的控制指令

C51編譯器的控制指令分為三類:源文件控制類,目標文件控制類及列表控制類。

1. 源文件控制類

NOEXTEND:C51源文件不允許使用ANSI C擴展功能。DEFINE(DF):定義預處理(在C51命令行)。

2. 目標文件(Object)控制類:

COMPACT LARGE SMALL 選編譯模式 DEBUG(DB) 包含調試信息,以供仿真器或dSCope51使用。 NOAMAKE(NOAM) 禁止AutoMake信息記錄 NOREGPARMS 禁止用寄存器傳遞參數 OBJECTEXTEND(OE) Object文件包含附加變量類型信息 OPTIMIZE(OT) 指定優化級別 REGFILE(RF) 指定一個寄存器使用的文件以供整體優化用 REGISTERBANK(RB) 指定一個供絕對寄存器訪問的寄存器區名 SRC 不生成目標文件只生成匯編源文件       其它控件不常用。

3. 列表文件(listing)控制類:

CODE(CD):向列表文件加入匯編列表 LISTINCLUDE(LC):顯示indude文件 SYMBOLS(SB):列表文件包括模塊內所有符號的列表 WARNINGLEVEL(WL):選擇“警告”級別

第二節 dScope51的使用

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) 高級語言顯示模式

單擊主菜單中的“View”,第一欄中的三條命令“Highlevel”、“Mixed”、“Assembly”分別對所裝入的程序按照“高級”、“混合級”及“匯編級”三種方式顯示,以方便調試使用。

(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) 單步或“Go”執行

“F8”單步執行,“F5”全速執行到斷點。或選主菜單中Trace單步執行CPU中的Go全速執行。

(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) “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) 關於.IOF文件

啟動DS51后必須裝入.IOF文件才能使CPU及Peripheral各項起作用,這個函數的使用是依據8051系列CPU的不同特點,裝入8051各CPU硬件設備模擬驅動文件,比如8031CPU就必須load DS51目錄下的8051.IOF。

2. dScope for Windows

dScope for windows具有dScope for dos的全部功能,此外,它還具有以下明顯的優點: (1) 標准的Windows界面,操作更容易更簡單;   (2) 常用操作多用對話框,而非Dos的行命令方式; (3) 窗口資源更加豐富:存儲器窗口、覆蓋率分析、運行狀態分析窗口,加強了調試功能;因為dScope for Windows功能強大,具體操作在第八章詳細介紹。

第三節 Monitor51及其使用

1. Monitor51對硬件的要求

   (1) 硬件系統為51系列CPU;    (2) 帶5K外部程序存儲器(從O地址開始),存放Monitor51程序;    (3) 256Bytes的外部數據存儲器以及5K的跟蹤緩沖區,此外,外部數據存儲器必須足夠容納所有應用程序代碼及數據,且所有外部數據存儲器必須為馮·諾伊 曼存儲器,即能一致訪問XDATA與Code空間。    (4) 一個定時器作為波特率發生器供串口使用;    (5) 6 Bytes的空余堆棧。

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. MON51的配置

    (1) MON51 for Dos的配置    運行install文件(在MON51目錄下),不同的參數可以配置不同的硬件環境。INSTALL Serialtype [xdstastart[codestart[bank][PROMCHECK]]],具體說明見MON51幫助文件或使用手冊。    (2) MON51 for Windows的配置    在啟用MON51.dll時,會使得系統自動檢查目標板連接,如配置不對,則彈出“Configuration”對話框,設置PC串口,波特率等,完畢單 擊“apply”有效。

4. 串口連接圖:

收發交叉互連,RTS、CTS直連,DSR、DTR直連,具體引腳排列參考串口資料。

5. MON51命令及使用

詳細的MON51命令可參閱幫助。

第四節 集成開發環境(IDE)的使用

1. Ishell for Dos的使用

進入Ishell之后看到兩個窗口:一個是文件窗口,一個是Dos命令行窗口,窗口上方是下拉式的命令菜單,其中的Files控制文件窗口的顯隱。使用Ishell,第一步就是配置系統,即要學習兩個文件的修改與創建:

(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) IShell.col文件

對IDE顏色設置,如不改動,可以缺省為主。

(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. 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處理,具體使用可參考后面的例子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM