單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境課件_第1頁(yè)
單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境課件_第2頁(yè)
單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境課件_第3頁(yè)
單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境課件_第4頁(yè)
單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境課件_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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、單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,第4章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,通過(guò)前面章節(jié)的講解,讀者對(duì)于AT89S51單片機(jī)的硬件結(jié)構(gòu)和匯編語(yǔ)言編程都有了一個(gè)詳細(xì)的了解。隨著單片機(jī)開(kāi)發(fā)工具的不斷發(fā)展,目前,利用C語(yǔ)言開(kāi)發(fā)單片機(jī)程序,具有效率高、可讀性強(qiáng)、可移植性強(qiáng)等特點(diǎn),已經(jīng)成為單片機(jī)程序開(kāi)發(fā)中的主要方式。 Keil C51是一款十分流行的MCS-51內(nèi)核單片機(jī)C語(yǔ)言開(kāi)發(fā)環(huán)境,在本章中詳細(xì)向讀者介紹Keil C51的開(kāi)發(fā)方法,使讀者能夠具備利用C語(yǔ)言開(kāi)發(fā)AT89S51單片機(jī)程序的能力。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1 C語(yǔ)言編程基礎(chǔ),Ke

2、il C51的開(kāi)發(fā)方法其實(shí)和大家學(xué)習(xí)的C語(yǔ)言基本相同,本節(jié)介紹C51的開(kāi)發(fā),內(nèi)容和C語(yǔ)言的基礎(chǔ)知識(shí)差不多,由于篇幅有限,如需要深入了解的讀者可以參考一些C語(yǔ)言的教程。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.1 C51程序的基本結(jié)構(gòu),C51 源程序結(jié)構(gòu)與一般C 語(yǔ)言基本一致,C51 源程序文件的擴(kuò)展名為.c ,如Add. c 、Max. c 等。一個(gè)C51 源程序大體上是一個(gè)函數(shù)定義的集合,在這個(gè)集合中有且僅有一個(gè)名為main( )的函數(shù),也稱為該程序的主函數(shù)。 主函數(shù)是程序的入口,它是一個(gè)特殊的函數(shù),程序的執(zhí)行都是從main( )函數(shù)開(kāi)始的。主函數(shù)中的所有語(yǔ)句執(zhí)行完

3、畢,則程序執(zhí)行結(jié)束。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.2 標(biāo)識(shí)符與關(guān)鍵字,標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)源程序中某個(gè)對(duì)象的名字的,這些對(duì)象可以是語(yǔ)句、數(shù)據(jù)類型、函數(shù)、變量、數(shù)組等等。C語(yǔ)言是區(qū)分大小寫(xiě)的一種高級(jí)語(yǔ)言,如果要定義一個(gè)定時(shí)器1,可以寫(xiě)做“Timer1”,如果程序中有TIMER1,那么這兩個(gè)是完全不同定義的標(biāo)識(shí)符。 標(biāo)識(shí)符由字符串、數(shù)字和下劃線等組成,需要注意的是,第一個(gè)字符必須是字母或下劃線,類似“1Timer”的定義是錯(cuò)誤的,編譯時(shí)便會(huì)有錯(cuò)誤提示。有些編譯系統(tǒng)專用的標(biāo)識(shí)符以下劃線開(kāi)頭,所以除了在定義專業(yè)標(biāo)識(shí)符以外,一般不要以下劃線開(kāi)頭命名標(biāo)識(shí)符。,單片機(jī)C語(yǔ)言

4、開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.3 數(shù)據(jù)類型,數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存放情況由數(shù)據(jù)結(jié)構(gòu)決定。C 語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型決定的,數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,復(fù)雜數(shù)據(jù)類型是由基本數(shù)據(jù)類型構(gòu)造而成的。 在標(biāo)準(zhǔn)C語(yǔ)言中基本的數(shù)據(jù)類型為char、int、short、long、float和double,而在C51編譯器中int和short相同,float和double相同。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.4 常量與變量,在程序運(yùn)行過(guò)程中不能改變值的量稱為常量,在程序運(yùn)行過(guò)程中不斷變化的量稱為變量??梢允褂盟蠧51編譯器支持的數(shù)據(jù)類

5、型定義一個(gè)變量,而常量的數(shù)據(jù)類型只限于整型、浮點(diǎn)型、字符型、字符串型和位標(biāo)量。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.5 函數(shù),一個(gè)好的C語(yǔ)言程序應(yīng)該把一個(gè)大問(wèn)題劃分成若干子問(wèn)題,解決一個(gè)子問(wèn)題對(duì)應(yīng)編制一個(gè)函數(shù),C程序一般是由大量的小函數(shù)而不是由少量大函數(shù)構(gòu)成的。使用函數(shù)帶來(lái)的好處是程序各部分相互充分獨(dú)立,任務(wù)單一。函數(shù)提供了編制程序的手段,使之容易讀、寫(xiě)、理解、排除錯(cuò)誤、修改和維護(hù)。 這些獨(dú)立的小模塊也可以作為一種固定規(guī)格的程序,用來(lái)組成新的大程序,使得程序的可移植性和可重用性能大大提高。 一些較常用的函數(shù)時(shí),只要將其保存在函數(shù)庫(kù)里,在以后的編程中可被方便地調(diào)用而

6、不需要再去編譯它們,連接時(shí)將會(huì)自動(dòng)從相應(yīng)的庫(kù)中裝配成所需程序。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.6 數(shù)組與指針,數(shù)組是指具有相同數(shù)據(jù)類型的變量集合,擁有共同的名字。數(shù)組中的每個(gè)特定元素都使用下標(biāo)來(lái)訪問(wèn)。數(shù)組存放在一段連續(xù)的存儲(chǔ)地址中,第一個(gè)數(shù)組元素存放于最低的地址,最高的地址對(duì)應(yīng)最后一個(gè)數(shù)組元素。數(shù)組有一維的和多維的,下面分別介紹。 (1)一維數(shù)組 一維數(shù)組的聲明格式是: 類型 變量名長(zhǎng)度 類型是指數(shù)據(jù)類型,即每一個(gè)數(shù)組元素的數(shù)據(jù)類型,包括整數(shù)型、浮點(diǎn)型、字符型、指針型以及結(jié)構(gòu)和聯(lián)合。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.6 結(jié)構(gòu)

7、體與聯(lián)合體,結(jié)構(gòu)體是一種由基本數(shù)據(jù)類型構(gòu)成、并用一個(gè)標(biāo)識(shí)符來(lái)命名的各種變量的組合。結(jié)構(gòu)體中可以使用不同的數(shù)據(jù)類型。 在Keil C51中,結(jié)構(gòu)體也是一種數(shù)據(jù)類型,可以使用結(jié)構(gòu)體變量,因此,與其他類型的變量一樣,在使用結(jié)構(gòu)體變量時(shí)要先對(duì)其定義。 定義結(jié)構(gòu)體變量的一般格式如下: struct 結(jié)構(gòu)體名 類型 變量名; 類型 變量名; 結(jié)構(gòu)體變量;,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.7 類型定義,與C語(yǔ)言編程一樣,Keil C51允許由用戶自己定義類型說(shuō)明符,也就是說(shuō)允許由用戶為數(shù)據(jù)類型使用自定義的名字,該功能可以使用類型定義符typedef完成。例如,有整型量a、b

8、,其說(shuō)明如下: int a ,b; 其中int是整型變量的類型說(shuō)明符,int的長(zhǎng)度為16位,為了增加程序的可讀性,可把整型說(shuō)明符用typedef定義為“typedef int INT16”,這以后就可用INT16來(lái)代替int作整型變量的類型說(shuō)明了,例如: INT16 a , b;/等效于 int a ,b,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.1.8 宏定義與條件編譯,在編寫(xiě)程序時(shí),使用的是用戶能夠看懂的ASCII碼。但是計(jì)算機(jī)必須將這些ASCII碼經(jīng)過(guò)翻譯后變成機(jī)器語(yǔ)言。這個(gè)翻譯過(guò)程分兩步,叫做編譯、鏈接過(guò)程。 第一步的編譯過(guò)程是將源程序中除了函數(shù)調(diào)用以外的語(yǔ)句翻譯成

9、機(jī)器語(yǔ)言,此時(shí)要生成一個(gè)中間目標(biāo)文件,后綴名為obj。鏈接過(guò)程是將庫(kù)函數(shù)的執(zhí)行代碼加入到剛才生成的obj文件中,生成可執(zhí)行文件。 用戶編寫(xiě)的源程序只能控制程序執(zhí)行的流程。但有些時(shí)候,需要對(duì)編譯程序的工作進(jìn)行一些干預(yù),這時(shí)就要用到編譯預(yù)處理命令。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2 Keil C51開(kāi)發(fā)工具,MCS-51內(nèi)核系列單片機(jī)作為工業(yè)使用的微處理器,從1985年開(kāi)始,就有對(duì)應(yīng)的C語(yǔ)言編譯器,簡(jiǎn)稱C51。并非所有的C51編譯器都產(chǎn)生和發(fā)揮MCS-51單片機(jī)特點(diǎn)的有效代碼,下面就各公司的編譯器做簡(jiǎn)要介紹。 (1)AMERICAN AUTOMATION 該編譯器通

10、過(guò)#asm和endasm預(yù)處理選擇支持匯編語(yǔ)言。此編譯器編譯速度慢,要求匯編的中間環(huán)節(jié)支持。 (2)ARCHIMEDES 它的鼻祖是瑞典的JAR,是支持分組開(kāi)關(guān)(Bank)的編譯器。它和ANSI C兼容,只是需要一個(gè)較復(fù)雜的連接程序控制文件支持,程序才能運(yùn)行。 (3)AVOCET 該軟件包包括編譯器、匯編器、連接器、庫(kù)MAKE工具和編輯器,集成環(huán)境類似Borland C和Turbo CO C編譯器產(chǎn)生一個(gè)匯編語(yǔ)言文件,然后再用匯編器,其編譯速度較快。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2 Keil C51開(kāi)發(fā)工具,(4)DUNFIELD SHAREWARE 它是非專

11、業(yè)的軟件包,不支持float、long或結(jié)構(gòu)等數(shù)據(jù)結(jié)構(gòu)。它不生成重定位代碼。 (5)FRANKLIN 它的鼻祖是Keil,在代碼生成方面領(lǐng)先,可產(chǎn)生最少的代碼。它支持浮點(diǎn)和長(zhǎng)整數(shù)、重入和遞歸,不提供庫(kù)源代碼,不能生成能匯編的匯編代碼,僅產(chǎn)生混合代碼,只能修改后匯編。若使用匯編語(yǔ)言,必須分開(kāi)匯編程序,然后手工連接。 若使用單片模式,它是最好的選擇。 (6)Keil C51 Keil C51的V8. xx是目前世界上最好的51單片機(jī)的匯編和C語(yǔ)言的開(kāi)發(fā)工具。它支持匯編、C語(yǔ)言以及混合編程,同時(shí)具備強(qiáng)大的軟件仿真和硬件仿真功能。 在本節(jié)中主要介紹采用Keil C51的開(kāi)發(fā)方法。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解

12、第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.1 Vision 3集成開(kāi)發(fā)環(huán)境結(jié)構(gòu),當(dāng)使用Keil C51的開(kāi)發(fā)工具進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí),項(xiàng)目的開(kāi)發(fā)流程和其他軟件開(kāi)發(fā)項(xiàng)目的流程極其相似,一般遵循下面幾步: 創(chuàng)建一個(gè)項(xiàng)目,從器件庫(kù)中選擇目標(biāo)器件,配置工具設(shè)置; 用C語(yǔ)言或匯編語(yǔ)言創(chuàng)建源程序; 用項(xiàng)目管理器生成應(yīng)用; 修改源程序中的錯(cuò)誤; 測(cè)試、連接應(yīng)用。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.2 Keil C51的C編譯器,C 語(yǔ)言是一種通用編程語(yǔ)言,它提供高效的代碼、結(jié)構(gòu)化的編程元素及豐富的運(yùn)算符。C語(yǔ)言不是一個(gè)大型的語(yǔ)言,不是為特定領(lǐng)域內(nèi)的應(yīng)用而設(shè)計(jì)的。其普遍性使其可以

13、為各種不同的軟件任務(wù)提供便利有效的編程方案。許多應(yīng)用設(shè)計(jì)使用C 語(yǔ)言比其他專門語(yǔ)言更有效。 Keil 的C51優(yōu)化交叉編譯器是完全符合ANSI美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)標(biāo)準(zhǔn)的針對(duì)8051系列MCU的C編譯器,生成的可執(zhí)行代碼快速、緊湊,在運(yùn)行效率和速度上可以和匯編程序得到的代碼相媲美。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.3 Keil C51的A51宏匯編器,A51是一個(gè)8051系列MCU的宏匯編器,它把匯編語(yǔ)言翻譯成機(jī)器代碼。A51匯編器允許定義程序中的每一個(gè)指令,在需要極快的運(yùn)行速度、很小的代碼空間和精確的硬件控制時(shí)使用。其宏特性讓公共代碼只需要開(kāi)發(fā)一次,從而節(jié)約了開(kāi)發(fā)

14、和維護(hù)的時(shí)間。 A51匯編器宏處理的另一個(gè)有用的特性是根據(jù)命令行參數(shù)或匯編符號(hào)進(jìn)行條件匯編。代碼段的條件匯編能幫助用戶實(shí)現(xiàn)最緊湊的代碼,也可以從一個(gè)匯編源代碼文件產(chǎn)生不同的應(yīng)用:,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.3 Keil C51的A51宏匯編器,A51匯編器產(chǎn)生一個(gè)列表文件,包括行號(hào)、匯編時(shí)的時(shí)間和日期。關(guān)于匯編器運(yùn)行和目標(biāo)文件產(chǎn)生的信息被記錄下來(lái)。 通常情況下,程序從EXTERN、PUBLIC和SEGMENT指示器開(kāi)始。列表文件包含了每個(gè)源代碼的行號(hào)及每行產(chǎn)生的代碼。 列表文件包含了錯(cuò)誤和告警信息,錯(cuò)誤和告警的位置被明顯地標(biāo)識(shí)出來(lái)。 存儲(chǔ)器組的占用信息和

15、程序中的錯(cuò)誤和告警總數(shù)包括在文件的結(jié)尾處。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.4 Keil C51的BL51代碼鏈接器/定位器,BL51是具有代碼分段功能的連接器/重定位器,它組合一個(gè)或多個(gè)目標(biāo)模塊成一個(gè)8051的執(zhí)行程序。此連接器處理外部和全局?jǐn)?shù)據(jù),并將可重定位的段分配到固定的地址上。BL51連接器處理由Keil C51編譯器、A51匯編器和Intel PL/M-51編譯器、ASM-51匯編器產(chǎn)生的目標(biāo)模塊。連接器自動(dòng)選擇適當(dāng)?shù)倪\(yùn)行庫(kù)并連接用到的模塊。BL51主要有以下的功能: (1)數(shù)據(jù)地址管理 BL51連接器通過(guò)覆蓋那些不會(huì)同時(shí)使用的函數(shù)變量的技術(shù)來(lái)管理8

16、051有限的內(nèi)部存儲(chǔ)器資源,這極大地降低了大多數(shù)應(yīng)用對(duì)存儲(chǔ)器的需求。BL51連接器分析函數(shù)間的引用以決定存儲(chǔ)的覆蓋策略。可以用OVERLAY指示器來(lái)人為控制函數(shù)間的引用,這些引用被連接器用來(lái)確定哪些存儲(chǔ)器單元是獨(dú)占的。NOOVERLAY指示器讓BL51不進(jìn)行覆蓋連接,這在使用間接調(diào)用的函數(shù)或?yàn)榱苏{(diào)試而禁止覆蓋時(shí)比較有用。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.4 Keil C51的BL51代碼鏈接器/定位器,(2)代碼段 BL51連接器支持創(chuàng)建程序空間大于64KB的應(yīng)用。8051不能直接操作大于64KB的代碼地址空間,必須由外部硬件來(lái)交換代碼段。完成此功能的硬件必須

17、要8051中運(yùn)行的程序的控制中,這就是段(塊)切換。BL51連接器管理一個(gè)公共的區(qū)域和32個(gè)最大64KB空間的塊,從而達(dá)到總共2MB的分段程序空間。支持外部硬件塊切換的軟件包括的一個(gè)可編輯的匯編程序,以適應(yīng)應(yīng)用中的特定硬件平臺(tái)。 BL51連接器可以定義哪個(gè)段裝載哪個(gè)特定的程序模塊。通過(guò)仔細(xì)考慮,把各個(gè)函數(shù)分配到不同的段中來(lái)創(chuàng)建一個(gè)非常大而有效的應(yīng)用。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.4 Keil C51的BL51代碼鏈接器/定位器,(3)公共段 段切換程序中的公共段是一塊在任何時(shí)候、在所有的段中都可以訪問(wèn)的存儲(chǔ)器。此公共段在物理上就不能切換出局或變換地址空間。

18、 在公共段中的代碼可以復(fù)制到每個(gè)段中(如果切換整個(gè)程序空間)或駐留在一個(gè)獨(dú)立的地址空間或器件中(公共段不用切換)。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.4 Keil C51的BL51代碼鏈接器/定位器,(4)執(zhí)行其他段中的程序 分段代碼空間是通過(guò)附加的由軟件控制的地址線控制的,這些地址線可以由8051的I/O口或位于存儲(chǔ)器空間的鎖存器來(lái)模擬。HL51連接器為位于其他段中的函數(shù)生成一個(gè)跳轉(zhuǎn)表,當(dāng)用C語(yǔ)言調(diào)用一個(gè)位于不同段中的函數(shù)時(shí),要先切換段,再跳到目標(biāo)程序運(yùn)行,完成后再回到調(diào)用的那個(gè)段中去,并繼續(xù)往下執(zhí)行。這種段切換處理需要附加的50個(gè)CPU指令周期和占用2字節(jié)堆

19、棧空間。 如果把相關(guān)的函數(shù)分配在相同的段中,將顯著地提高系統(tǒng)的性能。需要從多個(gè)段中經(jīng)常調(diào)用的函數(shù)應(yīng)該位于公共段中。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.5 Keil C51的OC51目標(biāo)文件轉(zhuǎn)換器,OC51目標(biāo)文件轉(zhuǎn)換器為在目標(biāo)模塊中的每個(gè)代碼區(qū)創(chuàng)建絕對(duì)目標(biāo)模塊。當(dāng)用戶創(chuàng)建一個(gè)存儲(chǔ)區(qū)切換應(yīng)用時(shí),BL51產(chǎn)生存儲(chǔ)目標(biāo)模塊。符號(hào)調(diào)試信息復(fù)制到絕對(duì)目標(biāo)文件中,并供仿真器使用。用戶可使用OC51目標(biāo)文件轉(zhuǎn)換器創(chuàng)建絕對(duì)目標(biāo)模塊,然后可使用OH51目標(biāo)-hex轉(zhuǎn)換器創(chuàng)建Intel hex文件。 OH51目標(biāo)-hex轉(zhuǎn)換器從絕對(duì)目標(biāo)模塊中創(chuàng)建Intel hex文件,而絕對(duì)目標(biāo)模

20、塊可由BL51或OC51創(chuàng)建。Intel hex文件是ASCII文件包含了應(yīng)用程序的十六進(jìn)制表達(dá)式,將它們裝人器件編程器就可寫(xiě)人EPROM可以在DOS命令行中,用OC51將分段目標(biāo)模塊中的每一個(gè)代碼段創(chuàng)建絕對(duì)目標(biāo)模塊。 然后,用OH51(目標(biāo)代碼到hex 文件的轉(zhuǎn)換器)為每一個(gè)絕對(duì)目標(biāo)模塊產(chǎn)生相應(yīng)的Intel hex格式的文件。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.6 Keil C51的OH目標(biāo)HEX文件轉(zhuǎn)換器,OH51目標(biāo)hex轉(zhuǎn)換器為絕對(duì)目標(biāo)模塊創(chuàng)建Intel hex格式的文件。絕對(duì)目標(biāo)模塊可以由BL51或OC51 產(chǎn)生。Intel hex文件是ASCII文件

21、,用十六進(jìn)制的數(shù)表示應(yīng)用系統(tǒng)的目標(biāo)模塊。它們可以很容易的下載到編程器,以便于寫(xiě)入EPROMS器件。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.2.7 Keil C51的LIB51庫(kù)文件管理器,LIB5l庫(kù)管理器可使用戶創(chuàng)建和保存庫(kù)文件,一個(gè)庫(kù)文件是一個(gè)或多個(gè)目標(biāo)文件的格式化集合。庫(kù)文件提供簡(jiǎn)便的方法,可組合和引用大量的目標(biāo)文件。BL5l可有效地使用庫(kù)文件,庫(kù)管理器可使用戶創(chuàng)建一個(gè)庫(kù)文件、將目標(biāo)模塊加入庫(kù)文件、從庫(kù)文件中移去目標(biāo)模塊和列出庫(kù)文件的內(nèi)容。使用庫(kù)有一系列優(yōu)點(diǎn)。安全、高速和減少磁盤(pán)空間僅是使用庫(kù)的一小部分原因。另外,庫(kù)提供了一個(gè)很好的分發(fā)大量函數(shù)而不用分發(fā)大量函數(shù)源

22、代碼的手段。例如,ANSI C的庫(kù)是作為庫(kù)文件提供的。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.3 Vision 3集成開(kāi)發(fā)環(huán)境,Keil 公司于1996年推出了基于Windows的C51應(yīng)用程序集成開(kāi)發(fā)環(huán)境,如今Keil C51的IDE(集成開(kāi)發(fā)環(huán)境)的最新版本已經(jīng)發(fā)展到了Vision 3。 Vision 3是一個(gè)集成的軟件開(kāi)發(fā)平臺(tái),包括全功能編輯器、項(xiàng)目管理器、程序生成工具和環(huán)境控制等,其仿真調(diào)試的環(huán)境又叫DScope5。 Keil公司推出的新的32位最新的編譯器版本已經(jīng)達(dá)到Keil C51 V8. xx,可以運(yùn)行在Windows 9x、Windows NT、Wind

23、ows Me、Windows 2000和Windows XP等操作系統(tǒng),功能更加強(qiáng)大,支持的芯片更多。C51 V8.xx版本是目前最高效、靈活的8051開(kāi)發(fā)平臺(tái),它可以支持所有MCS-51的兼容內(nèi)核,也可以支持所有兼容的仿真器,同時(shí)支持其他第三方開(kāi)發(fā)工具。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.3.1 Vision 3 IDE,Vision 3 IDE是一個(gè)基于Windows的開(kāi)發(fā)平臺(tái),包含一個(gè)高效的編輯器、一個(gè)項(xiàng)目管理器和一個(gè)MAKE工具。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.3.2 Vision 3 C51編譯器與測(cè)試程序,C51 編譯器在

24、遵循ANSI標(biāo)準(zhǔn)的同時(shí),為MCS-51兼容微控制器系列進(jìn)行特別設(shè)計(jì)。語(yǔ)言上的擴(kuò)展能讓用戶使用應(yīng)用所有資源,有如下一些特點(diǎn): (1)存儲(chǔ)器和特殊功能寄存器的存取C51編譯器可以實(shí)現(xiàn)對(duì)8051系列所有資源的操作。 (2)中斷功能 (3)靈活的指針,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.3.3 Vision 3 的安裝,Vision 3安裝的最低的硬件和軟件配置必須滿足: 具有Pentium、Pentium II或兼容的處理器的個(gè)人計(jì)算機(jī); 操作系統(tǒng)為Windows98、Windos2000、WindowsXP 或更高; RAM大于128MB; 60MB 的硬盤(pán)空余空間。,單

25、片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4 集成開(kāi)發(fā)環(huán)境的使用,直接雙擊程序圖標(biāo)就可以啟動(dòng)Vision 3,要新建一個(gè)項(xiàng)目文件,Vision 3菜單中單擊【Project】|【New Project】命令即可。Vision 3的整個(gè)界面如圖4.15所示。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.1 Vision 3 的項(xiàng)目管理窗口,在Vision 3中,可以為一個(gè)應(yīng)用創(chuàng)建幾個(gè)不同的程序。用戶也許需要一個(gè)目標(biāo)用來(lái)測(cè)試,另一個(gè)目標(biāo)作為應(yīng)用系統(tǒng)的發(fā)行版本。在同一個(gè)項(xiàng)目文件中,允許每個(gè)目標(biāo)進(jìn)行獨(dú)立的工具設(shè)置。在Build工具欄上,可以快速改變當(dāng)前的目標(biāo),如

26、圖4.16所示,該項(xiàng)目有3個(gè)目標(biāo)文件,即Simulator、Ram Debug和Flash三種模式下的目標(biāo)文件,當(dāng)前目標(biāo)文件是Simulator。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.2 Vision 3的菜單欄,Vision 3的菜單欄提供各種操作菜單,例如:編輯操作、項(xiàng)目維護(hù)、開(kāi)發(fā)工具選項(xiàng)設(shè)置、調(diào)試程序、窗口選擇和處理以及在線幫助等等,,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.3 Vision 3 的工具欄,Vision 3提供了文件操作、源文件編輯、視圖切換、工程項(xiàng)目和調(diào)試命令等工具條按鈕,允許用戶快速地執(zhí)行命令,各種工具欄圖標(biāo)都對(duì)

27、應(yīng)一種Vision 3的下拉菜單命令,下面分別進(jìn)行介紹。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.4 Vision 3 的快捷鍵,使用Vision 3的鍵盤(pán)快捷鍵,用戶可以高效地執(zhí)行Vision 3 的各種命令,熟練地掌握各種快捷鍵的使用,將取得事半功倍的效果。 (1)文件操作快捷鍵 Ctrl + O:打開(kāi)已經(jīng)存在的文件; Ctrl + N:創(chuàng)建新文件; Ctrl + S:保存當(dāng)前文件; Ctrl + P:打印當(dāng)前文件;,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.4 Vision 3 的快捷鍵,(2)源代碼編輯快捷鍵 Ctrl + Z:取消上次

28、操作; Ctrl +Shift + Z:重復(fù)上次操作; Ctrl + X:剪切所選文本; Ctrl + Y:剪切當(dāng)前行的所有文本; Ctrl + C:復(fù)制所選文本; Ctrl +V:粘貼; Ctrl + F2:設(shè)置/取消當(dāng)前行的標(biāo)簽; F2:移動(dòng)光標(biāo)到下一個(gè)標(biāo)簽處; Shift + F2:移動(dòng)光標(biāo)到上一個(gè)標(biāo)簽處; Ctrl + F:在當(dāng)前文件中查找文本; F3 :向前重復(fù)查找; Shift + F3:向后重復(fù)查找; Ctrl + F3:查找光標(biāo)處的單詞; Ctrl + H:替換特定的字符;,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.4 Vision 3 的快捷鍵,(3)

29、頂目操作快捷鍵 Alt + F7:設(shè)置對(duì)象、組或文件的工具選項(xiàng); F7:編譯修改過(guò)的文件并生成應(yīng)用; Ctrl + F7:編譯當(dāng)前文件;,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.4 Vision 3 的快捷鍵,(4)調(diào)試快捷鍵 Ctrl + F5:開(kāi)始/停止調(diào)試模式; F5:運(yùn)行程序,直到遇到一個(gè)中斷; Fll:?jiǎn)尾綀?zhí)行程序,遇到子程序則進(jìn)入; FlO:?jiǎn)尾綀?zhí)行程序,跳過(guò)子程序; Ctrl + Fll:執(zhí)行到當(dāng)前函數(shù)的結(jié)束; ESC:停止程序運(yùn)行;,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.5 Vision 3 的功能窗口,在介紹Vision

30、3集成開(kāi)發(fā)環(huán)境中的各種窗口之前,先介紹一下下窗口的屬性設(shè)置,執(zhí)行【Edit】菜單下的【Configuration】命令。 這時(shí)將打開(kāi)Configuration對(duì)話框,單擊Editor標(biāo)簽,在這里可以設(shè)置源代碼編輯窗口的各種設(shè)置,比如若選中Create Backup files(*.BAK)復(fù)選框,則在源文件編輯過(guò)程中將產(chǎn)生備份文件;若選中Auto Indent復(fù)選框,則在編輯源代碼文件時(shí),將自動(dòng)以TAB鍵的距離縮進(jìn)。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.6 源代碼編輯窗口,源代碼編輯窗口,源代碼編輯窗口提供以下功能: 關(guān)鍵詞、注釋和字符串的高亮度顯示; 自動(dòng)縮進(jìn),

31、自定義Tab鍵的跳格數(shù); 圓括號(hào)和花括號(hào)對(duì)C語(yǔ)言代碼塊做標(biāo)記,并可方便地查到與之配對(duì)的右括號(hào); 多次Undo和Redo; 隨時(shí)獲得相關(guān)的在線幫助; 快速查找,在一個(gè)或多個(gè)文件中查找或替換。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.7 Watch &Call Stack 窗口,該窗口用來(lái)檢查和編輯C語(yǔ)言表達(dá)式或變量的值,可以用不同的格式顯示數(shù)值,可以顯示數(shù)組、結(jié)構(gòu)或指針等包含多個(gè)元素的變量,也可以顯示當(dāng)前函數(shù)的嵌套調(diào)用情況。在程序運(yùn)行或調(diào)試狀態(tài)下,用戶可以執(zhí)行菜單【View】|【W(wǎng)atch &.Call Stack Window】命令來(lái)顯示W(wǎng)atch & Call St

32、ack窗口。 Watch & Call Stack窗口的內(nèi)容會(huì)在程序執(zhí)行過(guò)程中遇到斷點(diǎn)或者停止運(yùn)行后顯示,在程序執(zhí)行過(guò)程中,可以執(zhí)行【View】|【Periodic Window Update】菜單命令,以使Watch & Call Stack窗口的內(nèi)容隨程序的執(zhí)行而周期性的顯示。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.8 Memory窗口,在程序運(yùn)行或調(diào)試狀態(tài)下,用戶可以執(zhí)行菜單【View】|【Memory Window】命令來(lái)顯示Memory窗口。Memory窗口能顯示各種存儲(chǔ)區(qū)域的內(nèi)容,Vision 3的Memory窗口總共提供了4個(gè)不同的存儲(chǔ)區(qū)域顯示頁(yè),用戶

33、可以用不同的顯示頁(yè)分別顯示不同的存儲(chǔ)器區(qū)域,例如一個(gè)顯示頁(yè)用于顯示代碼存儲(chǔ)區(qū)域,一個(gè)顯示頁(yè)用于顯示外部數(shù)據(jù)區(qū)域,一個(gè)顯示頁(yè)用于顯示內(nèi)部數(shù)據(jù)區(qū)域,根據(jù)用戶的存儲(chǔ)區(qū)域劃分情況而定。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.9 CPU 寄存器窗口,在程序運(yùn)行或調(diào)試狀態(tài)下,用戶可以單擊項(xiàng)目管理窗口下面的Regs標(biāo)簽頁(yè)來(lái)顯示CPU寄存器窗口。CPU寄存器窗口顯示了CPU寄存器中的值,CPU寄存器窗口位于項(xiàng)目管理窗口的Regs標(biāo)簽頁(yè),該窗口可以任意移動(dòng),,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.10 串行窗口,在程序運(yùn)行或調(diào)試狀態(tài)下,用戶可以執(zhí)行【Vie

34、w】|【Serial Window】|【UART #1】 命令來(lái)顯示串行窗口1 ,執(zhí)行【View】|【Serial Window】|【UART #2】命令來(lái)顯示串行窗口2。Vision 3提供了3 個(gè)串行窗口,用于PC機(jī)與模擬的51單片機(jī)窗口通信。 從模擬的51單片機(jī)的CPU串口輸出的數(shù)據(jù),將在這個(gè)串口窗口中顯示,而在串口中輸入的字符,將被輸入到模擬的51單片機(jī)的CPU串口中,利用這一點(diǎn),可以在沒(méi)有外部硬件的情況下模擬51 CPU的UART端口,,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.11 性能分析窗口,Vision 3的性能分析窗口可以顯示指定的函數(shù)或者程序段的執(zhí)

35、行情況,包括執(zhí)行指定的函數(shù)或者程序段的最大時(shí)間、最小時(shí)間、平均時(shí)間、總時(shí)間以及執(zhí)行次數(shù)等。 在程序運(yùn)行或調(diào)試狀態(tài)下,用戶執(zhí)行【View】|【Performance Analyzer Window】命令,將打開(kāi)性能分析窗口,。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.4.12 代碼覆蓋窗口,Vision 3具備代碼覆蓋功能,可以將已經(jīng)執(zhí)行的代碼段用特殊的顏色標(biāo)記出來(lái),在源代碼編輯窗口和反匯編窗口,已經(jīng)執(zhí)行過(guò)的代碼段的左邊,有淡綠色標(biāo)記,淡綠色是Vision 3設(shè)置的默認(rèn)顏色,用戶可以根據(jù)需要自定義一種喜歡的顏色。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4

36、.4.13 符號(hào)觀察窗口,執(zhí)行菜單命令【View】|【Symbol Window】將打開(kāi)符號(hào)顯示窗口,Vision 3的符號(hào)顯示窗口中,顯示了所有函數(shù)和模塊的公共的符號(hào)、當(dāng)前模塊或函數(shù)的局部符號(hào)、代碼行號(hào)和當(dāng)前所載入應(yīng)用所定義的CPU的特定的SFR(特殊功能寄存器)。 如圖所示是Keil C51自帶例子HELLO.c應(yīng)用中的符號(hào)窗口所顯示的公共符號(hào)的內(nèi)容。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5 項(xiàng)目的開(kāi)發(fā)與管理,本節(jié)描述了使用Vision 3進(jìn)行項(xiàng)目管理,介紹了如何創(chuàng)建一個(gè)簡(jiǎn)單的程序以及生成和維護(hù)項(xiàng)目的一些選項(xiàng),包括文件輸出選項(xiàng)、C51編譯器的關(guān)于代碼優(yōu)化的配置和V

37、ision 3項(xiàng)目管理器的特性等等。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.1 創(chuàng)建項(xiàng)目,執(zhí)行【Project】|【NewVision Project】菜單命令,將新創(chuàng)建一個(gè)項(xiàng)目。為項(xiàng)目建一個(gè)單獨(dú)的文件夾,然后選擇子文件夾并鍵入項(xiàng)目的名稱。Vision 3將創(chuàng)建一個(gè)文件名為“Project l.uv3”的新項(xiàng)目文件,新的項(xiàng)目文件包含了一個(gè)以默認(rèn)的文件名命名的目標(biāo)和文件組,可以在項(xiàng)目管理窗口的Files標(biāo)簽頁(yè)看到這些名字。 在項(xiàng)目創(chuàng)建之前,需要為新建的項(xiàng)目選擇一個(gè)CPU。在命名項(xiàng)目名稱后,彈出的對(duì)話框,其中顯示的是器件數(shù)據(jù)庫(kù),用戶只要選擇所需要的MCU就可以了。由于本

38、書(shū)是以ATMEL公司生產(chǎn)的AT89S51單片機(jī)為實(shí)例,因此在相應(yīng)的目錄下選擇AT89S51。 Kei1 C51幾乎支持所有的MCS-51內(nèi)核單片機(jī),選擇AT89S51之后,右邊一欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明,然后單擊【確定】按鈕。該選擇就為AT89S51器件設(shè)置了工具選項(xiàng),這種方式簡(jiǎn)化了工具的配置,為用戶減少了不少工作量。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.2 添加配置啟動(dòng)代碼,啟動(dòng)文件STARTUP.A51中包含了目標(biāo)啟動(dòng)代碼,可在每個(gè)project中加入這個(gè)文件,只要復(fù)位,則該文件立即執(zhí)行,其包括以下一些功能。 定義內(nèi)部RAM大小、外部RAM大小、可重入堆棧

39、位置; 清除內(nèi)部、外部或者以此頁(yè)為單元的外部存儲(chǔ)器; 按存儲(chǔ)模式初始化重入堆棧及堆棧指針; 初始化硬件堆棧指針; 開(kāi)始執(zhí)行main()函數(shù)。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.3 項(xiàng)目設(shè)置,Vision 3允許用戶為目標(biāo)硬件設(shè)置選項(xiàng),可以通過(guò)工具條圖標(biāo)打開(kāi),也可以用鼠標(biāo)右擊項(xiàng)目窗口中的Files標(biāo)簽頁(yè)中的Target1,在右鍵菜單中選擇【Options for Targe1】命令, Target:定義CPU; Output:定義Keil工具的輸出文件,并定義生成處理后的執(zhí)行用戶程序; Listing:定義Keil工具輸出的所有列表文件; C51:設(shè)置C51編譯器

40、的特別工具選項(xiàng); A51:設(shè)置匯編器的特殊工具選項(xiàng); BL51 Locate:定義不同類型的存儲(chǔ)器和存儲(chǔ)器的不同段位置; BL51 Misc:其他的與連接器相關(guān)的設(shè)置,如警告或存儲(chǔ)器指示; Debug:Vision 3的Debugger設(shè)置; Utilities:文件及其Group的特別選項(xiàng)。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.4 Target標(biāo)簽,單擊Target標(biāo)簽,其中各參數(shù)設(shè)置如下: (1)Xtal(MHz):是設(shè)置單片機(jī)的工作的頻率,默認(rèn)值是24.0MHz。如果項(xiàng)目中所使用的單片機(jī)的晶振用的是33MHz,例如本例中的89S51單片機(jī),那么在框里輸入實(shí)際

41、的晶振頻率。 (2)Use On-chip ROM(0 x00 x1FFF):這個(gè)選項(xiàng)是使用片上的Flash ROM。AT89S51有4KB的Flash ROM。是否使用片上Flash ROM取決于應(yīng)用系統(tǒng),如果用戶的單片機(jī)的EA引腳接高電平,則一定需要選中這個(gè)選項(xiàng);如果用戶的單片機(jī)的EA接低電平,表示使用外部ROM,那么不要選中該選項(xiàng)。 (3)Memory Model:變量存儲(chǔ)空間。用鼠標(biāo)單擊Memory Model的下拉箭頭,會(huì)有3個(gè)選項(xiàng),,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.5 Output標(biāo)簽,Output 標(biāo)簽的設(shè)置說(shuō)明如下。 (1)Select Fol

42、der for Objects:?jiǎn)螕暨@個(gè)按鈕可以選擇編譯之后的目標(biāo)文件存儲(chǔ)在哪個(gè)目錄,如果不設(shè)置,編譯之后的目標(biāo)文件就存儲(chǔ)在工程文件的目錄里。 (2)Name of Executable:設(shè)置生成的目標(biāo)文件的名字,默認(rèn)是跟工程的名字一樣,目標(biāo)文件可以生成庫(kù)或者obj和hex的格式。 (3)Create Executable:生成omf以及hex文件。一般選中Debug Information和Browse Information,這樣才有詳細(xì)的調(diào)試所需要的信息。比如進(jìn)行C語(yǔ)言程序的調(diào)試時(shí),如果不選Debug Informatio和Browse Information兩項(xiàng),調(diào)試時(shí)將無(wú)法看到C語(yǔ)言

43、的代碼而只有匯編代碼或者機(jī)器代碼。,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.5 Output標(biāo)簽,(4)Create Hex File:生成hex文件。這個(gè)選項(xiàng)一般是要選中的,很多用戶發(fā)現(xiàn)編譯之后沒(méi)有生成hex文件,這是因?yàn)檫@個(gè)選項(xiàng)沒(méi)有被選中的原因。要生成hex文件一定要選中該選項(xiàng)。 (5)Create Library:生成庫(kù)文件,選中該選項(xiàng)時(shí)將生成lib庫(kù)文件,根據(jù)用戶的需要是否要生成庫(kù)文件,一般的應(yīng)用是不生成庫(kù)文件的。 設(shè)置完成的Output標(biāo)簽如圖,單片機(jī)C語(yǔ)言開(kāi)發(fā)詳解第章 Keil C51單片機(jī)開(kāi)發(fā)環(huán)境,4.5.6 Listing標(biāo)簽,Keil C51在編譯之后除了聲稱目標(biāo)文件之外,還生成*.lst

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論