KeilμVision集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
KeilμVision集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
KeilμVision集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
KeilμVision集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
KeilμVision集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、附錄A Keil Vision4 集成開發(fā)環(huán)境與C語(yǔ)言程序設(shè)計(jì)Keil公司是一家業(yè)界領(lǐng)先的微控制器(MCU)軟件開發(fā)工具的獨(dú)立供應(yīng)商。Keil公司由兩家私人公司聯(lián)合運(yùn)營(yíng),分別是德國(guó)慕尼黑的Keil Elektronik GmbH和美國(guó)德克薩斯的Keil Software Inc。Keil公司制造和銷售種類廣泛的開發(fā)工具,包括ANSI C編譯器、宏匯編程序、調(diào)試器、連接器、庫(kù)管理器、固件和實(shí)時(shí)操作系統(tǒng)核心(real-time kernel)。有超過10萬(wàn)名微控制器開發(fā)人員在使用這種得到業(yè)界認(rèn)可的解決方案。其Keil C51編譯器自1988年引入市場(chǎng)以來(lái)成為事實(shí)上的行業(yè)標(biāo)準(zhǔn),并支持超過500種80

2、C51變種。Keil公司在2007年被ARM公司收購(gòu)。其兩家公司分別更名為ARM Germany GmbH和ARM Inc和。2009年2月,Keil公司發(fā)布了Keil Vision4,Keil Vision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺(tái)監(jiān)視器,提供可在虛擬接口上隨意放置窗口的完整控制能力。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口,提供一個(gè)整潔,高效的環(huán)境來(lái)開發(fā)應(yīng)用程序。新版本支持更多最新的80C51兼容芯片及ARM芯片,還添加了一些其他新功能,如系統(tǒng)查看器(System Viewer)窗口、多項(xiàng)目工作空間(Multi-Project Workspace)等。

3、附A.1 Keil Vision4 集成開發(fā)環(huán)境附A.1.1簡(jiǎn)介Keil Vision4集成開發(fā)環(huán)境(Integrated Development Environment,IDE)是一個(gè)基于Windows的開發(fā)平臺(tái),它包含高效的源代碼編輯器、項(xiàng)目(Project)管理器和程序生成(MAKE)工具。Keil Vision4支持所有的80C51嵌入式應(yīng)用工具,它包括C/C+編譯器宏匯編器、連接/定位器和一個(gè)HEX文件生成器。Keil Vision4通過以下特性加速M(fèi)CU嵌入式應(yīng)用系統(tǒng)的開發(fā)過程: 全功能的源代碼編輯器; 器件庫(kù)用來(lái)配置開發(fā)工具設(shè)置; 項(xiàng)目管理器用來(lái)創(chuàng)建和維護(hù)項(xiàng)目; 集成的MAKE工

4、具可以匯編、編譯和連接用戶的嵌入式應(yīng)用; 所有開發(fā)工具的設(shè)置都是以對(duì)話框的形式出現(xiàn)的; 具有真正的源代碼級(jí)的對(duì)CPU和外圍器件的調(diào)試器; 高級(jí)GDI接口用來(lái)在目標(biāo)硬件上進(jìn)行軟件調(diào)試以及和Monitor-51進(jìn)行通信; 與開發(fā)工具手冊(cè)、器件數(shù)據(jù)手冊(cè)和用戶指南有直接的鏈接。1.C51 編譯器和A51匯編器源代碼由Vision4創(chuàng)建,并被C51編譯成A51匯編。編譯器和匯編器從源代碼生成可重定位的目標(biāo)文件。Keil C51編譯器完全遵照ANSIC語(yǔ)言標(biāo)準(zhǔn),支持C語(yǔ)言的所有標(biāo)準(zhǔn)特性。另外,直接支持80C51結(jié)構(gòu)的幾個(gè)特性被添加里面。Keil A51宏匯編器支持80C51及其派生系列的全部指令集。2.L

5、IB51庫(kù)管理器LIB51庫(kù)管理器允許從由編譯器或匯編器生成的目標(biāo)文件創(chuàng)建目標(biāo)庫(kù)。庫(kù)是一種被特別地組織過并在以后可以被連接重用的對(duì)象模塊。當(dāng)連接器處理一個(gè)庫(kù)時(shí),僅僅那些被使用的目標(biāo)模塊才被真正使用。3.BL51連接器/定位器BL51連接器/定位器利用從庫(kù)中提取的目標(biāo)模塊和由編譯器或匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址的目標(biāo)模塊。一個(gè)絕對(duì)地址目標(biāo)模塊或文件包含不可重定位的代碼和數(shù)據(jù)。所有的代碼和數(shù)據(jù)被安置在固定的存儲(chǔ)器單元中。此絕對(duì)地址目標(biāo)文件可以用來(lái):寫入EPROM或其他存儲(chǔ)器件。通過Vision4調(diào)試器來(lái)模擬和調(diào)試。通過仿真器來(lái)測(cè)試程序。4.OH51目標(biāo)文件轉(zhuǎn)換器OH51目標(biāo)文件轉(zhuǎn)換器可以把

6、前面編譯連接好的目標(biāo)文件轉(zhuǎn)換成能寫入EPROM中的HEX文件。5. Vision4調(diào)試器Vision4源代碼級(jí)調(diào)試器是一個(gè)理想的快速、可靠的程序調(diào)試器。此調(diào)試器包含一個(gè)高速模擬器,能夠模擬整個(gè)8051系統(tǒng),包括片上外圍器件和外部硬件。當(dāng)從器件庫(kù)中選擇器件時(shí),這個(gè)器件的特性將自動(dòng)配置。Vision4調(diào)試器為在實(shí)際目標(biāo)板上測(cè)試程序提供了以下2種方法:安裝MON51目標(biāo)監(jiān)控器到目標(biāo)系統(tǒng)并且通過Monitor-51接口下載程序;利用高級(jí)的GDI(AGDI)接口,把Vision4調(diào)試器綁定到目標(biāo)系統(tǒng)。6.Monitor-51Vision4調(diào)試器支持用Monitor-51進(jìn)行目標(biāo)板調(diào)試。此監(jiān)控程序駐留在目

7、標(biāo)板的存儲(chǔ)器里,它利用串口和Vision4調(diào)試器進(jìn)行通信。利用Monitor-51,Vision4調(diào)試器可以對(duì)目標(biāo)硬件實(shí)行源代碼級(jí)的調(diào)試。7.RTX-51實(shí)時(shí)操作系統(tǒng)RTX-51實(shí)時(shí)操作系統(tǒng)是一個(gè)針對(duì)8051系統(tǒng)的多任務(wù)核。RTX-51實(shí)時(shí)內(nèi)核從本質(zhì)上簡(jiǎn)化了對(duì)實(shí)時(shí)事件反應(yīng)速度要求高的復(fù)雜應(yīng)用系統(tǒng)的設(shè)計(jì)、編程和調(diào)試。RTX-51實(shí)時(shí)內(nèi)核是完全集成到C51編譯器中的,從而方便使用。任務(wù)描述表和操作系統(tǒng)的連接由BL51連接器/定位器自動(dòng)控制。附A.1.2安裝了解了Keil Vision4的一些基本概況后,下面開始在計(jì)算機(jī)上搭建MCU的集成開發(fā)環(huán)境。操作步驟如下:首先準(zhǔn)備Keil Vision4安裝源

8、文件,雙擊Vision4的Setup安裝文件,彈出Keil Vision4安裝的歡迎界面,如圖A-1所示。圖A-1 Keil Vision4歡迎界面單擊“Next”按鈕,彈出“License Agreement”對(duì)話框,如圖A-2所示。這里顯示了一些用戶安裝的協(xié)議和許可的要求,選擇“I agree to all the terms of the preceding License Agreement”即可,否則無(wú)法進(jìn)入下一步。圖A-2 “License Agreement”對(duì)話框單擊“Next”按鈕,彈出“Folder Selection”對(duì)話框,如圖A-3所示。系統(tǒng)默認(rèn)安裝在“C:Keil”

9、文件夾下。在這里,單擊“Browse”按鈕,可以選擇安裝的目錄。圖A-3 “Folder Selection”對(duì)話框單擊“Next”按鈕,彈出”Customer Information”對(duì)話框,如圖A-4所示。此時(shí),用戶需要輸入用戶名、公司名稱和E-mail,缺一不可。圖A-4 用戶信息輸入單擊”Next”按鈕,下面便開始自動(dòng)安裝。Keil Vision4安裝完成后,彈出安裝完成對(duì)話框,如圖A-5所示。這里的幾個(gè)選項(xiàng)的含義如下。圖A-5 完成安裝Show Release Notes:顯示安裝的版本注釋信息。Add Example projects to the recently used pr

10、oject list:添加一個(gè)示例程序到當(dāng)前項(xiàng)目列表中。Retain currentVision configuration:保持當(dāng)前的設(shè)置(如果是第一次安裝,則不存在這個(gè)選項(xiàng))。最后,單擊"Finish"按鈕,便可以結(jié)束Keil Vision4集成開發(fā)環(huán)境的安裝。需要注意的是,剛剛安裝完的版本是試用版(Evaluation Version),代碼長(zhǎng)度有2KB限制。如果代碼長(zhǎng)度超過2KB,可與Keil公司()聯(lián)系,購(gòu)買LIC(License ID Code)。附A.1.3 Keil Vision4集成開發(fā)環(huán)境界面安裝完成后,會(huì)在桌面上出現(xiàn)Keil Vision4程序的圖標(biāo),

11、并在“開始”程序里增加“Keil Vision4”程序項(xiàng)。從“開始”程序里選擇“Keil Vision4”程序項(xiàng)或者直接雙擊桌面上的Keil Vision4程序圖標(biāo),即可啟動(dòng)Keil Vision4。啟動(dòng)Keil Vision4后,如果是第一次運(yùn)行,則打開工程項(xiàng)目“Hello”,如圖A-6所示。圖A-6 Keil Vision4集成開發(fā)環(huán)境界面這里可以看到,Keil Vision4集成開發(fā)環(huán)境具有典型的Windows界面風(fēng)格。整個(gè)編程界面主要包括菜單欄、工具欄、項(xiàng)目管理區(qū)、源代碼工作區(qū)和輸出信息窗口。另外,還有一些功能窗口將在后面逐步介紹。下面我們將帶領(lǐng)讀者逐一認(rèn)識(shí)Keil Vision4集成

12、開發(fā)環(huán)境的主要組成部分。附A.1.4 Keil Vision4菜單命令Keil Vision4的菜單欄提供了項(xiàng)目操作、編輯操作、編譯調(diào)試及幫助等各種常用操作。所有的操作基本上都可以通過菜單命令來(lái)實(shí)現(xiàn)。為了快速執(zhí)行Keil Vision4的許多功能,有些菜單命令在工具欄上還具有工具條。為了更快速執(zhí)行一些功能,Keil Vision4提供了比工具欄上的工具條更為快捷的操作,即快捷鍵。在Keil Vision4集成開發(fā)環(huán)境中不僅提供了常用功能的默認(rèn)快捷鍵,同時(shí)用戶也可以根據(jù)自己的需要自定義快捷鍵。下面就菜單命令、工具條、快捷鍵分別進(jìn)行介紹。1File菜單File菜單和標(biāo)準(zhǔn)的Windows軟件的Fil

13、e菜單類似,提供了項(xiàng)目和文件的操作功能。File菜單各個(gè)命令的功能如表A-1所示。表A-1 File菜單菜單命令工具條快捷鍵功能說(shuō)明NewCtrl+N創(chuàng)建一個(gè)新的空白文件OpenCtrl+O打開一個(gè)已存在的文件Close關(guān)閉當(dāng)前打開的文件SaveCtrl+S保存當(dāng)前打開的文件Save as當(dāng)前文件另存為Save all保存所有打開的文件Device Database打開器件庫(kù)License Management產(chǎn)品注冊(cè)管理Print Setup設(shè)置打印機(jī)PrintCtrl+P打印當(dāng)前文件Print Preview打印預(yù)覽1 . 10列出最近打開的源文件或文本文件Exit退出KeilVision

14、42Edit菜單Edit菜單提供了常用的代碼編輯操作命令。Edit菜單各個(gè)命令的功能如表A-2所示。表A-2 Edit菜單菜單命令工具條快捷鍵功能說(shuō)明UndoCtrl+Z取消上次操作RedoCtrl+Y重復(fù)上次操作CutCtrl+X剪切選定的內(nèi)容CopyCtrl+C復(fù)制選定的內(nèi)容PasteCtrl+V粘貼已復(fù)制的內(nèi)容Navigate BackwardsCtrl+Shift+-光標(biāo)移動(dòng)到使用Find或go to line命令的前一行Navigate ForwardsCtr+-光標(biāo)移動(dòng)到使用Find或go to line命令的后一行Insert/Remove BookmarkCtrl+F2設(shè)置/取

15、消當(dāng)前行的標(biāo)簽Go to Next BookmarkF2光標(biāo)移動(dòng)到下一個(gè)標(biāo)簽Go to Previous BookmarkShift+F2光標(biāo)移動(dòng)到上一個(gè)標(biāo)簽Clear All BookmarksCtrl+Shift+F2清除當(dāng)前文件的所有標(biāo)簽FindCtrl+F在當(dāng)前文件中查找ReplaceCtrl+H替換Find in FilesCtrl+Shift+F 在多個(gè)文件中查找Incremental FindCtrl+I漸進(jìn)式尋找Outlining源代碼概要顯示模式Advanced各種高級(jí)編輯命令Configuration顏色、字體等高級(jí)配置3View菜單View菜單提供了在源代碼編輯和仿真調(diào)試

16、過程中,各個(gè)窗口和工具欄的顯示和隱藏命令。View菜單各個(gè)命令的功能如表A-3所示。表A-3 View菜單菜單命令工具條功能說(shuō)明Status Bar顯示/隱藏狀態(tài)條Toolbars顯示/隱藏工具欄Project Window顯示/隱藏項(xiàng)目管理窗口Books Window顯示/隱藏參考書窗口Functions Window顯示/隱藏函數(shù)窗口Templates Window顯示/隱藏模板窗口Source Browser Window顯示/隱藏資源瀏覽器窗口Build Output Window顯示/隱藏輸出信息窗口Find in Files Window顯示/隱藏在所有文件中查找文本窗口Full

17、Screen顯示/隱藏全屏顯示窗口調(diào)試模式下的菜單命令Command Window顯示/隱藏命令行窗口Disassembly Window顯示/隱藏反匯編窗口Symbols Window顯示/隱藏字符變量窗口Registers Window顯示/隱藏寄存器窗口Call Stack Window顯示/隱藏堆棧窗口Watch Windows顯示/隱藏變量子菜單觀察窗口Memory Windows顯示/隱藏存儲(chǔ)器子菜單窗口Serial Windows顯示/隱藏串行口觀察子菜單窗口Analysis Windows顯示/隱藏分析子菜單窗口Trace顯示/隱藏跟蹤子菜單窗口System Viewer顯示/

18、隱藏外設(shè)子菜單窗口Toolbox Window顯示/隱藏自定義工具條窗口Periodic Window Update在程序運(yùn)行時(shí)刷新調(diào)試窗口4Project菜單Project菜單提供了MCU項(xiàng)目的創(chuàng)建、設(shè)置和編譯等命令。Project菜單各個(gè)命令的功能如表A-4所示。表A-4 Project菜單菜單命令工具條快捷鍵功能說(shuō)明New µVision Project.創(chuàng)建新項(xiàng)目New Multi-Project Workspace.創(chuàng)建多項(xiàng)目工作空間Open Project.打開一個(gè)已存在的項(xiàng)目Close Project關(guān)閉當(dāng)前項(xiàng)目Export導(dǎo)出當(dāng)前一個(gè)或多個(gè)項(xiàng)目為Vision3格式Ma

19、nage管理項(xiàng)目的包含文件、庫(kù)的路徑及多項(xiàng)目工作空間Select Device for Target name.為當(dāng)前項(xiàng)目選擇一個(gè)MCU類型Remove object從當(dāng)前項(xiàng)目中移除選擇的文件或項(xiàng)目組Options for objectAlt+F7設(shè)置當(dāng)前文件、項(xiàng)目或項(xiàng)目組的配置選項(xiàng)Clean target清除編譯過程中創(chuàng)建的中間文件Build targetF7編譯文件并生成應(yīng)用文件Rebuild all target files重新編譯所有文件并生成應(yīng)用文件Batch Build.批量編譯文件并生成應(yīng)用文件Translate fileCtrl+F7編譯當(dāng)前文件Stop build停止編譯當(dāng)前

20、項(xiàng)目1 . 10列出最近打開的項(xiàng)目(最多10個(gè))5Flash菜單Flash菜單提供了下載程序、擦除MCU程序存儲(chǔ)器等操作。這里的命令需要外部的編程器支持才可以使用。Flash菜單各個(gè)命令的功能,如表A-5所示。表A-5 Flash菜單菜單命令工具條功能說(shuō)明Download下載MCU程序Erase擦除程序存儲(chǔ)器Configure Flash Tools.打開配置工具6Debug菜單Debug菜單中的命令大多用于仿真調(diào)試過程中,提供了斷點(diǎn)、調(diào)試方式及邏輯分析等功能。Debug菜單各個(gè)命令的功能如表A-6所示。表A-6 Debug菜單菜單命令工具條快捷鍵功能說(shuō)明Start/Stop Debug Se

21、ssionCtrl+F5開始/停止仿真調(diào)試模式Reset CPU復(fù)位CPU(MCU)RunF5運(yùn)行程序,直到遇到一個(gè)斷點(diǎn)Stop停止運(yùn)行程序StepF11單步執(zhí)行程序,遇到子程序則進(jìn)入Step overF10單步執(zhí)行程序,跳過子程序Step outCtrl+F11程序執(zhí)行到當(dāng)前函數(shù)的結(jié)束Run to Cursor lineCtrl+F10程序執(zhí)行到光標(biāo)所在行Show Next Statement顯示下一條指令BreakpointsCtrl+B打開斷點(diǎn)對(duì)話框Insert/Remove BreakpointF9設(shè)置/取消當(dāng)前行的斷點(diǎn)Enable/Disable BreakpointCtrl+F9使

22、能/禁止當(dāng)前行的斷點(diǎn)Disable All Breakpoints禁用所有斷點(diǎn)Kill All BreakpointsCtrl+Shift+F9取消所有斷點(diǎn)OS Support打開查看事件、任務(wù)及系統(tǒng)信息的子菜單Execution Profiling打開一個(gè)帶有配置選項(xiàng)的子菜單Memory Map打開存儲(chǔ)器空間配置對(duì)話框Inline Assembly對(duì)某一行進(jìn)行重新匯編,可以修改匯編代碼Function Editor (Open Ini File)編輯調(diào)試函數(shù)和調(diào)試配置文件Debug Settings設(shè)置調(diào)試參數(shù)7Peripherals菜單Peripherals菜單提供了MCU各種硬件資源的仿

23、真對(duì)話框。這里的所有命令都只在仿真調(diào)試環(huán)境下才顯示并可以使用,而且顯示的資源內(nèi)容隨用戶選擇的MCU型號(hào)的不同而不同。這里列出一些常用到的Peripherals菜單命令的功能,如表A-7所示。表A-7 Peripherals菜單菜單命令功能說(shuō)明Interrupt打開中斷仿真對(duì)話框I/O Ports打開并行端口仿真對(duì)話框Serial打開串口仿真對(duì)話框Timer打開定時(shí)器仿真對(duì)話框Watchdog打開看門狗仿真對(duì)話框A/D Converter打開A/D轉(zhuǎn)換器仿真對(duì)話框D/A Converter打開D/A轉(zhuǎn)換器仿真對(duì)話框I²C Controller打開I2C總線控制器仿真對(duì)話框CAN Con

24、troller打開CAN總線控制器仿真對(duì)話框8Tools菜單Tools菜單提供了一些第三方軟件的支持,例如PC-Lint。用戶需要額外安裝相應(yīng)的軟件才可以使用。Tools菜單一般使用得比較少,這里僅列出各個(gè)命令的功能,如表A-8所示。表A-8 Tool菜單菜單命令功能說(shuō)明Set-up PC-Lint配置PC-Lint程序Lint用PC-Lint程序處理當(dāng)前編輯的文件Lint All C-Source Files用PC-Lint程序處理項(xiàng)目中所有的C源代碼文件Customize Tools Menu.自定義工具菜單9SVSC菜單SVSC菜單提供了程序的版本控制,該菜單下僅包括“Configure

25、 Version Control”一個(gè)命令,用于配置軟件版本。另外,Windows菜單下提供了對(duì)工作區(qū)窗口布局的管理,Help菜單提供了一些幫助信息,這里不再具體介紹。附A.2 Keil Vision4匯編語(yǔ)言程序的調(diào)試方法Keil Vision4集成開發(fā)環(huán)境中包括一個(gè)項(xiàng)目管理器,它可以使基于80C51內(nèi)核的MCU應(yīng)用系統(tǒng)設(shè)計(jì)變得簡(jiǎn)單。要?jiǎng)?chuàng)建一個(gè)應(yīng)用,需要按下列步驟操作:1.啟動(dòng)Keil Vision4,新建一個(gè)項(xiàng)目文件并從器件庫(kù)中選擇一個(gè)器件;2.新建一個(gè)源文件并把它加入到項(xiàng)目中;3. 設(shè)置目標(biāo)硬件選項(xiàng);4.編譯項(xiàng)目并生成可以編程到程序存儲(chǔ)器的HEX文件;5. 軟件模擬調(diào)試及下載到MCU中進(jìn)

26、行仿真調(diào)試。下面通過一個(gè)實(shí)例,詳細(xì)介紹如何在Keil Vision4集成開發(fā)環(huán)境中調(diào)試80C51系列MCU的匯編語(yǔ)言程序?!纠鼳-1】假設(shè)晶振頻率為11.0592MHz,將MCU片外RAM中40H5FH單元中的內(nèi)容全部移到片內(nèi)相同地址區(qū)域,并將原數(shù)據(jù)區(qū)全部清零。附A.2.1啟動(dòng)Keil Vision4并創(chuàng)建一個(gè)項(xiàng)目雙擊桌面Keil Vision4程序圖標(biāo)或單擊開始菜單中的Keil Vision4程序項(xiàng),啟動(dòng)Keil Vision4集成開發(fā)環(huán)境。要新建一個(gè)項(xiàng)目文件,可以從Keil Vision4的Project菜單中選擇“New Project”項(xiàng),打開“Create New Project”對(duì)

27、話框,如圖A-7所示。圖A-7 “Create New Project”對(duì)話框在此對(duì)話框的“文件名”欄中輸入項(xiàng)目文件名。建議為每一個(gè)項(xiàng)目建立一個(gè)獨(dú)立的文件夾。首先,在下拉列表中選擇要保存的位置,最好選擇邏輯盤D或E(不要保存在系統(tǒng)盤C,避免因系統(tǒng)重新安裝而丟失文件)。單擊“新建文件夾”,得到一個(gè)空文件夾,給該文件夾重命名為“test”(文件夾的名字最好能夠體現(xiàn)項(xiàng)目名稱)。雙擊該文件夾,在“文件名(N)”欄中輸入項(xiàng)目的名稱,如“movedata”,創(chuàng)建一個(gè)文件名為“movedata.uvproj”的新項(xiàng)目文件。單擊“保存(S)”按鈕,將彈出“Select Device for Target Ta

28、rget 1”對(duì)話框,提示為項(xiàng)目選擇一個(gè)MCU。在該對(duì)話框中,“Data base”列表框中顯示出各個(gè)MCU的生產(chǎn)商。首先找到選用的MCU生產(chǎn)商,單擊前面的“+”號(hào),顯示出Keil Vision4所支持的該公司的MCU型號(hào)列表,單擊其中選定的MCU型號(hào)。如本例中,選擇Atmel公司的型號(hào)為AT89S52的MCU,如圖A-8所示。圖A-8 “Select Device for Target Target 1”對(duì)話框單擊“OK”按鈕,彈出如圖A-9所示的對(duì)話框,提示是否將標(biāo)準(zhǔn)8051啟動(dòng)代碼復(fù)制到項(xiàng)目文件夾中并將該文件添加到項(xiàng)目中去。圖A-9 復(fù)制啟動(dòng)代碼提示對(duì)話框在Keil Vision4中,啟

29、動(dòng)代碼在復(fù)位目標(biāo)系統(tǒng)后立即被執(zhí)行。啟動(dòng)代碼主要實(shí)現(xiàn)以下功能: 清除內(nèi)部數(shù)據(jù)存儲(chǔ)器; 清除外部數(shù)據(jù)存儲(chǔ)器; 清除外部頁(yè)存儲(chǔ)器; 初始化small模式下的可重入棧和指針; 初始化large模式下的可重入棧和指針; 初始化compact模式下的可重入棧和指針; 初始化8051硬件棧指針; 傳遞初始化全局變量的控制命令或者在沒有初始化全局變量時(shí)給main函數(shù)傳遞命令。在每一個(gè)啟動(dòng)文件中,提供了可供用戶自己修改有來(lái)控制程序執(zhí)行的匯編常量。如果只是調(diào)試簡(jiǎn)單程序,可以選擇“否(N)”,如果項(xiàng)目復(fù)雜可選擇“是(Y)”。用戶可根據(jù)需要修改啟動(dòng)代碼,但一般不建議修改啟動(dòng)代碼。附A.2.2新建一個(gè)源文件并把它加入到

30、項(xiàng)目中從“File”菜單中選擇“New”項(xiàng)新建一個(gè)源文件,或者單擊工具欄上的按鈕,打開一個(gè)空白的編輯窗口,用戶可以輸入程序源代碼。輸入以下程序源代碼: ORG0000H LJMP MAIN ORG 0040HMAIN: MOVSP,#70HMOV R0,#40H MOVR1,#20HLOOP:MOV P2,#00H; 軟件仿真時(shí)必須有MOVX A,R0 MOV R0,A MOV A,#00H MOVX R0,A INC R0 DJNZ R1,LOOP END從“File”菜單中選擇“Save”項(xiàng)或者單擊工具欄中的保存按鈕,將文件保存為想要的名字。如果使用匯編語(yǔ)言編寫程序,則文件的后綴名是:.a

31、sm或者.a51,如test.asm,如圖A-10所示(如果使用C語(yǔ)言編寫程序,則文件的后綴名是:.c,以下步驟與匯編語(yǔ)言程序相同)。保存后,Keil Vision4將高亮顯示匯編語(yǔ)言語(yǔ)法字符,如圖A-11所示。圖A-10 保存源文件圖A-11 保存后程序顯示界面源文件創(chuàng)建完成后,就可以將它加入到項(xiàng)目中(如不加入,則無(wú)法對(duì)此文件操作)。Keil Vision4提供了幾種方法讓用戶把源文件加入到項(xiàng)目中。(1)在“Project Workspace”(項(xiàng)目管理器)窗口中單擊“Target 1”前面的“+”號(hào),展開下一層的“Source Group 1”文件夾,在“Source Group 1”文件

32、夾上單擊鼠標(biāo)右鍵,彈出快捷菜單,如圖A-12所示。從彈出的快捷菜單中單擊“Add Files to Group Source Group 1”項(xiàng),彈出“Add Files to Group Source Group 1”對(duì)話框,如圖A-13所示。圖A-12 將源文件加入到項(xiàng)目中圖A-13 “Add Files to Group Source Group 1”對(duì)話框在該對(duì)話框中,默認(rèn)的文件類型是“C Source file (*.c)”。若使用匯編語(yǔ)言進(jìn)行設(shè)計(jì),則需要從“文件類型”下拉列表框中選擇“Asm Source file (*.S*;*.src;*.a*)”文件類型。這樣,以.asm為擴(kuò)

33、展名的匯編語(yǔ)言程序文件才會(huì)出現(xiàn)在文件列表框中。從文件列表框中選擇要加入的文件并雙擊即可添加到項(xiàng)目中;也可以單擊選中文件,然后單擊“Add”按鈕將該文件加入項(xiàng)目中。添加文件后,對(duì)話框不會(huì)自動(dòng)關(guān)閉,而是繼續(xù)等待添加其它文件,用戶可單擊“Close”按鈕,關(guān)閉對(duì)話框。當(dāng)給項(xiàng)目添加文件成功后,項(xiàng)目管理器的“Source Group 1”文件夾前面會(huì)出現(xiàn)“+”號(hào),單擊它可看到test.asm文件已經(jīng)包含在項(xiàng)目中了。雙擊它即可打開進(jìn)行修改。附A.2.3設(shè)置目標(biāo)硬件選項(xiàng)Keil Vision4允許用戶為目標(biāo)硬件設(shè)置選項(xiàng)??梢酝ㄟ^單擊工具條圖標(biāo)、菜單“Project”的“Options for Target

34、Target 1”項(xiàng)或者在“Project Workspace”窗口的“Target 1”上單擊鼠標(biāo)右鍵,打開“Options for Target Target 1”對(duì)話框。在各選項(xiàng)卡中,可以修改與目標(biāo)硬件及所選MCU的片上集成器件的所有參數(shù),如圖A-14所示。圖A-14 Options for Target Target 1對(duì)話框主要設(shè)置CPU的時(shí)鐘頻率、編譯器的存儲(chǔ)模式等。晶振頻率設(shè)置應(yīng)與實(shí)際使用的晶振頻率相同。如果僅進(jìn)行軟件模擬調(diào)試,則采用默認(rèn)設(shè)置即可。附A.2.4編譯項(xiàng)目并生成可以編程到程序存儲(chǔ)器的HEX文件單擊工具欄中的“Rebuild”圖標(biāo),可以編譯所有的源文件并生成應(yīng)用。當(dāng)程序

35、中有語(yǔ)法錯(cuò)誤時(shí),Keil Vision4將在“Build Output”窗口顯示錯(cuò)誤或者警告信息。雙擊一行錯(cuò)誤提示信息,將打開此信息對(duì)應(yīng)的文件,并定位到語(yǔ)法錯(cuò)誤處,如圖A-15所示。在錯(cuò)誤信息上雙擊鼠標(biāo),光標(biāo)會(huì)自動(dòng)定位到出現(xiàn)該錯(cuò)誤的程序行上。例如,如圖A-15所示,出現(xiàn)“test.asm(15): error A45: UNDEFINED SYMBOL (PASS-2)”(未定義符號(hào))錯(cuò)誤信息,雙擊該信息,光標(biāo)定位到出現(xiàn)該錯(cuò)誤的行上。用戶很容易發(fā)現(xiàn)錯(cuò)誤原因是將標(biāo)號(hào)“LOOP”錯(cuò)寫成“LOO”,漏掉字母P。由輸入引起的用戶常犯的編譯錯(cuò)誤還有:錯(cuò)將數(shù)字0輸成字母o,使用中文輸入法輸入了全角逗號(hào)(,

36、)和冒號(hào)(:),大于9FH(如A8H)的十六進(jìn)制數(shù)忘記在前面加上數(shù)字0(正確寫法0A8H)等。根據(jù)錯(cuò)誤信息提示,修改程序中出現(xiàn)的錯(cuò)誤,直到編譯成功為止。一旦編譯成功,則顯示如圖A-16所示信息。提示信息最后一行為“"movedata" - 0 Error(s), 0 Warning(s).”,不但沒有錯(cuò)誤,而且最好也沒有警告。需要注意的是,Keil Vision4默認(rèn)是不生成HEX文件的。這時(shí)就需要設(shè)置目標(biāo)硬件選項(xiàng)中的“Output”選項(xiàng)卡,選中“Create HEX File”前面的復(fù)選框,如圖A-17所示。 圖A-15 編譯出現(xiàn)錯(cuò)誤信息時(shí)的提示圖A-16 編譯成功提示信

37、息圖A-17 生成HEX文件的選項(xiàng)附A.2.5軟件模擬調(diào)試及下載到MCU中進(jìn)行仿真調(diào)試一旦編譯成功,就可以進(jìn)行程序的仿真調(diào)試了。對(duì)于程序的調(diào)試,有兩種方式:一種是軟件模擬仿真調(diào)試,另一種就是下載到硬件仿真器或者M(jìn)CU中進(jìn)行在線仿真調(diào)試。一般情況下,首先使用軟件模擬仿真調(diào)試,通過之后,再用硬件仿真器或者直接下載到MCU中進(jìn)行在線仿真調(diào)試。由于軟件模擬仿真調(diào)試與在線仿真調(diào)試方法基本相同,所以就以軟件模擬仿真調(diào)試為例,介紹程序的調(diào)試方法。為了對(duì)前面編寫的程序能夠在不連接硬件仿真器或者M(jìn)CU的情況下進(jìn)行仿真調(diào)試(即軟件模擬),需對(duì)Keil Vision4做一下設(shè)置。按照2.3設(shè)置目標(biāo)硬件選項(xiàng)打開“Op

38、tions for Target Target 1”對(duì)話框,選中“Debug”頁(yè),如圖A-18所示。一般情況下,如果沒有進(jìn)行硬件仿真,則“Use Simulator”單選框是默認(rèn)選中的,此時(shí),進(jìn)行軟件模擬調(diào)試,其它選項(xiàng)不做修改;否則,則選中“Use:”單選框,并在其下拉框中選擇相應(yīng)的硬件驅(qū)動(dòng),并點(diǎn)擊“Settings”按鈕對(duì)目標(biāo)仿真硬件進(jìn)行設(shè)置。圖A-18 設(shè)置“Options for Target Target 1”對(duì)話框中的“Debug”頁(yè)通過以上設(shè)置,就可以進(jìn)行軟件模擬調(diào)試了。單擊工具欄中的“Start/Stop Debug Session”按鈕,或者從“Debug”菜單中選中“Star

39、t/Stop Debug Session”項(xiàng)(其快捷鍵為Ctrl+F5),開始模擬調(diào)試過程。在調(diào)試過程中,可以進(jìn)行如下操作:1.連續(xù)運(yùn)行單擊工具欄中的按鈕,或者“Debug”菜單中的“Run”(快捷鍵F5),可以使程序全速運(yùn)行。2.停止程序運(yùn)行當(dāng)程序全速運(yùn)行時(shí),可以單擊工具欄中的按鈕,或者“Debug”菜單中的“Stop”,使程序停止運(yùn)行。3.復(fù)位CPU當(dāng)程序運(yùn)行過一次以上后,累加器A、某些寄存器或者其它資源的值修改了,而再次運(yùn)行需要恢復(fù)到初始狀態(tài),這時(shí)就需要執(zhí)行復(fù)位CPU的命令。單擊工具欄中的按鈕,或者“Debug”菜單中的“Reset CPU”,可以使MCU恢復(fù)到初始狀態(tài)。4.單步運(yùn)行單擊

40、工具欄中的按鈕,或者“Debug”菜單中的“Step”(快捷鍵F11),可以執(zhí)行一行程序。如果遇到函數(shù)調(diào)用,則進(jìn)入函數(shù)內(nèi)部并單步運(yùn)行。5.單步跳過函數(shù)運(yùn)行單擊工具欄中的按鈕,或者“Debug”菜單中的“Step Over”(快捷鍵F10),可以執(zhí)行一行程序。如果遇到函數(shù)調(diào)用,則將函數(shù)調(diào)用看做一行程序運(yùn)行,不進(jìn)入函數(shù)內(nèi)部運(yùn)行。6.運(yùn)行到當(dāng)前函數(shù)的結(jié)束這種情況出現(xiàn)在單步運(yùn)行后進(jìn)入到函數(shù)內(nèi)部運(yùn)行程序,通過單擊工具欄中的按鈕,或者“Debug”菜單中的“Step Out”(快捷鍵Ctrl+F11),以運(yùn)行到當(dāng)前函數(shù)的結(jié)束。7.運(yùn)行到光標(biāo)行單擊工具欄中的按鈕,或者“Debug”菜單中的“Run to C

41、ursor Line”(快捷鍵Ctrl+F10),可以執(zhí)行到光標(biāo)所在的程序行。8.設(shè)置斷點(diǎn)在要設(shè)置斷點(diǎn)的程序行上雙擊鼠標(biāo)左鍵,或者單擊工具欄上的按鈕,或者“Debug”菜單中的“Insert/Remove Breakpoint”(快捷鍵F9),可以在當(dāng)前行上插入或者刪除斷點(diǎn)。只要在當(dāng)前行上設(shè)置了斷點(diǎn),則在當(dāng)前行的最左邊顯示一個(gè)紅色的小方塊。連續(xù)運(yùn)行程序后,執(zhí)行到該行時(shí),程序會(huì)暫停運(yùn)行。此時(shí)用戶可以查看程序運(yùn)行的一些中間狀態(tài)和結(jié)果(累加器A、工作寄存器、SFR、數(shù)據(jù)存儲(chǔ)器等)。9.查看寄存器當(dāng)進(jìn)入調(diào)試狀態(tài)后,Keil Vision4集成開發(fā)環(huán)境中左側(cè)的項(xiàng)目管理器,變成寄存器查看器。如圖A-19所

42、示。用戶可以通過這個(gè)窗口觀察工作寄存器、部分SFR的內(nèi)容。圖A-19 觀察寄存器的內(nèi)容10.查看變量及堆棧在調(diào)試狀態(tài)中,在Keil Vision4集成開發(fā)環(huán)境中的右下側(cè)會(huì)出現(xiàn)如圖A-20所示的窗口,即調(diào)用堆棧和變量查看窗口(使用C語(yǔ)言編程調(diào)試的時(shí)候常用)。圖A-20 調(diào)用堆棧和變量查看窗口11.查看存儲(chǔ)器在圖A-20中單擊Memory1選項(xiàng)卡則在在Keil Vision4集成開發(fā)環(huán)境中的右下側(cè)會(huì)出現(xiàn)如圖A-21所示的窗口,即存儲(chǔ)器查看窗口。圖A-21 存儲(chǔ)器查看窗口默認(rèn)情況下,想查看內(nèi)部RAM(片內(nèi)數(shù)據(jù)存儲(chǔ)器)中的內(nèi)容,需在“Address”編輯框中輸入“D:0”并按回車鍵即可。拖動(dòng)窗口的左邊

43、框可以調(diào)整窗口的大小,經(jīng)過調(diào)整,最佳的顯示范圍如圖A-22所示。圖A-22 片內(nèi)數(shù)據(jù)存儲(chǔ)器查看窗口可以通過“View”菜單中的“Memory Windows”項(xiàng),添加存儲(chǔ)器查看窗口,這樣可通過不同的窗口查看不同存儲(chǔ)器的內(nèi)容。例如,可再增加一個(gè)窗口查看外部RAM中的內(nèi)容。如圖A-23 所示,在在“Address”編輯框中輸入“X:0”并按回車鍵即可。圖A-23 片外數(shù)據(jù)存儲(chǔ)器查看窗口要改變某個(gè)地址單元中的內(nèi)容,可在上面雙擊鼠標(biāo)左鍵即可修改;或者在要修改內(nèi)容的單元上單擊鼠標(biāo)右鍵,彈出菜單,選擇“Modify Memory at ”修改。通過彈出菜單,還可修改進(jìn)制、有符號(hào)數(shù)、無(wú)符號(hào)數(shù)、ASCII碼等

44、“Address”編輯框一般輸入格式如下:X:XXXX其中X為:D,查看內(nèi)部RAM;X,查看外部RAM;I,查看間接訪問的內(nèi)部RAM;C,查看程序ROM。XXXX為:查看的起始地址(0000HFFFFH)。12.查看外部設(shè)備單擊菜單“Peripherals”可選擇查看所選MCU集成的不同外部設(shè)備。例如:(1)“Interrupt”打開中斷向量表窗口,在窗口里顯示了所有的中斷向量。如圖A-24所示。對(duì)選定的中斷向量可以用窗口下面的復(fù)選框進(jìn)行設(shè)置。圖A-24 中斷向量表窗口(2)“I/O-Ports”:打開I/O端口(P0P3)的觀察窗口,在窗口里顯示了程序運(yùn)行時(shí)的端口狀態(tài)??梢噪S時(shí)查看并修改端口

45、的狀態(tài),從而模擬外部的輸入。例如,要查看P2口的狀態(tài),可打開P2口的觀察窗口,如圖A-25所示。當(dāng)運(yùn)行到第10行時(shí),則如圖A-26所示。圖中標(biāo)有“”的復(fù)選框表示這一位的值是1,沒有的為0。對(duì)于不同的MCU,可能圖A-25、圖A-26的顯示略有不同。圖A-25 剛進(jìn)入調(diào)試狀態(tài)時(shí)P2口的查看窗口圖A-26 運(yùn)行到程序行第10行時(shí)P2口的查看窗口(3)“Serial”:打開串行口的觀察窗口,可以隨時(shí)修改窗口里顯示的不同狀態(tài)。(4)“Timer”:打開定時(shí)器的觀察窗口,可以隨時(shí)修改窗口里顯示的不同狀態(tài)。除此以外,對(duì)于不同公司生產(chǎn)的MCU,在“Peripherals”菜單中會(huì)出現(xiàn)很多與該型號(hào)MCU相關(guān)的

46、外部設(shè)備資源菜單項(xiàng)。掌握了上述的操作過程,就可以進(jìn)行基本的程序調(diào)試工作了。只有不斷調(diào)試程序,才能逐步積累經(jīng)驗(yàn),增強(qiáng)對(duì)MCU的使用,做到靈活運(yùn)用,熟練掌握。附A.3 Keil C51語(yǔ)言雖然MCU上使用的C語(yǔ)言都是直接針對(duì)具體硬件的,但任何一家公司開發(fā)的C語(yǔ)言,都必須符合ANSI C的標(biāo)準(zhǔn),或者說(shuō),要與ANSI C兼容。因此,不論哪一家公司為MCU開發(fā)的C語(yǔ)言,其主要部分必然要與ANSI C保持一致,不同的只是非ANSI C的擴(kuò)展部分,Keil C51也不例外。Keil C51是一個(gè)兼容ANSI C的編譯器,為了支持80C51系列MCU加入了一些擴(kuò)展的內(nèi)容。C51編譯器與ANSI C相比,擴(kuò)展的

47、內(nèi)容包括:數(shù)據(jù)類型、存儲(chǔ)器類型、存儲(chǔ)模式、指針及函數(shù)(包括:定義函數(shù)的重入性、指定函數(shù)的寄存器組、指定函數(shù)的存儲(chǔ)模式及定義中斷服務(wù)程序)。閱讀本書的讀者請(qǐng)注意,本書沒有詳細(xì)介紹標(biāo)準(zhǔn)的C語(yǔ)言,只是介紹Keil C51對(duì)ANSI C的擴(kuò)展。對(duì)于通用的C語(yǔ)言部分,如果需要,請(qǐng)查閱相關(guān)介紹C語(yǔ)言的教材。下面詳細(xì)介紹Keil C51對(duì)ANSI C的擴(kuò)展部分。附A.3.1數(shù)據(jù)類型Keil C51編譯器支持的各種規(guī)格的數(shù)據(jù)類型列于表A-8。除了這些數(shù)據(jù)類型以外,變量可以組合成結(jié)構(gòu)、聯(lián)合及數(shù)組。表A-8 KeilC51支持的數(shù)據(jù)類型數(shù)據(jù)類型位數(shù)字節(jié)數(shù)值范圍signed char81-128到+127unsig

48、ned char810到255signed short162-32768到+32767unsigned short1620到65535signed int162-32768到+32767unsigned int1620到65535signed long324-2147483648到+2147483647unsigned long324 0到4294967295 float3241.175494E-38到3.402823E+38bit10或1sbit10或1sfr810或255sfr 161620或65535 數(shù)據(jù)表A-1所列的數(shù)據(jù)類型中,關(guān)鍵字bit、 sbit 、sfr 和sfr16 等四種

49、類型在ANSI C中是沒有的,是Keil C51編譯器中新增加的。其中,關(guān)鍵字bit用于操作80C51中的位尋址區(qū),而關(guān)鍵字sbit、sfr和sfr16用于操作80C51的特殊功能寄存器SFR。例如,下面的表達(dá)式:sfr P0 = 0x80; /* 定義 80C51 P0 口的特殊功能寄存器 */聲明了一個(gè)變量P0,并且把它和位于0x80(80C51的P0口)處的特殊功能寄存器聯(lián)系在一起。1.bit類型bit 數(shù)據(jù)類型用于定義操作位尋址區(qū)的變量,可用于變量聲明、參數(shù)列表、函數(shù)聲明和函數(shù)返回值等。所有的 bit 變量存放在80C51 內(nèi)部存儲(chǔ)區(qū)的位尋址區(qū)。因?yàn)檫@個(gè)區(qū)域只有16 字節(jié)長(zhǎng),所以最多只

50、能聲明128個(gè)位變量。一個(gè)bit 變量的聲明與其它數(shù)據(jù)類型相似,例如:static bit gbFlag = 0;/* 位變量 */bit bFunc(/* 位函數(shù) */bit bFlag1,/* 位變量 */ bit bFlag2 )/* 位變量 */ return(0)/* 位返回值 */bit 變量的聲明中,可包含存儲(chǔ)器類型。但是因?yàn)?bit 變量存儲(chǔ)在80C51的內(nèi)部數(shù)據(jù)區(qū),只能使用data 和idata 存儲(chǔ)類型,不能使用別的存儲(chǔ)類型。例如: int data iBase; /* 在在直接訪問數(shù)據(jù)區(qū)定義一個(gè)整型變量iBase */ char idata cAry4; /* 在間接訪問

51、數(shù)據(jù)區(qū)定義一個(gè)數(shù)組iBase */ bit mybit0 = iBase 0; bit mybit15 = iBase 0; bit bAry07 = cAry0 7; bit bAry37 = cAry 3 7;bit 變量和 bit 聲明有以下限制:(1)如果在函數(shù)中禁止使用中斷(#pragma disable)或者函數(shù)中包含有明確的寄存器組切換(using n),則該函數(shù)不能返回一個(gè)位值。否則,在編譯時(shí)會(huì)產(chǎn)生編譯錯(cuò)誤。(2)一個(gè)位不能被聲明為一個(gè)指針,如bit *bPtr;是錯(cuò)誤的。(3)不能聲明使用一個(gè) bit 類型的數(shù)組,如bit bArr5;是錯(cuò)誤的。2.sfr類型sfr和C語(yǔ)言的

52、其它類型變量聲明是一樣的。例如:sfr P0 = 0x80;/* P0口,地址為80H */sfr P1 = 0x90;/* P1口,地址為90H*/sfr P2 = 0xA0;/* P2口,地址為0A0H */sfr P3 = 0xB0;/* P3口,地址為0B0H*/P0、P1、P2 和P3 是聲明的SFR名。在等號(hào)(=)后指定的地址必須是一個(gè)常數(shù)值不允許用帶操作數(shù)的表達(dá)式。標(biāo)準(zhǔn)的80C51系列支持SFR地址從0x80 到0xFF。3.sfr16Keil C51編譯器提供的sfr16數(shù)據(jù)類型,可以將兩個(gè)8位的SFR作為一個(gè)16位的SFR來(lái)訪問。訪問該16位的SFR只能是低字節(jié)跟著高字節(jié),即

53、將低字節(jié)的地址用作sfr16聲明的地址。例如:sfr16 T2 = 0xCC;/*定義Timer2的16位數(shù)據(jù)寄存器, TL2的地址為0CCH,TH2的地址為0CDH */在這個(gè)例子中,定時(shí)器T2的16位的數(shù)據(jù)寄存器被聲明為16 位SFR。當(dāng)然,這個(gè)16位的數(shù)據(jù)寄存器可以聲明為2個(gè)8位的數(shù)據(jù)寄存器。如下所示:sfr TL2 = 0xCC;/*定義Timer2的16位數(shù)據(jù)寄存器的低8位, TL2的地址為0CCH */sfr TH2 = 0xCD;/*定義Timer2的16位數(shù)據(jù)寄存器的高8位, TH2的地址為0CDH */sfr16 聲明和 sfr 聲明遵循相同的原則。任何符號(hào)名可用在 sfr1

54、6 的聲明中。等號(hào)(=)指定的地址,必須是一個(gè)常數(shù)值。不允許使用帶操作數(shù)的表達(dá)式,而且必須使用SFR的低位和高位字節(jié)中的低位字節(jié)的地址。4.sbit類型在80C51系列MCU中,經(jīng)常需要訪問SFR中的某些位,這時(shí)需使用關(guān)鍵字sbit,利用它可以定義可位尋址的對(duì)象。定義方法有如下三種。(1)sbit 位變量名 = 位地址這種方法將位的絕對(duì)地址賦給位變量,位地址必須位于0x800xFF之間。例如:sbit OV = 0xD2;sbit CY = 0xD7;(2)sbit 位變量名 = SFR名 位位置當(dāng)可位尋址的位位于SFR中的時(shí)候,可采用此方法?!拔晃恢谩笔且粋€(gè)07之間的常數(shù)。例如:sfr PSW = 0xD0;sbit OV = PSW 2;sbit CY = PSW 7;(3)sbit 位變量名 = 字節(jié)地址

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論