24程序發(fā)展工具-2_第1頁(yè)
24程序發(fā)展工具-2_第2頁(yè)
24程序發(fā)展工具-2_第3頁(yè)
24程序發(fā)展工具-2_第4頁(yè)
24程序發(fā)展工具-2_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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、2.4 程序發(fā)展工具-Keil C51Keil C51是Keil公司針對(duì)80C51系列單芯片,在Windows平臺(tái)上開(kāi)發(fā)出的一套工具軟件.,透過(guò)Keil uVision2的IDE(整合發(fā)展環(huán)境),提供80C51匯編語(yǔ)言與C51語(yǔ)言的編輯、組譯/連結(jié)、除錯(cuò)/模擬測(cè)試,并具備完善的項(xiàng)目管理系統(tǒng)(Project),以及系統(tǒng)文件說(shuō)明等功能。圖2-x1顯示 Keil Vision2的功能結(jié)構(gòu),說(shuō)明如下:Vision2 IDE提供項(xiàng)目管理的整合作業(yè)環(huán)境,擁有編譯、組譯、連結(jié)等,建構(gòu)項(xiàng)目的功能。提供各種廠廠牌型號(hào)號(hào)80CC51核核心兼容容單芯片片系統(tǒng)的的開(kāi)發(fā)使使用。C51提供供ANSSI CC程序語(yǔ)語(yǔ)言編譯

2、譯器(AANSII C Commpiller);A511:提供供80551匯編編程序組組譯器(Maccro Asssembblerr)。在程序的連連結(jié)時(shí),提提供ANNSI 標(biāo)準(zhǔn)鏈鏈接庫(kù)、LIB51鏈接庫(kù)管理員,與RTX51實(shí)時(shí)操作系統(tǒng)。Visiion Debbuggger:有強(qiáng)大大的除錯(cuò)錯(cuò)工具和和平行仿仿真系統(tǒng)統(tǒng)。可執(zhí)執(zhí)行單步步執(zhí)行,芯芯片內(nèi)部部緩存器器、內(nèi)存存、輸出出入界面面的實(shí)時(shí)時(shí)監(jiān)看功功能。圖2-x11: KKeill C551功能能方塊圖圖Keil C511試用版版下載與與安裝對(duì)于80CC51單單芯片初初學(xué)者,Keil 軟件公司在該公司網(wǎng)站提供Keil C51試用版(Evaluatio

3、n Version),免費(fèi)讓使用者下載( 試用版限制2KBytes的程序代碼)。C51試用版軟件的下載與安裝步驟如下: 步驟1:上上網(wǎng)連結(jié)結(jié)上 KKeill公司網(wǎng)網(wǎng)站( HYPERLINK /demo/eval/c51.htm htttp:/wwww.kkeill.coom/ddemoo/evval/c511.httm),填寫(xiě)寫(xiě)個(gè)人數(shù)數(shù)據(jù)后即即可取得得該工具具軟件。如如圖2-x2所所示。圖2-x22: KKeill C551程序序下載畫(huà)畫(huà)面步驟2:填填完數(shù)據(jù)據(jù)點(diǎn)選SSummmit,,即可可下載eek511v7550a.exee軟件安安裝程序序文件,檔檔案大小小約155.8MMB。步驟3:執(zhí)執(zhí)行

4、ekk51vv7500a.eexe文文件,啟啟動(dòng)安裝裝程序,會(huì)會(huì)出現(xiàn)下下列確認(rèn)認(rèn)安裝的的對(duì)話框框,請(qǐng)點(diǎn)點(diǎn)選是(Y)按鈕鈕,出現(xiàn)現(xiàn)如圖22-x33的說(shuō)明明窗口。依依照安裝裝程序的的指示,一一步步的的完成軟軟件安裝裝工作。圖2-x33: Vissionn2安裝裝說(shuō)明畫(huà)畫(huà)面步驟4:安安裝完成成后,會(huì)會(huì)在Wiindoow系統(tǒng)統(tǒng)的開(kāi)始菜單或或桌面上上會(huì)出現(xiàn)現(xiàn)下圖示示的Keeil uViisioon2快快捷方式式。點(diǎn)選選此一快快捷方式式,即可可啟動(dòng)CC51。 啟動(dòng)Keiil Vissionn2由于Keiil Vissionn2是以項(xiàng)項(xiàng)目(PProjjectt)方式式做管理理,因此此啟動(dòng)KKeill VVi

5、siion22后,必必須先加加載一個(gè)個(gè)項(xiàng)目,才才能對(duì)項(xiàng)項(xiàng)目?jī)?nèi)的的檔案(程序文文件與說(shuō)說(shuō)明文件件)進(jìn)行處處理。若若啟動(dòng)后后無(wú)Prrojeect加加載,則則Viisioon2有有許多畫(huà)畫(huà)面與功功能將無(wú)無(wú)法展示示。以下下我們介介紹兩種種開(kāi)啟項(xiàng)項(xiàng)目的方方法:開(kāi)開(kāi)啟舊項(xiàng)項(xiàng)目(OOpenn Prrojeect)、建立新新項(xiàng)目(Neww Prrojeect),藉由由兩個(gè)范范例的操操作過(guò)程程,說(shuō)明明Keiil Vissionn2 IIDE的的窗口畫(huà)畫(huà)面與功功能,并并了解建建立新項(xiàng)項(xiàng)目的作作業(yè)流程程。:開(kāi)啟一個(gè)個(gè)現(xiàn)有項(xiàng)項(xiàng)目,并并對(duì)做說(shuō)明。:介紹如何何,包括括檔案的的加入、程程序編輯輯/組譯/連結(jié),與與除錯(cuò)等等操

6、作方方法。 【范例2-1】開(kāi)啟舊舊項(xiàng)目觀觀察Keeil Viisioon2窗窗口畫(huà)面面與功能能開(kāi)啟一個(gè)KKeillViisioon提供供的范例例項(xiàng)目AASAMMPLEE.uvv2,藉藉此觀察察KeiilVVisiion IDEE整合環(huán)環(huán)境畫(huà)面面與功能能,操作作步驟如如下:步驟1:開(kāi)開(kāi)啟 Proojecct菜菜單點(diǎn)選選,點(diǎn)選選Oppen Proojecct指指令按鈕鈕,顯示示如圖22-x44所示的的Seelecct PProjjectt Fiile對(duì)話框框。選取取C:KeiilCC51EXAAMPLLESASMMASSAMPPLE的的范例項(xiàng)項(xiàng)目,開(kāi)開(kāi)啟此項(xiàng)項(xiàng)目。圖2-X44: Opttionns

7、 ffor Tarrgett TTargget對(duì)話框框步驟2:開(kāi)開(kāi)啟 AASAMMPLEE.uvv2項(xiàng)目目后,窗窗口畫(huà)面面顯示如如圖2-x5。在Viisioon2整整合作業(yè)業(yè)環(huán)境中中重要的的部份,如如負(fù)責(zé)項(xiàng)項(xiàng)目管理理的項(xiàng)目目窗口(Proojecct WWinddowss)、可編輯輯80551匯編編語(yǔ)言與與C語(yǔ)言程程序文件件的程序序編輯窗窗口、顯顯示執(zhí)行行結(jié)果的的輸出窗窗口(OOutpput Winndowws),與與常會(huì)用用到的工工具列(Tooolbaar)。圖2-x55: KKeill VVisiion22 IDDE窗口口畫(huà)面 步驟3:由由于Keeil Viisioon2 IDEE窗口畫(huà)面面

8、上的某某些子窗窗口會(huì)因因?yàn)殛P(guān)閉閉或重迭迭在底層層而隱藏藏不見(jiàn)。當(dāng)當(dāng)找不到到某些子子窗口時(shí)時(shí),可利利用VVieww菜單單內(nèi)的指指令找回回。點(diǎn)選選Viiew菜單,顯顯示如圖圖2-xx6。點(diǎn)點(diǎn)選菜單單的指令令,如Proojecct WWinoodwss、Ouutpuut WWinddowss;以以及工具具列,如如Sttatuus BBar、Buuildd Tooolbbar、Buuildd Tooolbbar,觀察對(duì)對(duì)應(yīng)子窗窗口,顯顯示與隱隱藏狀態(tài)態(tài)。針對(duì)對(duì)這些子子窗口的的功能,我我們圖2-x66: 利用Vieew菜菜單顯示示/隱藏子子窗口項(xiàng)目窗口:項(xiàng)目窗口又又可分為為三種頁(yè)頁(yè)面:Fille、Ree

9、gs、Boookss。點(diǎn)點(diǎn)選窗口口下方的的標(biāo)示做做頁(yè)面的的切換。在在進(jìn)入除除錯(cuò)功能能(deebugg)時(shí),RRegss會(huì)顯顯示80051的的緩存器器狀態(tài)、Books顯示Vision2的在線操作說(shuō)明書(shū)。File負(fù)責(zé)管理項(xiàng)目的所有檔案,F(xiàn)ile又可分為三個(gè)層級(jí)Target-Group-File,說(shuō)明如下:Targeet:在在此層級(jí)級(jí)中,可可以選擇擇使用的的芯片、頻頻率頻率率與內(nèi)存存等裝置置的配置置方式。在在同一個(gè)個(gè)項(xiàng)目中中,可以以擁有一一個(gè)以上上的”TTargget”。兩個(gè)Target之間基本上可以共享相同的原始程序檔案,但是可以各自有著不同的輸出入設(shè)定或不同的裝置,透過(guò)建立不同的Target,我

10、們可以得到不同的輸出程序版本。有關(guān)Target的選項(xiàng)設(shè)定,可在Target圖標(biāo)上按鼠標(biāo)右鍵,在快速選單上點(diǎn)選Options for Target Target,顯示如圖2-x7: Options for Target Target 1對(duì)話框。Vision2為了方便我們能容易地撰寫(xiě)兼容各式CPU的程序,特別在圖3-7 Options for Target Target 1對(duì)話框中的裝置數(shù)據(jù)庫(kù)(Device Database),準(zhǔn)備了各式CPU的數(shù)據(jù)。只要我們決定了CPU的型號(hào),Vision2就會(huì)自動(dòng)將一切環(huán)境的參數(shù)(如CPU頻率、內(nèi)存配置等等)設(shè)定好,無(wú)須使用者再操心了。圖2-x77:開(kāi)啟啟 O

11、pttionns ffor Tarrgett TTargget對(duì)話框框Groupp:在Taargeet下建建立多個(gè)個(gè)Grooup,將將有相同同性質(zhì)的的原始程程序代碼碼或文件件歸類(lèi)在在同一個(gè)個(gè)Grooup,方方便自己己或其它它人方便便查閱管管理,例例如建立立一個(gè)II/O Grooup,將將所有有有關(guān)輸出出入的程程序文件件放于其其中File:在Grroupp之下,可可以加入入不同的的檔案。例例如C551原始始程序文文件(*.c)、A511匯編程程序(*.a ;*.srcc),已已編譯的的對(duì)象程程序文件件(*.objj),鏈鏈接庫(kù)檔檔案(*.liib)以以及純文文本文件件(*.txtt)。程序編輯器

12、器:程序編輯輯窗口是一套套類(lèi)似記事本本-NootePPad的文字字編輯工工具,提提供使用用者編寫(xiě)寫(xiě)C511/A551的原原始程序序代碼或或說(shuō)明文文件。它它的操作作方式與與一般文文字編輯輯器大同同小異。此外,編輯器提供有標(biāo)記工具列、斷點(diǎn)設(shè)定工具列、搜尋工具列,輔助使用者做程序編輯與除錯(cuò),相關(guān)圖標(biāo)與功能如表2-X。表2-x:編輯用用工具列列工具圖示功能說(shuō)明工具圖標(biāo)依依序?yàn)門(mén)oggglee Boookmmarkk(切切換標(biāo)記記),Neext Boookmaark(下一個(gè)個(gè)標(biāo)記),Prreviiouss Boookmmarkk(前前一個(gè)標(biāo)標(biāo)記),Cllearr Alll BBookkmarrks(清除

13、除所有標(biāo)標(biāo)記)。在光標(biāo)停在在的地方方,插入入或取消消插入標(biāo)標(biāo)記,尋尋找先前前標(biāo)記的的位置,或或是刪除除所有標(biāo)標(biāo)記。被被設(shè)定成成標(biāo)記該該行,左左側(cè)有一一藍(lán)點(diǎn)出出現(xiàn)。在在撰寫(xiě)程程序時(shí),若若能適當(dāng)當(dāng)?shù)夭迦肴胍恍?biāo)標(biāo)記,能能迅速地地讓我們們的光標(biāo)標(biāo)游走整整個(gè)程序序,修改改某一行行程序時(shí)時(shí),立即即找到,而而不用拉拉動(dòng)滾動(dòng)動(dòng)條尋找找。工具圖示依依序?yàn)镮nssertt/ReemovveBrreakkpoiintss(插插入/移除斷斷點(diǎn))、Kiill Alll Brreakkpoiintss(斷斷點(diǎn))、Ennablle/DDisaablee Brreakkpoiintss(致致/禁能標(biāo)標(biāo)記)、Diisabbl

14、e Alll Brreakkpoiintss (禁能所所有標(biāo)記記)在游標(biāo)停在在的地方方,插入入斷點(diǎn)。設(shè)設(shè)定斷點(diǎn)點(diǎn)是程序序除錯(cuò)的的技巧之之一,它它能讓程程序在特特定階段段中暫停停,提供供我們檢檢視其狀狀態(tài)。當(dāng)當(dāng)斷點(diǎn)被被致能時(shí)時(shí),可以以看到其其旁邊有有一紅點(diǎn)點(diǎn),當(dāng)被被禁能時(shí),將將會(huì)是空空心的點(diǎn)點(diǎn)(斷點(diǎn)插插入時(shí)預(yù)預(yù)設(shè)是致致能的)。亦可可在欲插插入斷點(diǎn)點(diǎn)的地方方按下鼠鼠標(biāo)右鍵鍵選擇IInseert/Remmovee Brreakkpoiint插插入/移除斷斷點(diǎn),或或選Ennablle/DDisaablee Brreakkpoiint來(lái)來(lái)控制斷斷點(diǎn)的致致/禁能。工具圖示依依序?yàn)镕innd iin ffi

15、lees(找尋檔檔案)、Seearcch(搜尋) Fiind(找尋尋)擁有搜尋文文件內(nèi)文文句的功功能,其其中Fiind in fille功能能,亦可可跨檔案案搜尋相相關(guān)字詞詞,結(jié)果果顯現(xiàn)在在下方的的Outtputt Wiindoow建立新項(xiàng)目目流程建立一個(gè)新新項(xiàng)目,并并完成項(xiàng)項(xiàng)目程序序的編譯譯/連結(jié)與與除錯(cuò)等等工作,作作業(yè)流程程如圖22-x88。項(xiàng)目目程序發(fā)發(fā)展過(guò)程程中,提提醒讀者者每個(gè)步步驟所需需的注意意事項(xiàng)如如下:建立空項(xiàng)目目:新建建立的項(xiàng)項(xiàng)目必須須設(shè)定TTargget的的裝置(Devvicee),即即選用芯芯片的公公司與型型號(hào)、設(shè)設(shè)定頻率率頻率,配配置內(nèi)存存。在項(xiàng)目加入入檔案:項(xiàng)目?jī)?nèi)內(nèi)的

16、檔案案來(lái)源有有兩種方方式。第第一種方方式是將將已經(jīng)存存在的程程序文件件直接加加入項(xiàng)目目;第二二種方式式是選擇擇Fiile菜單的的Neew指指令,建建立一個(gè)個(gè)新檔案案,再將將此檔案案加入項(xiàng)項(xiàng)目。存存盤(pán)要注注意的是是,若準(zhǔn)準(zhǔn)備采用用C511語(yǔ)言,檔檔案的附附屬名稱稱使用”*.c”,若使用A51語(yǔ)言,檔案的附屬名稱使用”*.a”。編輯/修改改程序:已加入入項(xiàng)目的的程序文文件,直直接在項(xiàng)目窗窗口中雙擊擊該程序序文件的的文件名名,即可可開(kāi)啟該該檔案的的程序編編輯窗口口。若未未加入項(xiàng)項(xiàng)目的程程序文件件,使用用Fiile菜單的的Oppen指令,加加載程序編編輯窗口口,進(jìn)行行編輯與與修改。組譯/編譯譯與連結(jié)結(jié)

17、程序:Vissionn2同時(shí)時(shí)提供了了C511這個(gè)兼兼容于AANSII C標(biāo)標(biāo)準(zhǔn)的編編譯器(C511 Coompiilerr),以以及A551這個(gè)個(gè)組譯器器(A551 AAsseembller),讓我我們可以以用這兩兩種程序序語(yǔ)言,開(kāi)開(kāi)發(fā)單芯芯片程序序。當(dāng)原原始程序序都被編編譯/組譯完完成后,再再透過(guò)連連結(jié)以建建置最后后可執(zhí)行行的程序序,在Vissionn2附有有BL551這個(gè)個(gè)連結(jié)器器來(lái)協(xié)助助達(dá)成這這項(xiàng)工作作。在連連結(jié)的過(guò)過(guò)程中, 標(biāo)準(zhǔn)C語(yǔ)言的函式庫(kù)(ANSI C Standard Library)也會(huì)被匯入。除錯(cuò)與在線線仿真:完成組組譯/編譯與與連結(jié)的的機(jī)械碼碼程序,可可透過(guò)Vission

18、n2提供供的除錯(cuò)錯(cuò)工具,修修改或最最佳化程程序,還還可以藉藉由平行行仿真系系統(tǒng)在PPC上直直接仿真真硬件上上的各種種操作。圖2-x88:Keeil C511項(xiàng)目建建立流程程圖【范例2-2】建置新新項(xiàng)目的的操作實(shí)實(shí)例建置一個(gè)新新的專案案”chh2_11.uvv2”,加加入chh2_11.assm匯編編程序檔檔。執(zhí)行行程序的的組譯與與連結(jié)。并并利用除除錯(cuò)工具具仿真執(zhí)執(zhí)行此程程序。操操作步驟驟如下: 步驟1:開(kāi)開(kāi)啟PProjjectt菜單單,點(diǎn)選選Neew PProjjectt指令令,在建建立檔案案的對(duì)話話框中輸輸入” ch22_1”檔名,進(jìn)入Select Device for Target1 “T

19、arget”窗口,在CPU頁(yè)面找到”P(pán)hilips”,點(diǎn)選”P(pán)89C51RD2xx”,如圖2-x9所示,按確定指令按鈕。圖2-x99: Sellectt Deevicce ffor Tarrgett1 “TTargget”窗口步驟2:開(kāi)開(kāi)啟FFilee菜單單,點(diǎn)選選Neew 指令,建建立一個(gè)個(gè)空白的的新文件件(預(yù)設(shè)設(shè)檔名為為T(mén)exxt1)。開(kāi)開(kāi)啟FFilee菜單單,點(diǎn)選選Saave指令,將將剛Teext11新檔案案以”cch2_1.aasm” 檔名儲(chǔ)儲(chǔ)存。步驟3:在在新建立立空白cch2_1.aasm檔檔案的程序編編輯窗口口輸入下下列程序序代碼: MOV A,#12HH ; 將12HH資料存存

20、入累加加器 MOOV R0,#344H ; 將34HH資料存存入R00 MOOV 30HH,#556H ; 將56HH資料存存入RAAM的30HH MOOV P0,#0FFH ; 將0FHH數(shù)據(jù)輸輸出到PP0端口口 ENND步驟4:在在項(xiàng)目窗窗口的Soourcce GGrouup 11按右右鍵,點(diǎn)點(diǎn)選AAdd Fille tto GGrouup “SSourrce Grooup 1”,將編編輯的cch2_1.aasm程程序文件件加入這這個(gè)項(xiàng)目目中。(若檔案案類(lèi)型預(yù)預(yù)設(shè)*.c,變變更為AASM Souurcee fiile,即可可看到cch2_1.aasm)步驟6:程程序代碼碼編輯完完成后,在在

21、Debbug 工具列列上按下下(Buuildd Taargeet)按按鈕,就就可以建建置項(xiàng)目目(或可可用Prrojeect-Buuildd Taargeet或直直接按下下F7來(lái)達(dá)達(dá)成同樣樣的目的的)如果果正確無(wú)無(wú)誤,在在Outtputt Wiindoow看到到建立成成功的訊訊息, 如圖2-x100?!痉独?-3】程序除除錯(cuò)與觀觀察單芯芯片內(nèi)部部運(yùn)作利用范例22-3建建置完成成的項(xiàng)目目ch22_1,透透過(guò)Keeil Vissionn2除錯(cuò)錯(cuò)功能,觀觀察單芯芯片內(nèi)部部運(yùn)作情情形。藉藉此熟悉悉除錯(cuò)環(huán)環(huán)境與工工具的使使用。操操作步驟驟如下: 步驟1:在在完成cch2_1項(xiàng)目目的建置置后,開(kāi)開(kāi)啟DDeb

22、uug菜菜單,點(diǎn)點(diǎn)選SStarrt/SStopp Deebugg Seessiion指令,或或按下CCtrll+F55,啟動(dòng)動(dòng)除錯(cuò)模模式。步驟2:點(diǎn)點(diǎn)選單步步執(zhí)行工工具或按按F111,觀察察項(xiàng)目窗窗口的緩緩存器頁(yè)頁(yè)面顯示示r0與a的變化化,如圖圖2-111。步驟3:點(diǎn)點(diǎn)選VVieww-Meemorry WWinddow菜單,開(kāi)開(kāi)啟Meemorry WWinddow窗口,在在Adddresss:文文字方塊塊輸入”CC:0”, 顯示加載程序內(nèi)存(ROM)的機(jī)械碼。如圖2-x2, 顯示程序機(jī)械碼,共計(jì)7Bytes(0 x00000 x0006)。在工具列按下指令按鈕,切換到Disassembly W

23、indow反組譯窗口,讀者可以自行對(duì)照機(jī)械碼與匯編語(yǔ)言之間的關(guān)系。圖3-222: 加加載程序序內(nèi)存的的機(jī)械碼碼步驟3:在在 MMemoory Winndoww窗口口的Adddreess:文字方方塊輸入入”D:0”, 顯示加加載數(shù)據(jù)據(jù)存儲(chǔ)器器(RAAM)。如如圖2-x2,56HH存入0 xx30地地址上。步驟4:開(kāi)開(kāi)啟PPeriipheeralls菜菜單,點(diǎn)點(diǎn)選II/O Porrts-Porrt0指令,顯顯示如圖圖2-xx。顯示示P0端口口的輸出出狀態(tài)。圖2-x:Porrt 00的輸出出結(jié)果步驟5:結(jié)結(jié)束觀察察與除錯(cuò)錯(cuò)作業(yè),開(kāi)開(kāi)啟DDebuug菜菜單,點(diǎn)點(diǎn)選 Staart/Stoop DDebu

24、ug SSesssionn指令令,離開(kāi)開(kāi)除錯(cuò)環(huán)環(huán)境。最后,當(dāng)我我們要匯匯出我們們的程序序,建立立能在微微處理機(jī)機(jī)上直接接運(yùn)作的的機(jī)械碼碼程序(.heex),其其做法是是Proojecct-Opttionn foor TTargget “Taargeet 11”或直直接在專專按管理理窗口的的Tarrgett 1上上按下右右鍵選OOptiion forr Taargeet “TTargget 1”,開(kāi)開(kāi)啟Toool Opttionn對(duì)話框框,請(qǐng)切切到”O(jiān)Outpput”頁(yè)面,在Create HEX file這個(gè)復(fù)選框上打勾,如圖2-x。按下確定。重新建置我們的項(xiàng)目,就可以在項(xiàng)目的目錄下,新產(chǎn)生了*

25、.hex。圖2-x:設(shè)定產(chǎn)產(chǎn)生HEEX輸出出檔 。2.5 880C551指令令與程序序雖然C511語(yǔ)言具具有多項(xiàng)項(xiàng)優(yōu)點(diǎn),但但對(duì)于880511單芯片片初學(xué)者者而言,仍仍然必須須對(duì)80051匯匯編語(yǔ)言言的指令令與程序序有基本本的認(rèn)識(shí)識(shí),基于以上原原因,880511系統(tǒng)單單芯片有有必要引引用一套套高級(jí)語(yǔ)語(yǔ)言,做做為程序序開(kāi)發(fā)工工具。透透過(guò)編譯譯(Coompiilerr)的方方式,協(xié)協(xié)助我們們處理程程序中許許多瑣碎碎且重復(fù)復(fù)的細(xì)節(jié)節(jié),并能能配合相相關(guān)硬件件的調(diào)整整,而在在必要的的時(shí)候,設(shè)設(shè)計(jì)者仍仍然可以以直接針針對(duì)內(nèi)存存及緩存存器下達(dá)達(dá)命令,修修改其內(nèi)內(nèi)容或決決定其配配置的方方式,CC51就就是針對(duì)對(duì)

26、這些特特性發(fā)展展出的一一套程序序語(yǔ)言。Keil Vision 提供C51程序語(yǔ)言的組譯與連結(jié)功能,但對(duì)于單芯芯片初學(xué)學(xué)者而言言,筆者者仍然建建議應(yīng)對(duì)對(duì)80551匯編編語(yǔ)言的的指令與與程序,80C511共有1111個(gè)指指令,若若以指令令碼的長(zhǎng)長(zhǎng)度分類(lèi)類(lèi),單字字節(jié)指令令(1BBytee)有49個(gè),雙雙字節(jié)指指令(22Byttes)有45個(gè),三三字節(jié)指指令(33Byttes)有17個(gè);若以功功能來(lái)區(qū)區(qū)分的話話,指令令分類(lèi)有有下列四四種:數(shù)據(jù)搬移指指令288個(gè),即即緩存器器與內(nèi)存存之間的的數(shù)據(jù)轉(zhuǎn)轉(zhuǎn)移,與與尋址方方式相關(guān)關(guān)指令。算術(shù)/邏輯輯運(yùn)算指指令499個(gè),包包含算術(shù)術(shù)運(yùn)算、邏邏輯運(yùn)算算。程序流程控控

27、制指令令17個(gè),包包含條件件/無(wú)條件件跳躍指指令,循循環(huán)、子子程序呼呼叫。位運(yùn)算指令令17個(gè),包包含旗標(biāo)標(biāo)、可位位尋址數(shù)數(shù)據(jù)的設(shè)設(shè)定(11)或清清除(00)。由由于這些些指令又又可區(qū)分分為位尋尋址、位位運(yùn)算、比比特流程程控制,因因此本章章稍后的的介紹將將并入前前三項(xiàng)中中討論。數(shù)據(jù)搬移指指令-尋址方方式在80511指令集集,數(shù)據(jù)據(jù)搬移指指令占有有極為重重要的地地位,因因?yàn)槲⑻幪幚頇C(jī)的的程序執(zhí)執(zhí)行過(guò)程程中,必必須經(jīng)常常在緩存存器與內(nèi)內(nèi)存之間間做數(shù)據(jù)據(jù)的搬移移。這些些數(shù)據(jù)搬搬移的方方式,涉涉及到微微處理機(jī)機(jī)所提供供的搬移移數(shù)據(jù)的的指令與與作業(yè)模模式,稱稱為尋址址法(AAddrresss Moode)

28、。80551的尋尋址法可可分為下下列六種種:立即尋址法法(Immmeddiatte AAddrresssingg)。緩存器尋址址法(RRegiisteer AAddrresssingg)。直接尋址法法(Dirrectt Adddreessiing)。間接尋址法法(Inndirrectt Adddreessiing)。索引尋址法法(Inndexxed Adddresssinng)。位尋址法(Bitt Adddreessiing)。除了上述六六種尋址址方式之之外,還還有兩種種特殊的的數(shù)據(jù)存存取方式式:堆棧棧內(nèi)存存存取,數(shù)數(shù)據(jù)交換換指令,在在本節(jié)中中都會(huì)做做詳細(xì)的的介紹。此此外,位位尋址法法將留在在

29、4-44節(jié)再做做介紹。在數(shù)據(jù)的搬搬移指令令主要提提供緩存存器與緩緩存器,以以及緩存存器與內(nèi)內(nèi)存之間間的數(shù)據(jù)據(jù)搬移。搬搬移指令令中出現(xiàn)現(xiàn)的數(shù)據(jù)據(jù)格式,緩緩存器(如累加加器、工工作緩存存器.),與與內(nèi)存地地址(絕對(duì)地地址與相相對(duì)地址址),使用用的符號(hào)號(hào)都有明明確的定定義,如如表4-1所示示。符 號(hào)說(shuō) 明A累積器C進(jìn)位旗標(biāo)。Rn目前所選用用的緩存存器庫(kù)中中的緩存存器R00R7Ri以緩存器RR0或R1的內(nèi)內(nèi)容當(dāng)?shù)氐刂穌irecct可直接尋址址的字節(jié)節(jié)地址DPTR數(shù)據(jù)指針緩緩存器#dataa8位常數(shù),有10進(jìn)位位,166進(jìn)位,22進(jìn)位數(shù)數(shù)bit可位尋址的的位地址址#dataa1616位常數(shù)數(shù)rel相對(duì)地

30、址Addr11111位目的的地址。使使用在跳跳越或呼呼叫指令令中Addr11611位目的的地址。使使用在跳跳越或呼呼叫指令令中表4-1:緩存器器與內(nèi)存存地址的的符號(hào)定定義算術(shù)邏輯運(yùn)運(yùn)算指令令8051的的算術(shù)邏邏輯運(yùn)算算指令,可可區(qū)分為為下列三三種類(lèi)型型,分別別說(shuō)明如如下:算術(shù)運(yùn)算指指令:加加、減、乘乘、除、遞遞增、遞遞減運(yùn)算算。 :邏輯運(yùn)算算指令:且、或或、互斥斥或、反反相等運(yùn)運(yùn)算。位旋轉(zhuǎn)與交交換指令令:含進(jìn)進(jìn)位與不不含進(jìn)位位的位左左旋、右右旋,與與高低位位數(shù)據(jù)交交換。匯編語(yǔ)言c51數(shù)據(jù)處理數(shù)字宣告算術(shù)累輯運(yùn)運(yùn)算流程控制2.4 程程序發(fā)展展工具-Keiil CC51 Flaash Maggic

31、 使用手手冊(cè)壹、Flaash Maggic操操作說(shuō)明明1. 下載載Flaash Maggic軟件:http:/wwww.esaacaddemyy.coom/ssofttwarre/fflasshmaagicc/FllashhMaggic.exee,或ftp:/t/puub/eesa/flaashmmagiic/FFlasshMaagicc.exxe。2. 安裝裝Flaash Maggic軟軟件,在在桌面上上找到后后,執(zhí)行行Flaash Maggic。3. 執(zhí)行行Flaash Maggic 后,出出現(xiàn)如圖圖1 的開(kāi)開(kāi)機(jī)畫(huà)面面。當(dāng)圖圖2 出現(xiàn)現(xiàn)時(shí),表表示設(shè)定定不正確,此時(shí)時(shí)按下“取消”按鈕。4.

32、請(qǐng)依依照?qǐng)D33,重新新設(shè)定?;旧?,所所有的執(zhí)執(zhí)行步驟驟共分成成1、2、3、4、5,也就是圖11 中紫紫色的阿阿拉伯?dāng)?shù)數(shù)字,這這是執(zhí)行行燒錄的的五大步步驟,只只要依序序 設(shè)定和執(zhí)行,即即可將hhex 檔案燒燒錄到芯芯片內(nèi)。步驟1:。圖1 開(kāi)機(jī)機(jī)畫(huà)面2圖2 未能能連接出出現(xiàn)的畫(huà)畫(huà)面圖3 設(shè)定定P899C511RC22 的畫(huà)畫(huà)面5. 選擇擇要連接接的COOM PPortt (若若COMM Poort 不在選選擇欄內(nèi)內(nèi),可直直接輸入入連接PPortt位置,輸入入COMM n 這個(gè)數(shù)數(shù)值或nn 即可可,例如如COMM8 或或8,如圖圖5 所示示。USSB的設(shè)定相關(guān)關(guān)信息,請(qǐng)請(qǐng)看USSB 提提供的數(shù)數(shù)

33、據(jù)。) 6. 選選擇傳輸輸速率,由由低速開(kāi)開(kāi)始測(cè)試試,最高高傳輸速速率是根根據(jù)硬件件所接振振蕩頻率率多寡來(lái)決定,如如此可找找出硬件件最大傳傳輸速率率,再依依此速率率作為傳傳輸速率率的選擇。基本上上,第一一次就選選擇96600 是適當(dāng)當(dāng)?shù)模缛绻恍行性偻孪抡{(diào)整。 7. 選擇擇芯片號(hào)號(hào)碼(CChipp),不不同的芯芯片有不不同的特特性設(shè)定定及傳輸輸設(shè)定,因因此選擇擇正確芯片號(hào)號(hào)碼是重重要的。 8. 輸入入目標(biāo)電電路板的的振蕩器器頻率,也也就是PP89CC51RRC2 所接的的振蕩器器頻率。這這里是以11.05992Hzz 為例例,必須須填入實(shí)實(shí)際的數(shù)數(shù)值,不不可以省省略小數(shù)數(shù)點(diǎn)部分分,因?yàn)闉镕

34、lashh Maagicc 會(huì)根根據(jù)此值值計(jì)算傳傳輸速率率。 59. 如圖圖9所示,選選擇Opptioons和和Advvancce OOptiionss后,檢檢查圖110,不不設(shè)定(不勾選)Higgh SSpeeed CCommmuniicattionns和Hallf-ddupllex Commmunnicaatioons,如如此設(shè)定定可以不要管現(xiàn)在在芯片是是處于66 orr 122 cllockks。10. 勾勾選“Eraase alll Fllashh+Seecurrityy+Cllks”表示清清除所有有內(nèi)存、保保密位、clocks位。勾選“Eraase bloockss ussed by

35、 Hexx Fiile”表示只只清除目目前燒錄錄檔案所所存在的內(nèi)存,一一般只要要作此動(dòng)動(dòng)作即可可。 11. 輸入燒燒錄檔,如如果燒錄錄之前,檔檔名未變變,也不不需要再再次做這這個(gè)動(dòng)作作,即使使同一個(gè)HEXX檔已經(jīng)經(jīng)更新,也也不需要要再輸入入一次。輸輸入燒錄錄檔有兩兩種方法法,第一一個(gè)是從開(kāi)機(jī)機(jī)畫(huà)面步步驟3的Broowsee按鈕,第第二個(gè)是是從FiileOpeen。圖712. RReadd Cllockks:讀讀取芯片片機(jī)械周周期,確確認(rèn)現(xiàn)在在是處于于6 oor 112 ccloccks。圖14 讀讀取芯片片機(jī)械周周期圖15 讀讀取芯片片機(jī)械周周期為112 cclocck圖16 讀讀取芯片片機(jī)械

36、周周期為66 cllockk813. 芯芯片機(jī)械械周期更更改:PP89CC51RRC2出出廠機(jī)械械周期預(yù)預(yù)設(shè)為112周期,如如果勾選選 6clks/cyccle,隨隨便燒錄錄一個(gè)檔檔案后,就就變成66周期。圖17 勾勾選芯片片機(jī)械周周期為66 cllockks/ccyclle914. 如如果要在在改回112 cclkss/cyyclee,則請(qǐng)請(qǐng)勾選“Eraase alll Fllashh+Seecurrityy+Cllks”,不勾選 6 clkks/ccyclle,隨隨便燒錄錄一個(gè)檔檔案后,就就變成112周期期。要清清除保密密位,也可以用此此方法。圖18 勾勾選芯片片機(jī)械周周期為112 ccl

37、occks/cyccle1015. 要要改回112 cclkss/cyyclee、no seccuriity、Blaank等等,還有有一個(gè)方方法,請(qǐng)請(qǐng)進(jìn)入“EraaseFlashh”,勾選選“Eraase alll Fllashh+Seecurrityy+Cllks”,執(zhí)行行“Eraase”后即完完成。圖19 進(jìn)進(jìn)入“Eraase Flaash”圖20 執(zhí)執(zhí)行“Eraase alll Fllashh+Seecurrityy+Cllks”11貳、Flaash Maggic 簡(jiǎn)單操操作說(shuō)明明1. 連接接RS-2322 或USBB Caablee,打開(kāi)開(kāi)電源后后,按一一下重置置(Reesett)按鈕

38、鈕。2. 切換換電路板板上“燒錄開(kāi)開(kāi)關(guān)”至“ISPP”位置。3. 執(zhí)行行Flaash Maggic,第第一次執(zhí)執(zhí)行可能能無(wú)法聯(lián)聯(lián)機(jī),因因?yàn)樵O(shè)定定選項(xiàng)未未適當(dāng)選選擇。4. 選擇擇通訊連連接端口口COMM。(如果接接USBB,請(qǐng)至至裝置管管理員的的連接端端口查詢?cè)?5. 選擇擇鮑率996000。6. 選擇擇芯片號(hào)號(hào)碼(CChipp):89CC51RRC2。7. 輸入入振蕩器器頻率,例例如:111.005922MHzz。8. 依照照Opttionns Advvancced Opttionns commmunnicaatioons , 不設(shè)定定Higgh SSpeeedCommuuniccatiion

39、ss 和Hallf-ddupllex Commmunnicaatioons。9. 輸入入燒錄檔檔。10. 勾勾選開(kāi)機(jī)機(jī)畫(huà)面中中的“Eraase bloockss ussed by Hexx Fiile”。11. 按按下Sttartt 鈕。開(kāi)開(kāi)始燒錄錄檔案。12. 燒燒錄完畢畢,切換換“燒錄開(kāi)開(kāi)關(guān)”至“RUNN”至位置置,開(kāi)始始執(zhí)行燒燒錄程序序。13. 此此后只要要重復(fù)步步驟2、9、11、12 步驟即即可。但但是,如如果檔名名未變,步步驟9可以省略,因因此就只只有重復(fù)復(fù)步驟22、11、12 步驟,所所以相當(dāng)當(dāng)簡(jiǎn)單。12叁、注意事事項(xiàng)1. P889C551RCC2 內(nèi)內(nèi)部含有有外部SSRAMM 的內(nèi)內(nèi)存(000000000ff),內(nèi)定定是從內(nèi)內(nèi)部存取取,如果真的是是要從接接在外面面SRAAM 的的IC 存取,必必須先執(zhí)執(zhí)行以下下指令后后才可以以(適用25000AD 組譯器器)。超出出地址范范圍的部部分還是是會(huì)從接接在外面面SRAAM 的的IC 存取。RAMCHHK OOFFORL 88EH,#022H或AUXR REGG 8EEHORG AAUXRR,#002H2. P889C551Rxx2 在在程序執(zhí)執(zhí)行中,可可以使用用軟件設(shè)設(shè)定CPPU 跑跑6 個(gè)cloo

溫馨提示

  • 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)論