![KeilC51開發(fā)系統(tǒng)知識_第1頁](http://file4.renrendoc.com/view/42990c5b18b7e098ba62a085e25f21e5/42990c5b18b7e098ba62a085e25f21e51.gif)
![KeilC51開發(fā)系統(tǒng)知識_第2頁](http://file4.renrendoc.com/view/42990c5b18b7e098ba62a085e25f21e5/42990c5b18b7e098ba62a085e25f21e52.gif)
![KeilC51開發(fā)系統(tǒng)知識_第3頁](http://file4.renrendoc.com/view/42990c5b18b7e098ba62a085e25f21e5/42990c5b18b7e098ba62a085e25f21e53.gif)
![KeilC51開發(fā)系統(tǒng)知識_第4頁](http://file4.renrendoc.com/view/42990c5b18b7e098ba62a085e25f21e5/42990c5b18b7e098ba62a085e25f21e54.gif)
![KeilC51開發(fā)系統(tǒng)知識_第5頁](http://file4.renrendoc.com/view/42990c5b18b7e098ba62a085e25f21e5/42990c5b18b7e098ba62a085e25f21e55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Keil C51開開發(fā)系統(tǒng)基基本知識1. 第一一節(jié) 系統(tǒng)統(tǒng)概述 Keil C51是是美國Keeil SSoftwware公公司出品的的51系列列兼容單片片機C語言言軟件開發(fā)發(fā)系統(tǒng),與與匯編相比比,C語言言在功能上上、結(jié)構(gòu)性性、可讀性性、可維護護性上有明明顯的優(yōu)勢勢,因而易易學(xué)易用。用過匯編編語言后再再使用C來來開發(fā),體體會更加深深刻。 HYPERLINK Keil C51軟軟件提供豐豐富的庫函函數(shù)和功能能強大的集集成開發(fā)調(diào)調(diào)試工具,全全Winddows界界面。另外外重要的一一點,只要要看一下編編譯后生成成的匯編代代碼,就能能體會到KKeil C51生生成的目標(biāo)標(biāo)代碼效率率非常之高高,多數(shù)語語句
2、生成的的匯編代碼碼很緊湊,容容易理解。在開發(fā)大大型軟件時時更能體現(xiàn)現(xiàn)高級語言言的優(yōu)勢。 下面詳細(xì)介介紹Keiil C551開發(fā)系系統(tǒng)各部分分功能和使使用。 2. 第二二節(jié) Keeil CC51單片片機軟件開開發(fā)系統(tǒng)的的整體結(jié)構(gòu)構(gòu) C51工具具包的整體體結(jié)構(gòu),如如圖(1)所示,其其中uViisionn與Ishhell分分別是C551 foor Wiindowws和foor Doos的集成成開發(fā)環(huán)境境(IDEE),可以以完成編輯輯、編譯、連接、調(diào)調(diào)試、仿真真等整個開開發(fā)流程。開發(fā)人員員可用IDDE本身或或其它編輯輯器編輯CC或匯編源源文件。然然后分別由由C51及及A51編編譯器編譯譯生成目標(biāo)標(biāo)文件
3、(.OBJ)。目標(biāo)文文件可由LLIB511創(chuàng)建生成成庫文件,也也可以與庫庫文件一起起經(jīng)L511連接定位位生成絕對對目標(biāo)文件件(.ABBS)。AABS文件件由OH551轉(zhuǎn)換成成標(biāo)準(zhǔn)的HHex文件件,以供調(diào)調(diào)試器dSScopee51或ttScoppe51使使用進(jìn)行源源代碼級調(diào)調(diào)試,也可可由仿真器器使用直接接對目標(biāo)板板進(jìn)行調(diào)試試,也可以以直接寫入入程序存貯貯器如EPPROM中中。 圖(1) C51工工具包整體體結(jié)構(gòu)圖 3. 第三三節(jié) Keeil CC51工具具包的安裝裝 1. 1. C511 forr Doss 在Winddows下下直接運行行軟件包中中DOSC51DDOS.eexe然后后選擇安裝裝
4、目錄即可可。完畢后后欲使系統(tǒng)統(tǒng)正常工作作須進(jìn)行以以下操作(設(shè)C:C51為為安裝目錄錄): 修改Auttoexeec.baat,加入入 path=C:CC51BBin Set CC51LIIB=C:C511LIBB Set CC51INNC=C:C511INCC 然后運行AAutoeexec.bat 2. 2. C511 forr Winndowss的安裝及及注意事項項: 在Winddows下下運行軟件件包中WIINSeetup.exe,最最好選擇安安裝目錄與與C51 for Dos相相同,這樣樣設(shè)置最簡簡單(設(shè)安安裝于C:C511目錄下)。然后將將軟件包中中cracck目錄中中的文件拷拷入C:
5、C51Bin目目錄下。 4. 第四四節(jié) Keeil CC51工具具包各部分分功能及使使用簡介 1. 1. C511與A511 1. (11) C551 C51是CC語言編譯譯器,其使使用方法為為: C51 ssourccefille編譯譯控制指令令 或者 C51 commmanddfilee 其中souurceffile為為C源文件件(.C)。大量的的編譯控制制指令完成成C51編編譯器的全全部功能。包控C551輸出文文件C.LLST,.OBJ,.I和.SSRC文件件的控制。源文件(.C)的的控制等,詳詳見第五部部分的具體體介紹。 而Commmandffile為為一個連接接控制文件件其內(nèi)容包包括
6、:.CC源文件及及各編譯控控制指令,它它沒有固定定的名字,開開發(fā)人員可可根據(jù)自己己的習(xí)慣指指定,它適適于用控制制指令較多多的場合。 2. (22) A551 A51是匯匯編語言編編譯器,使使用方法為為: A51 ssourccefille編譯譯控制指令令 或A51 coommanndfille 其中souurceffile為為匯編源文文件(.aasm或.a51),而編譯譯控制指令令的使用與與其它匯編編如ASMM語言類似似,可參考考其他匯編編語言材料料。 Commaand中的的Commmandffile類類似,它使使A51使使用和修改改方便。 2. 2. L511和BL551 1. (11) L
7、551 L51是KKeil C51軟軟件包提供供的連接/定位器,其其功能是將將編譯生成成的OBJJ文件與庫庫文件連接接定位生成成絕對目標(biāo)標(biāo)文件(.ABS),其使用用方法為: L51 目目標(biāo)文件列列表庫文文件列表 too outtputffile 連接接控制指令令 或 L511 Coommanndfille 源程序的多多個模塊分分別經(jīng)C551與A551編譯后后生成多個個OBJ文文件,連接接時,這些些文件全列列于目標(biāo)文文件列表中中,作為輸輸入文件,如如果還需與與庫文件(.LiBB)相連接接,則庫文文件也必須須列在其后后。outtputffile為為輸文件名名,缺少時時為第一模模塊名,后后綴為.AA
8、BS。連連接控制指指令提供了了連接定位位時的所有有控制功能能。Commmanddfilee為連接控控制文件,其其具體內(nèi)容容是包括了了目標(biāo)文件件列表,庫庫文件列表表及輸出文文件、連接接控制命令令,以取代代第一種繁繁瑣的格式式,由于目目標(biāo)模塊庫庫文件大多多不止1個個,因而第第2種方法法較多見,這這個文件名名字也可由由使用者隨隨意指定。 2. (22) Bll51 BL51也也是C511軟件包的的連接/定定位器,其其具有L551的所有有功能,此此外它還具具有以下33點特別之之處: a. 可以以連接定位位大于644kByttes的程程序。 b. 具有有代碼域及及域切換功功能(CoodeBaankinn
9、g & Bankk Swiitchiing) c. 可用用于RTXX51操作作系統(tǒng) RTX511是一個實實時多任務(wù)務(wù)操作系統(tǒng)統(tǒng),它改變變了傳統(tǒng)的的編程模式式,甚至不不必用maain( )函數(shù),單單片機系統(tǒng)統(tǒng)軟件向RRTOS發(fā)發(fā)展是一種種趨勢,這這種趨勢對對于1866和3866及68KK系列CPPU更為明明顯和必須須,對80051因CCPU較為為簡單,程程序結(jié)構(gòu)等等都不太復(fù)復(fù)雜,RTTX51作作用顯得不不太突出,其其專業(yè)版軟軟件PK551軟件包包甚至不包包括RTXX51Fuull,而而只有一個個RTX551TINNY版本的的RTOSS。RTXX51 TTINY適適用于無外外部RAMM的單片機機系
10、統(tǒng),因因而可用面面很窄,在在本文中不不作介紹。Bankk swiitchiing技術(shù)術(shù)因使用很很少也不作作介紹。 3. 3. DSccope551,Tsscopee51及MMonittor511 1. (11) dSScopee51 dScoppe51是是一個源級級調(diào)試器和和模擬器,它它可以調(diào)試試由C511編譯器、A51匯匯編器、PPL/M-51編譯譯器及ASSM511匯編器產(chǎn)產(chǎn)生的程序序。它不需需目標(biāo)板(ffor wwindoows也可可通過moon51接接目標(biāo)板),只只能進(jìn)行軟軟件模擬,但但其功能強強大,可模模擬CPUU及其外圍圍器件,如如內(nèi)部串口口,外部II/O及定定時器等,能能對嵌入式
11、式軟件功能能進(jìn)行有效效測試。 其使用方法法為: DS51debuugfilleIINIT(inittfilee) 其中debbugfiile是一一個Hexx格式的88051文文件,即待待調(diào)試的文文件其為可可選的,可可在進(jìn)入ddScoppe51后后用loaad命令裝裝入。 Initffile為為一個初使使化文件,它它在啟動ddScoppe51后后,在deebugffile裝裝入前裝入入,裝有一一些dSccope的的初使化參參數(shù)及常用用調(diào)試函數(shù)數(shù)等。下面面是一個ddScoppe.inni文件(for dos)的內(nèi)容: Load .dss5188051.iof Map 00,0 xfffff dSc
12、oppe51 for Winddows則則直接用鼠鼠標(biāo)進(jìn)入,然然后用looad裝入入待調(diào)文件件。 2. (22) tSScopee51 與dScoope511不同的是是Scoppe51必必須帶目標(biāo)標(biāo)板,目前前它可以通通過兩種方方式訪問目目標(biāo)板。(1) 通通過EMuul51在在線仿真器器,tSccope551為該仿仿真器準(zhǔn)備備了一個動動態(tài)連接文文件EMUUL51.IOT,但但該方法必必須配合該該仿真器。(2) 通過Moonitoov51監(jiān)監(jiān)控程序,這這種方法是是可行的,ttScoppe51為為訪問Moonitoor51專專門帶有MMON511.IOTT連接程序序,使用時時可通過串串口及監(jiān)控控程序
13、來調(diào)調(diào)試目標(biāo)板板。 其使用方法法為: TS51INITT() 其中為一個個初使化文文件。 進(jìn)入TS551后,必必須裝入IIOT文件件,可用的的有MONN51.IIOT及EEMUL551.IOOT兩種,如如裝入MOON51.IOT: Load.C:CC51TTS51MON551.IOOT CPPUTYPPE(800517) 可惜的是ttScoppe51只只有forr Doss的版本。 3. (33) Moonitoor 511 Monittor511是一個監(jiān)監(jiān)控程序通通過PC機機的串口與與目標(biāo)板進(jìn)進(jìn)行通信,MMonittor操作作需要MOON51或或dScoope511 forr Winndow
14、ss,后面部部分將對MMonittor511做較為詳詳細(xì)的介紹紹。 4. 4. Ishhell及及uVission 1. (11) Isshelll forr Doss 這是一個ffor DDos的IIDE,直直接在命令令行鍵入IIshelll,則進(jìn)進(jìn)入該環(huán)境境,它使用用簡單方便便。其命令令行與DOOS命令行行具有同樣樣的功能,對對單模塊的的Projject直直接由菜單單進(jìn)行編譯譯連接,對對多模塊的的projject。則通過批批處理,BBAT文件件進(jìn)行編譯譯連接,然然后通過菜菜單控制由由dScoope511或tSccope551對程序序進(jìn)行調(diào)試試,因為是是for dos的的,不做太太詳細(xì)介紹紹
15、。 2. (22) uVVisioon foor Wiindowws uVisiion ffor WWindoows是一一個標(biāo)準(zhǔn)的的Winddows應(yīng)應(yīng)用程序,它它是C511的一個集集成軟件開開發(fā)平臺,具具有源代碼碼編輯、pprojeect管理理、集成的的makee等功能,它它的人機界界面友好,操操作方便,是是開發(fā)者的的首選,具具體配置及及使用見第第五部分。 2. 第二二章 Keeil CC51軟件件使用詳解解 1. 第一一節(jié) Keeil CC51編譯譯器的控制制指令 C51編譯譯器的控制制指令分為為三類:源源文件控制制類,目標(biāo)標(biāo)文件控制制類及列表表控制類。 1. 1. 源文件件控制類 NOE
16、XTTEND:C51源源文件不允允許使用AANSI C擴展功功能。 DEFINNE(DFF):定義義預(yù)處理(在C511命令行)。 2. 2. 目標(biāo)文文件(Obbjectt)控制類類: COMPAACT LLARGEE SMAALL 選選編譯模式式 DEBUGG(DB) 包含調(diào)調(diào)試信息,以以供仿真器器或dSCCope551使用。 NOAMAAKE(NNOAM) 禁止AAutoMMake信信息記錄 NOREGGPARMMS 禁止止用寄存器器傳遞參數(shù)數(shù) OBJECCTEXTTEND(OE) Objeect文件件包含附加加變量類型型信息 OPTIMMIZE(OT) 指定優(yōu)化化級別 REG) 指定一個個
17、寄存器使使用的文件件以供整體體優(yōu)化用 REGISSTERBBANK(RB) 指定一個個供絕對寄寄存器訪問問的寄存器器區(qū)名 SRC 不不生成目標(biāo)標(biāo)文件只生生成匯編源源文件 其它控件不不常用。 3. 3. 列表文文件(liistinng)控制制類: CODE(CD):向列表文文件加入?yún)R匯編列表 LISTIINCLUUDE(LLC):顯顯示inddude文文件 SYMBOOLS(SSB):列列表文件包包括模塊內(nèi)內(nèi)所有符號號的列表 WARNIINGLEEVEL(WL):選擇“警警告”級別別 2. 第二二節(jié) dSScopee51的使使用 1. 1. dSccope551 foor Doos 總的來說dd
18、Scoppe51具具有以下特特性: l 高級語語言顯示模模式 l 集成硬硬件環(huán)境模模擬 l 單步或或“GO”執(zhí)行模式式 l 存儲器器、寄存器器及變量訪訪問 l Wattch表達(dá)達(dá)式之值 l 函數(shù)與與信號功能能 下面,具體體說明在進(jìn)進(jìn)入dSccope551 foor Doos之后,如如何實現(xiàn)上上述功能,ddScoppe51采采用下拉菜菜單格式和和窗口顯示示控制,共共有l(wèi)annguagge、seeriall、exee、reggisteer四個窗窗口,其中中exe為為命令行窗窗口,laanguaage為程程序窗口,sseriaal為串口口窗,reegistter為寄寄存器窗。 1. (11) 高級級
19、語言顯示示模式 單擊主菜單單中的“VView”,第一欄欄中的三條條命令“HHighllevell”、“MMixedd”、“AAssemmbly”分別對所所裝入的程程序按照“高級”、“混合級級”及“匯匯編級”三三種方式顯顯示,以方方便調(diào)試使使用。 2. (22) 集成成硬件環(huán)境境模擬顯示示 主菜單中“Periipherral”各各條能顯示示模擬硬件件環(huán)境的狀狀態(tài),其中中: i/o PPort:顯示各II/O口之之值,對88031而而言SFRR中的P11、P2、P3、PP0與引腳腳之值分別別列出: Interrruptt:顯示55個中斷源源的入口模模式是否允允許,優(yōu)先先級等中斷斷狀態(tài)。 Timer
20、r:顯示各各定時/計計數(shù)器的模模式,初始始值狀態(tài)等等。 int MMessaage:中中斷信息允允許,如為為允許(“”出出現(xiàn)),則則當(dāng)中斷申申請時,顯顯示中斷源源信息。比比如當(dāng)中斷斷發(fā)生時會會顯示: “inteerruppt Tiimer 0 occcureed”等 A/D cconveerterr: 顯示A/DD轉(zhuǎn)換器狀狀態(tài)無時,則則提示“無無”。 Seriaal:串口口信息顯示示,包括串串口模式、波特產(chǎn)等等 Otherr:其它器器件,如為為80311則顯示“ 無” 3. (33) 單步步或“Goo”執(zhí)行 “F8”單單步執(zhí)行,“F5”全速執(zhí)執(zhí)行到斷點點?;蜻x主主菜單中TTracee單步執(zhí)行行
21、CPU中中的Go全全速執(zhí)行。 4. (44) 存儲儲器寄存器器及變量訪訪問 外部存儲器器管理MAAP菜單:設(shè)置(sset)、取消(rresett)、顯示示(Dissplayy)處理可可用存儲空空間。 修改Codde代碼:ASM命命令 存儲器顯示示命令:DD 類別為為(X、DD、I、BB、C) 修改存儲器器命令:EE 有以下下幾種命令令EB、EEC、EII、EL、EF、EEP 復(fù)雜數(shù)據(jù)類類型顯示:Objeect命令令;用以顯顯示結(jié)構(gòu)或或數(shù)組的內(nèi)內(nèi)容。欲使使此命令有有效,C551編譯器器必須有DDB及OBBJECTTEXTEEND兩條條。 反匯編命令令:U 5. (55) “WWatchh”表達(dá)式
22、式之值 在Vieww菜單的“Watcch”一欄欄中有四項項:其中包包括定義WWatchh Poiint(DDefinne)、刪刪除Wattch PPointt(remmove,killl alll),及自自動更新選選項。 也可用WSS、WK等等命令代替替,下面具具體看“表表達(dá)式”類類型: dScoppe51一一次最多可可設(shè)16個個WtchhPoinnt表達(dá)式式,顯示于于Watcch Wiindoww之中,表表達(dá)式可以以是簡單變變量,也可可是復(fù)雜數(shù)數(shù)據(jù)類型如如結(jié)構(gòu)、數(shù)數(shù)組和指向向結(jié)構(gòu)的指指針等,例例如: WS *ptimme WS pptimeehouur WS ssome_recoordoo,
23、annalogg等等 6. (66) 關(guān)于于.IOFF文件 啟動DS551后必須須裝入.IIOF文件件才能使CCPU及PPerippheraal各項起起作用,這這個函數(shù)的的使用是依依據(jù)80551系列CCPU的不不同特點,裝裝入80551各CPPU硬件設(shè)設(shè)備模擬驅(qū)驅(qū)動文件,比比如80331CPUU就必須lload DS511目錄下的的80511.IOFF。 2. 2. dSccope for Winddows dScoppe foor wiindowws具有ddScoppe foor doos的全部部功能,此此外,它還還具有以下下明顯的優(yōu)優(yōu)點: (1) 標(biāo)標(biāo)準(zhǔn)的Wiindowws界面,操操作更容
24、易易更簡單; (2) 常常用操作多多用對話框框,而非DDos的行行命令方式式; (3) 窗窗口資源更更加豐富:存儲器窗窗口、覆蓋蓋率分析、運行狀態(tài)態(tài)分析窗口口,加強了了調(diào)試功能能; 因為dSccope for Winddows功功能強大,具具體操作在在第八章詳詳細(xì)介紹。 3. 第三三節(jié) Moonitoor51及及其使用 1. 1. Monnitorr51對硬硬件的要求求 (1) 硬硬件系統(tǒng)為為51系列列CPU; (2) 帶帶5K外部部程序存儲儲器(從OO地址開始始),存放放Moniitor551程序; (3) 2256Byytes的的外部數(shù)據(jù)據(jù)存儲器以以及5K的的跟蹤緩沖沖區(qū),此外外,外部數(shù)數(shù)
25、據(jù)存儲器器必須足夠夠容納所有有應(yīng)用程序序代碼及數(shù)數(shù)據(jù),且所所有外部數(shù)數(shù)據(jù)存儲器器必須為馮馮諾伊曼曼存儲器,即即能一致訪訪問XDAATA與CCode空空間。 (4) 一一個定時器器作為波特特率發(fā)生器器供串口使使用; (5) 66 Byttes的空空余堆棧。 2. 2. Monn51的使使用 Mon511的使用途途徑有三種種方式: (1) DDos行命命令方式 即先用innstalll對MOON51進(jìn)進(jìn)行配置,然然后用MOON51進(jìn)進(jìn)入Monnitorr狀態(tài),啟啟用各種命命令對Moonitoor51進(jìn)進(jìn)行調(diào)試。 (2) ttScoppe51方方式 啟動tSccope551裝入TTS51目目錄下的M
26、MON511.IOTT驅(qū)動文件件,與目標(biāo)標(biāo)板通信。 (3) ddScoppe51 for Winddows方方式 在選CPUU驅(qū)動文件件時,選“MON551.dlll”,則則檢查目標(biāo)標(biāo)板并進(jìn)入入MON551狀態(tài)。 3. 3. MONN51的配配置 (1) MMON511 forr Doss的配置 運行insstalll文件(在在MON551目錄下下),不同同的參數(shù)可可以配置不不同的硬件件環(huán)境。IINSTAALL SSeriaaltyppe xxdstaastarrtcoodesttartbankkPRROMCHHECK,具具體說明見見MON551幫助文文件或使用用手冊。 (2) MMON511
27、 forr Winndowss的配置 在啟用MOON51.dll時時,會使得得系統(tǒng)自動動檢查目標(biāo)標(biāo)板連接,如如配置不對對,則彈出出“Connfiguuratiion”對對話框,設(shè)設(shè)置PC串串口,波特特率等,完完畢單擊“applly”有效效。 4. 4. 串口連連接圖: 收發(fā)交叉互互連,RTTS、CTTS直連,DDSR、DDTR直連連,具體引引腳排列參參考串口資資料。 5. 5. MONN51命令令及使用 詳細(xì)的MOON51命命令可參閱閱幫助。 4. 第四四節(jié) 集成成開發(fā)環(huán)境境(IDEE)的使用用 1. 1. Ishhell for Dos的的使用 進(jìn)入Ishhell之之后看到兩兩個窗口:一個是
28、文文件窗口,一一個是Doos命令行行窗口,窗窗口上方是是下拉式的的命令菜單單,其中的的Filees控制文文件窗口的的顯隱。 使用Ishhell,第第一步就是是配置系統(tǒng)統(tǒng),即要學(xué)學(xué)習(xí)兩個文文件的修改改與創(chuàng)建: 1. (11) Isshelll.CFGG文件 每一個prrojecct都有一一個Ishhell.CFG,其其中存放有有“Opttion菜菜單和Seetup菜菜單下的部部分信息;Belll enaabledd、Monnochrrome enabbled、Edittor SSeleccted、CRT Linees、taargett envviromment、namee of userr ed
29、iit、Auutomaatic loadd forr connfiguuratiion eenablled、 enabbled、 forr 、trransllate commmand linee conntrolls、prrojecct naame等。 對每個prrojecct都必須須設(shè)置以上上信息,然然后存盤“setuup”的的的“savve”,這這樣才可正正式開始下下面工作。 2. (22) ISShelll.coll文件 對IDE顏顏色設(shè)置,如如不改動,可可以缺省為為主。 3. (33) CDDF文件 該文件位于于BIN目目錄下,每每一文件定定義一組外外部函數(shù)工工具包,即即定義外部部環(huán)境
30、如88051.CDF,UUSER.CDF等等,開發(fā)者者可修改CCDF文件件,供自己己使用,至至于CDFF文件內(nèi)容容可查看一一下80551.CDDF即可知知道。注意意.CDFF文件是IIshelll系統(tǒng)的的核心所在在,不同的的CDF文文件可使本本IDE適適用于不同同的編譯、連接系統(tǒng)統(tǒng),即本IIDE并不不僅適于CC51。 下面談一談?wù)凙utoomakee工具: C51的AAutommake是是一個prrojecct管理器器,在80051工具具包中以O(shè)OBJECCT文件形形式保留了了一個prrojecct的信息息,AuttoMakke用這些些信息來進(jìn)進(jìn)行proojectt管理,一一旦手工建建立一個p
31、projeect,AAutommake可可生成一個個新的OBBJECTT,AuttoMakke利用此此文件來編編譯那些修修改過的文文件。 Autommake支支持C511、A511、L511/BL551、C1166、AA166、L1666等編譯連連接器。點點中主菜單單中的Auutomaake即運運行本工具具。 Ishelll foor Doos使用比比較繁瑣,推推薦使用uuVisiion ffor wwindoows。 2. 2. uViisionn forr winndowss的使用 uVisiion是一一個標(biāo)準(zhǔn)的的winddows應(yīng)應(yīng)用程序,其其編譯功能能、文件處處理功能、projject
32、處處理功能、窗口功能能以及工具具引用功能能(如A551、C551、PLL/M411、BL551 dSScopee等)等都都較Ishhell for Dos要要強得多。 uVisiion采用用BL511作連接器器,因為BBL51兼兼容L511,所以一一切能在DDos下工工作的prrojecct都可以以到uViisionn中進(jìn)行連連接調(diào)試。 uVisiion采用用dScoope ffor wwindoows作調(diào)調(diào)試器,該該調(diào)試器支支持MONN51及系系統(tǒng)模擬兩兩種方式,功功能較foor DOOS要強大大好用,調(diào)調(diào)試功能強強大。 注意: (1) OOptioon菜單下下的各項要要會使用,其其中A51
33、1、C511、PL/M51、BL511定義各文文件所使用用的編譯、連接控制制指令,ddScoppe定義一一個dSccope初初始化文件件。Makke則是定定義一個mmake文文件。 (2) 進(jìn)進(jìn)入調(diào)試是是在RUNN菜單下運運行dSccope。 (3) pprojeect中包包括新建、打開、修修改、更新新、編譯、連接等ppojecct處理,具具體使用可可參考后面面的例子。 3. 第三三章 Keeil CC51 vvs 標(biāo)準(zhǔn)準(zhǔn)C 深入理解并并應(yīng)用C551對標(biāo)準(zhǔn)準(zhǔn)ANSIIC的擴展展是學(xué)習(xí)CC51的關(guān)關(guān)鍵之一。因為大多多數(shù)擴展功功能都是直直接針對88051系系列CPUU硬件的。大致有以以下8類: l
34、 80551存儲類類型及存儲儲區(qū)域 l 存儲模模式 l 存儲器器類型聲明明 l 變量類類型聲明 l 位變量量與位尋址址 l 特殊功功能寄存器器(SFRR) l C511指針 l 函數(shù)屬屬性 具體說明如如下(80031為缺缺省CPUU)。 1. 第一一節(jié) Keeil CC51擴展展關(guān)鍵字 C51 VV4.0版版本有以下下擴展關(guān)鍵鍵字(共119個): _at_ idatta sffr16 alieen innterrrupt smalll bdataa larrge _taskk_ Coode bbit ppdataa usingg reeentraant xxdataa commpactt sb
35、iit daata ssfr 2. 第二二節(jié) 內(nèi)存存區(qū)域(MMemorry Arreas): 1. 1. Praagramm Areea: 由Codee說明可有有多達(dá)644kByttes的程程序存儲器器 2. 2. Intternaal Daata MMemorry: 內(nèi)部數(shù)據(jù)存存儲器可用用以下關(guān)鍵鍵字說明: data:直接尋址址區(qū),為內(nèi)內(nèi)部RAMM的低1228字節(jié) 00H7FH idataa:間接尋尋址區(qū),包包括整個內(nèi)內(nèi)部RAMM區(qū) 000HFFFH bdataa:可位尋尋址區(qū), 20H2FH 3. 3. Extternaal Daata MMemorry 外部RAMM視使用情情況可由以以下
36、關(guān)鍵字字標(biāo)識: xdataa:可指定定多達(dá)644KB的外外部直接尋尋址區(qū),地地址范圍00000HH0FFFFFH pdataa:能訪問問1頁(225bByytes)的外部RRAM,主主要用于緊緊湊模式(Comppact Modeel)。 4. 4. Speeciacc Funnctioon Reegistter MMemorry 8051提提供1288Bytees的SFFR尋址區(qū)區(qū),這區(qū)域域可位尋址址、字節(jié)尋尋址或字尋尋址,用以以控制定時時器、計數(shù)數(shù)器、串口口、I/OO及其它部部件,可由由以下幾種種關(guān)鍵字說說明: sfr:字字節(jié)尋址 比如 ssfr PP0=0 xx80;為為PO口地地址為80
37、0H,“”后HFFH之之間的常數(shù)數(shù)。 sfr166:字尋址址,如sffr16 T2=00 xcc;指定Tiimer22口地址TT2L=0 xxcc TT2H=00 xCD sbit:位尋址,如如sbitt EA=0 xAFF;指定第第0 xAFF位為EAA,即中斷斷允許 還可以有如如下定義方方法: sbit 0V=PPSW22;(定義義0V為PPSW的第第2位) sbit 0V00XDO2;(同同上) 或bit 0V-0 xD22(同上)。 3. 第三三節(jié) 存儲儲模式 存儲模式?jīng)Q決定了沒有有明確指定定存儲類型型的變量,函函數(shù)參數(shù)等等的缺省存存儲區(qū)域,共共三種: 1. 1. Smaall模式式
38、所有缺省變變量參數(shù)均均裝入內(nèi)部部RAM,優(yōu)優(yōu)點是訪問問速度快,缺缺點是空間間有限,只只適用于小小程序。 2. 2. Commpactt模式 所有缺省變變量均位于于外部RAAM區(qū)的一一頁(2556Byttes),具具體哪一頁頁可由P22口指定,在在STARRTUP.A51文文件中說明明,也可用用pdatta指定,優(yōu)優(yōu)點是空間間較Smaall為寬寬裕速度較較Smalll慢,較較largge要快,是是一種中間間狀態(tài)。 3. 3. larrge模式式 所有缺省變變量可放在在多達(dá)644KB的外外部RAMM區(qū),優(yōu)點點是空間大大,可存變變量多,缺缺點是速度度較慢。 提示:存儲儲模式在CC51編譯譯器選項中中
39、選擇。 4. 第四四節(jié) 存儲儲類型聲明明 變量或參數(shù)數(shù)的存儲類類型可由存存儲模式指指定缺省類類型,也可可由關(guān)鍵字字直接聲明明指定。各各類型分別別用:coode,ddata,idatta,xddata,pdatta說明,例例: data uar11 char codee arrray “hhelloo!”; unsiggned charr xdaata aarr110444; 5. 第五五節(jié) 變量量或數(shù)據(jù)類類型 C51提供供以下幾種種擴展數(shù)據(jù)據(jù)類型: bit 位位變量值為為0或1 sbit 從字節(jié)中中定義的位位變量 00或1 sfr ssfr字節(jié)節(jié)地址 002555 sfr166 sfrr字地址
40、 0655535 其余數(shù)據(jù)類類型如:cchar,enumm,shoort,iint,llong,floaat等與AANSI C相同。 6. 第六六節(jié) 位變變量與聲明明 1. 1. bitt型變量 bit型變變量可用變變量類型,函函數(shù)聲明、函數(shù)返回回值等,存存貯于內(nèi)部部RAM220H22FH。 注意: (1) 用用praagma disaable說說明函數(shù)和和用“ussign”指定的函函數(shù),不能能返回biit值。 (2) 一一個bitt變量不能能聲明為指指針,如bbit *ptr;是錯誤的的 (3) 不不能有biit數(shù)組如如:bitt arrr5;錯誤。 2. 2. 可位尋尋址區(qū)說明明20H2F
41、H 可作如下定定義: int bbdataa i; char bdatta arrr3, 然后: sbit bitooin00;sbiit biit15=I155; sbit arr007=arrr07;ssbit arr115=arrri7; 7. 第七七節(jié) Keeil CC51指針針 C51支持持一般指針針(Gennericc Poiinterr)和存儲儲器指針(Memoory_SSpeciific Poinnter). 1. 1. 一般指指針 一般指針的的聲明和使使用均與標(biāo)標(biāo)準(zhǔn)C相同同,不過同同時還可以以說明指針針的存儲類類型,例如如: long * sttate;為一個指指向lonng
42、型整數(shù)數(shù)的指針,而而statte本身則則依存儲模模式存放。 char * xddata ptr;ptr為為一個指向向charr數(shù)據(jù)的指指針,而pptr本身身放于外部部RAM區(qū)區(qū),以上的的longg,chaar等指針針指向的數(shù)數(shù)據(jù)可存放放于任何存存儲器中。 一般指針本本身用3個個字節(jié)存放放,分別為為存儲器類類型,高位位偏移,低低位偏移量量。 2. 2. 存儲器器指針 基于存儲器器的指針說說明時即指指定了存貯貯類型,例例如: char dataa * sstr;sstr指向向dataa區(qū)中chhar型數(shù)數(shù)據(jù) int xxdataa * ppow; pow指指向外部RRAM的iint型整整數(shù)。 這種
43、指針存存放時,只只需一個字字節(jié)或2個個字節(jié)就夠夠了,因為為只需存放放偏移量。 3. 3. 指針轉(zhuǎn)轉(zhuǎn)換 即指針在上上兩種類型型之間轉(zhuǎn)化化: l 當(dāng)基于于存儲器的的指針作為為一個實參參傳遞給需需要一般指指針的函數(shù)數(shù)時,指針針自動轉(zhuǎn)化化。 l 如果不不說明外部部函數(shù)原形形,基于存存儲器的指指針自動轉(zhuǎn)轉(zhuǎn)化為一般般指針,導(dǎo)導(dǎo)致錯誤,因因而請用“inccludee”說明所所有函數(shù)原原形。 l 可以強強行改變指指針類型。 8. 第八八節(jié) Keeil CC51函數(shù)數(shù) C51函數(shù)數(shù)聲明對AANSI C作了擴擴展,具體體包括: 1. 1. 中斷函函數(shù)聲明: 中斷聲明方方法如下: void seriial_IISR
44、 () innterrrupt 4 uusingg 1 /* ISSR */ 為提高代碼碼的容錯能能力,在沒沒用到的中中斷入口處處生成irret語句句,定義沒沒用到的中中斷。 /* deefinee nott useed innterrrupt, so geneeratee IRRET in ttheirr enttrancce */ void exteern0_ISR() innterrrupt 0 /* nnot uused */ void timeer0_IISR () innterrrupt 1 /* nnot uused */ void exteern1_ISR() innterrr
45、upt 2 /* nnot uused */ void timeer1_IISR () innterrrupt 3 /* nnot uused */ void seriial_IISR () innterrrupt 4 /* nnot uused */ 2. 2. 通用存存儲工作區(qū)區(qū) 3. 3. 選通用用存儲工作作區(qū)由ussing x聲明,見見上例。 4. 4. 指定存存儲模式 由smalll coompacct 及l(fā)largee說明,例例如: void fun11(voiid) ssmalll 提示:smmall說說明的函數(shù)數(shù)內(nèi)部變量量全部使用用內(nèi)部RAAM。關(guān)鍵鍵的經(jīng)常性性的耗時的的地方可
46、以以這樣聲明明,以提高高運行速度度。 5. 5. #prragmaa dissablee 在函數(shù)前聲聲明,只對對一個函數(shù)數(shù)有效。該該函數(shù)調(diào)用用過程中將將不可被中中斷。 6. 6. 遞歸或或可重入函函數(shù)指定 在主程序和和中斷中都都可調(diào)用的的函數(shù),容容易產(chǎn)生問問題。因為為51和PPC不同,PPC使用堆堆棧傳遞參參數(shù),且靜靜態(tài)變量以以外的內(nèi)部部變量都在在堆棧中;而51一一般使用寄寄存器傳遞遞參數(shù),內(nèi)內(nèi)部變量一一般在RAAM中,函函數(shù)重入時時會破壞上上次調(diào)用的的數(shù)據(jù)??煽梢杂靡韵孪聝煞N方法法解決函數(shù)數(shù)重入: a、在相應(yīng)應(yīng)的函數(shù)前前使用前述述“#prragmaa dissablee”聲明,即即只允許主主
47、程序或中中斷之一調(diào)調(diào)用該函數(shù)數(shù); b、將該函函數(shù)說明為為可重入的的。如下: void funcc(parram) rreenttrantt; KeilCC51編譯譯后將生成成一個可重重入變量堆堆棧,然后后就可以模模擬通過堆堆棧傳遞變變量的方法法。 由于一般可可重入函數(shù)數(shù)由主程序序和中斷調(diào)調(diào)用,所以以通常中斷斷使用與主主程序不同同的R寄存存器組。 另外,對可可重入函數(shù)數(shù),在相應(yīng)應(yīng)的函數(shù)前前面加上開開關(guān)“#ppragmma nooareggs”,以以禁止編譯譯器使用絕絕對寄存器器尋址,可可生成不依依賴于寄存存器組的代代碼。 7. 7. 指定PPL/M51函數(shù)數(shù) 由alieen指定。 4. 第四四章
48、 Keeil CC51高級級編程 本章討論以以下內(nèi)容: l 絕對地地址訪問 l C與匯匯編的接口口 l C511軟件包中中的通用文文件 l 段名轉(zhuǎn)轉(zhuǎn)換與程序序優(yōu)化 1. 第一一節(jié) 絕對對地址訪問問 C51提供供了三種訪訪問絕對地地址的方法法: 1. 1. 絕對宏宏: 在程序中,用用“inncludde”即可使用用其中定義義的宏來訪訪問絕對地地址,包括括: CBYTEE、XBYYTE、PPWORDD、DBYYTE、CCWORDD、XWOORD、PPBYTEE、DWOORD 具體使用可可看一看aabsaccc.h便便知 例如: rval=CBYTTE0 xx00022;指向向程序存貯貯器的0000
49、2h地地址 rval=XWORRD 00 x00002;指指向外RAAM的00004h地地址 2. 2. _att_關(guān)鍵字字 直接在數(shù)據(jù)據(jù)定義后加加上_att_ coonst即即可,但是是注意: (1)絕對對變量不能能被初使化化; (2)biit型函數(shù)數(shù)及變量不不能用_aat_指定定。 例如: idataa strruct linkk lisst _aat_ 00 x40;指定liist結(jié)構(gòu)構(gòu)從40hh開始。 xdataa chaar teext225b _at_0 xE0000;指指定texxt數(shù)組從從0E0000H開始始 提示:如果果外部絕對對變量是II/O端口口等可自行行變化數(shù)據(jù)據(jù),需要
50、使使用vollatille關(guān)鍵字字進(jìn)行描述述,請參考考absaacc.hh。 3. 3. 連接定定位控制 此法是利用用連接控制制指令coode xxdataa pdaata dataa bdaata對“段”地址址進(jìn)行,如如要指定某某具體變量量地址,則則很有局限限性,不作作詳細(xì)討論論。 2. 第二二節(jié) Keeil CC51與匯匯編的接口口 1. 1. 模塊內(nèi)內(nèi)接口 方法是用praggma語句句具體結(jié)構(gòu)構(gòu)是: #praggma aasm 匯編行 #praggma eendassm 這種方法實實質(zhì)是通過過asm與與ndassm告訴CC51編譯譯器中間行行不用編譯譯為匯編行行,因而在在編譯控制制指令中
51、有有SRC以以控制將這這些不用編編譯的行存存入其中。 2. 2. 模塊間間接口 C模塊與匯匯編模塊的的接口較簡簡單,分別別用C511與A511對源文件件進(jìn)行編譯譯,然后用用L51將將obj文文件連接即即可,關(guān)鍵鍵問題在于于C函數(shù)與與匯編函數(shù)數(shù)之間的參參數(shù)傳遞問問題,C551中有兩兩種參數(shù)傳傳遞方法。 (1) 通通過寄存器器傳遞函數(shù)數(shù)參數(shù) 最多只能有有3個參數(shù)數(shù)通過寄存存器傳遞,規(guī)規(guī)律如下表表: 參數(shù)數(shù)目 charr intt lonng,flloat 一般指針針 123 RR7R5RR3 R66 & RR7R4 & R55R2 & R3 R4RR7R4R7 RR1R33R1RR3R1R3 (2
52、) 通通過固定存存儲區(qū)傳遞遞(fixxed mmemorry) 這種方法將將bit型型參數(shù)傳給給一個存儲儲段中: ?funcctionn_namme?BIIT 將其它類型型參數(shù)均傳傳給下面的的段:?ffuncttion_namee?BYTTE,且按按照預(yù)選順順序存放。 至于這個固固定存儲區(qū)區(qū)本身在何何處,則由由存儲模式式默認(rèn)。 (3) 函函數(shù)的返回回值 函數(shù)返回值值一律放于于寄存器中中,有如下下規(guī)律: returrn tyype RRegisstev 說明 bit 標(biāo)標(biāo)志位 由由具體標(biāo)志志位返回 char/unsiignedd chaar 1_bytee指針 RR7 單字字節(jié)由R77返回 in
53、t/uunsiggned int 2_byyte指針針 R6 & R77 雙字節(jié)節(jié)由R6和和R7返回回,MSBB在R6 long&unsiignedd lonng R44R7 MSB在在R4, LSB在在R7 floatt R4R7 332Bitt IEEEE格式 一般指針 R1RR3 存儲儲類型在RR3 高位位R2 低低R1 (4) SSRC控制制 該控制指令令將C文件件編譯生成成匯編文件件(.SRRC),該該匯編文件件可改名后后,生成匯匯編.ASSM文件,再再用A511進(jìn)行編譯譯。 3. 第三三節(jié) Keeil CC51軟件件包中的通通用文件 在C51LiB目目錄下有幾幾個C源文文件,這幾幾
54、個C源文文件有非常常重要的作作用,對它它們稍事修修改,就可可以用在自自己的專用用系統(tǒng)中。 1. 1. 動態(tài)內(nèi)內(nèi)存分配 init_mem.C:此文文件是初始始化動態(tài)內(nèi)內(nèi)存區(qū)的程程序源代碼碼。它可以以指定動態(tài)態(tài)內(nèi)存的位位置及大小小,只有使使用了innit_mmem( )才可以以調(diào)回其它它函數(shù),諸諸如mallloc callloc,rreallloc等。 callooc.c:此文件是是給數(shù)組分分配內(nèi)存的的源代碼,它它可以指定定單位數(shù)據(jù)據(jù)類型及該該單元數(shù)目目。 mallooc.c:此文件是是mallloc的源源代碼,分分配一段固固定大小的的內(nèi)存。 reallloc.cc:此文件件是reaallocc.
55、c源代代碼,其功功能是調(diào)整整當(dāng)前分配配動態(tài)內(nèi)存存的大小。 2. 2. C511啟動文件件STARRTUP.A51 啟動文件SSTARTTUP.AA51中包包含目標(biāo)板板啟動代碼碼,可在每每個proojectt中加入這這個文件,只只要復(fù)位,則則該文件立立即執(zhí)行,其其功能包括括: l 定義內(nèi)內(nèi)部RAMM大小、外外部RAMM大小、可可重入堆棧棧位置 l 清除內(nèi)內(nèi)部、外部部或者以此此頁為單元元的外部存存儲器 l 按存儲儲模式初使使化重入堆堆棧及堆棧棧指針 l 初始化化80511硬件堆棧棧指針 l 向maain( )函數(shù)交交權(quán) 開發(fā)人員可可修改以下下數(shù)據(jù)從而而對系統(tǒng)初初始化 常數(shù)名 意意義 IDATAAL
56、EN 待清內(nèi)部部RAM長長度 XDATAA STAART 指指定待清外外部RAMM起始地址址 XDATAALEN 待清外部部RAM長長度 IBPSTTACK 是否小模模式重入堆堆棧指針需需初始化標(biāo)標(biāo)志,1為為需要。缺缺省為0 IBPSTTACKTTOP 指指定小模式式重入堆棧棧頂部地址址 XBPSTTACK 是否大模模式重入堆堆棧指針需需初始化標(biāo)標(biāo)志,缺省省為0 XBPSTTACKTTOP 指指定大模式式重入堆棧棧頂部地址址 PBPSTTACK 是否Coompacct重入堆堆棧指針,需需初始化標(biāo)標(biāo)志,缺省省為0 PBPSTTACKTTOP 指指定Commpactt模式重入入堆棧頂部部地址 PP
57、AGEEENABBLE PP2初始化化允許開關(guān)關(guān) PPAGEE 指定PP2值 PDATAASTARRT 待清清外部RAAM頁首址址 PDATAALEN 待清外部部RAM頁頁長度 提示:如果果要初始化化P2作為為緊湊模式式高端地址址,必須:PPAGGEENAAGLE1,PPPAGE為為P2值,例例如指定某某頁10000H110FFHH,則PPPAGE10H,而而且連接時時必須如下下: L51 PDDATA(10800H),其其中10880H是11000HH10FFFH中的的任一個值值。 以下是STTARTUUP.A551代碼片片斷,紅色色是經(jīng)??煽赡苄枰扌薷牡牡胤椒剑?; ; Thiis pp
58、art of tthe CC51 CCompiiler packkage ; Coppyrigght KKEIL ELEKKTRONNIK GGmbH 19900 ; ; STAARTUPP.A511: Thhis ccode is eexecuuted afteer prrocesssor reseet. ; ; To trannslatte thhis A51 withh thee folllowiing iinvoccatioon: ; ; A511 STAARTUPP.A511 ; ; To linkk thee moddifieed STTARTUUP.OBBJ yyour appl
59、licattion use the folllowinng ; L511 invvocattion: ; ; L511 , STAARTUPP.OBJJ ; ; ; ; Useer-deefineed Poower-On IInitiializzatioon off Memmory ; ; Witth thhe foollowwing EQU stattemennts tthe iinitiializzatioon off memmory ; at proccessoor reeset can be ddefinned: ; ; ; tthe aabsollute starrt-adddres
60、ss off IDAATA mmemorry iss alwways 0 IDATAALEN EQU 80H ; thhe leengthh of IDATTA meemoryy in bytees. ; XDATAASTARRT EQQU 0HH ; tthe aabsollute starrt-adddresss off XDAATA mmemorry XDATAALEN EQU 0H ; thee lenngth of XXDATAA memmory in bbytess. ; PDATAASTARRT EQQU 0HH ; tthe aabsollute starrt-adddress
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電信業(yè)務(wù)國際教育普及策略
- 廣東嶺南職業(yè)技術(shù)學(xué)院《機器學(xué)習(xí)與人工智能》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西職業(yè)技術(shù)學(xué)院《特殊兒童發(fā)展與學(xué)習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院《嵌入式系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東英才學(xué)院《電腦圖文設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 商務(wù)數(shù)據(jù)分析題庫與答案
- 石嘴山工貿(mào)職業(yè)技術(shù)學(xué)院《并行計算》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年寧夏農(nóng)墾硒谷農(nóng)產(chǎn)品有限公司招聘筆試參考題庫含答案解析
- 重慶城市管理職業(yè)學(xué)院《汽車展示設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連科技學(xué)院《工程地質(zhì)與基礎(chǔ)工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 2023-2024學(xué)年貴州省黔西南州八年級上冊1月月考語文質(zhì)量檢測試卷(附答案)
- 閱讀理解:如何找文章線索 課件
- 產(chǎn)品設(shè)計思維 課件 第3-5章 產(chǎn)品設(shè)計的問題思維、產(chǎn)品設(shè)計的功能思維、產(chǎn)品設(shè)計的形式思維
- 餐券模板完整
- 2023年節(jié)能服務(wù)行業(yè)市場分析報告及未來發(fā)展趨勢
- 小區(qū)排水管網(wǎng)修復(fù)施工方案
- 智慧城市發(fā)展-人工智能技術(shù)在城市管理中的應(yīng)用
- 因產(chǎn)品質(zhì)量買賣合同糾紛起訴狀
- GB/T 6892-2023一般工業(yè)用鋁及鋁合金擠壓型材
- 評估胎兒健康的技術(shù)
- 實驗室危險廢物處理廢液分類與收集
評論
0/150
提交評論