版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目2彩燈控制電路學(xué)習(xí)目標(biāo)通過本項(xiàng)目的學(xué)習(xí),能夠熟練編程平臺CodeWarriorr軟件的開發(fā)環(huán)境;能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個(gè)選項(xiàng)的作用;能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程;熟悉并能識別窗口工程下的各個(gè)圖標(biāo)的含義;能夠熟悉闡述編譯器及鏈接器的概念及用途。能夠根據(jù)上述知識創(chuàng)建工程、編輯源文件并進(jìn)行程序調(diào)試。學(xué)習(xí)要求能夠熟練編程平臺CodeWarriorr軟件的開發(fā)環(huán)境能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個(gè)選項(xiàng)的作用能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程熟悉并能識別窗口工程下的各個(gè)圖標(biāo)的含義能夠熟悉闡述編譯器及鏈接器的概念及用途能夠根據(jù)上述知識創(chuàng)建工程、編輯源文件并進(jìn)行程序調(diào)試項(xiàng)目導(dǎo)入彩燈陣列具有很好的裝飾效果,廣泛應(yīng)用于廣告宣傳、店鋪裝飾、舞臺燈光等場合。本實(shí)訓(xùn)內(nèi)容是采用單片機(jī)控制彩燈陣列,實(shí)現(xiàn)多種動(dòng)態(tài)變化效果。具體要求:有單片機(jī)控制16個(gè)彩燈陣列,實(shí)現(xiàn)彩燈的左移、右移、從左向右逐個(gè)點(diǎn)亮不熄滅、從右向左逐個(gè)熄滅等多種變化。如圖1-8所示。
項(xiàng)目分析1.用最少的元器件構(gòu)成一個(gè)單片機(jī)的最小應(yīng)用系統(tǒng)。2.LED燈點(diǎn)亮和熄滅是通過控制其導(dǎo)通和截止來實(shí)現(xiàn)的,而單片機(jī)的通用輸入輸出(I/O)端口有足夠的電流驅(qū)動(dòng)LED燈亮滅的能力,因此,圖1-8所示的電路是采用端口A和端口D來驅(qū)動(dòng)LED燈。實(shí)現(xiàn)LED燈的多種動(dòng)態(tài)變化效果,需要設(shè)計(jì)單片機(jī)的最小應(yīng)用系統(tǒng)硬件(硬件設(shè)計(jì)已在項(xiàng)目1介紹)和控制程序軟件,為此我們應(yīng)先學(xué)習(xí)單片機(jī)集成開發(fā)環(huán)境(IDE)------CodeWarriorr軟件包。(編寫程序所需的相關(guān)尋址方式和匯編指令將在項(xiàng)目3介紹。)相關(guān)知識
2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.2工程和文件
2.3編譯器2.4鏈接器
2.5綜合應(yīng)用實(shí)例2.1編程平臺CodeWarrior的開發(fā)環(huán)境當(dāng)用戶啟動(dòng)CodeWarrior軟件時(shí),系統(tǒng)將進(jìn)入開發(fā)界面,如圖2-1所示。整個(gè)界面是由標(biāo)題欄、菜單欄、工具欄、工作區(qū)組成2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.1.1菜單欄菜單欄是由文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單組成。如圖2-3所示。下面分別介紹各個(gè)菜單的功能。2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.1.2工具欄如圖2-3所示,工具欄的各個(gè)圖標(biāo)的解釋依次如下:新建文本文件、新建工程、找開文件、保存文件、撤銷、重做、剪切、復(fù)制、粘貼、查找、查找下一個(gè)、替代、編譯、Make、停止構(gòu)建、調(diào)試、錯(cuò)誤、優(yōu)選項(xiàng)、標(biāo)準(zhǔn)設(shè)置、切換至外部編輯器。2.2工程和文件
為了使用CodeWarrior來創(chuàng)建一個(gè)應(yīng)用程序,必須創(chuàng)建許多文件來構(gòu)成一個(gè)工程(Project)。該工程的設(shè)置和所有這些文件的指針都被存放在一個(gè)工程文件中。這個(gè)工程文件保存了所有文件相互依存的關(guān)系,并且可將它們組合成為一個(gè)可用的應(yīng)用程序。而這些設(shè)置包括編譯和鏈接設(shè)置、源文件、庫文件以及它們之間產(chǎn)生相互關(guān)系。工程窗口依次顯示了這些程序和該程序所包含的文件的信息,并且通過點(diǎn)擊就可以輕松地修改這個(gè)工程。2.2工程和文件2.2.1使用Startup(啟動(dòng))對話框(1)單擊CreateNewProject
按鈕,打開新工程向?qū)?。如圖2-12所示。(2)選擇DeviceandConnection
對話框中正在使用的芯片系列。如圖2-13所示。(3)單擊Next。(4)在ProjectName
區(qū)域內(nèi)輸入工程名稱,并為新工程設(shè)置文件路徑Location。(5)單擊Next,并繼續(xù)為工程選擇相應(yīng)的選項(xiàng)。(6)在最后一個(gè)窗口中,單擊Finish來完成創(chuàng)建一個(gè)新的工程。2.2工程和文件2.2工程和文件使用Startup對話框來加載實(shí)例工程(1)單擊LoadExampleProject,打開實(shí)例工程向?qū)?。如圖2-12所示。(2)選擇實(shí)例工程。(3)在
ProjectName區(qū)域內(nèi)輸入工程名稱,并使用Set按鈕來瀏覽工程的Location。(4)單擊CreateProject。應(yīng)用軟件將會創(chuàng)建一個(gè)帶有源文件的實(shí)例工程,它包括文件、庫文件和連接文件。2.2工程和文件2.2.2管理工程使用以下任務(wù)來管理工程:?創(chuàng)建一個(gè)新工程;?打開現(xiàn)有工程;?保存工程;?關(guān)閉工程;?檢查已打開的工程;?打印已打開的工程。2.2工程和文件2.2.3窗口工程Project窗口在計(jì)算機(jī)程序中的作用是組織文件。使用這一窗口控制每一文件的各個(gè)屬性。窗口工程的窗口包含以下幾項(xiàng):·Project窗口工具欄;·制表符;·欄目。圖2-15顯示一個(gè)樣例Project窗口。表2-8說明了Project窗口中的項(xiàng)目。2.2工程和文件2.2工程和文件2.2工程和文件2.3編譯器2.3.1編譯器的概述源程序輸入完之后的工作就是要編譯它,編譯就是計(jì)算機(jī)把你所寫(通常是用C或匯編等高級語言編寫的)的源代碼進(jìn)行分解、分析,然后轉(zhuǎn)化為機(jī)器語言。編譯器就是將這些“高級語言”翻譯為“機(jī)器語言(低級語言)”的程序。而機(jī)器語言是一種計(jì)算機(jī)能夠理解的語言,它的優(yōu)點(diǎn)就是運(yùn)行速度比其它語言快。一個(gè)編譯器的主要工作流程:源代碼(sourcecode)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標(biāo)代碼(objectcode)→鏈接器(Linker)→可執(zhí)行程序(executables)。在正式開始編譯源代碼之前,CodeWarrior還要對其做預(yù)處理。預(yù)處理就是要把這些宏轉(zhuǎn)換為它們實(shí)際表示的代碼,此外還要替換一些定義符號(比如#defineTHREE3)為實(shí)際的源代碼。在這個(gè)階段,是對C或C++代碼進(jìn)行編譯前的一些準(zhǔn)備工作。在編寫程序的過程中,往往會有很多相同的代碼輸入,把這些相同的代碼用宏(macros)來代替,這樣,在用到這些代碼時(shí),輸入宏就可以了。例如,可以使用APPNAME作為一個(gè)宏,來表示“MetrowerksCodeWarrior”,以此來減少輸入的工作量。2.3編譯器一個(gè)編譯器的主要工作流程:源代碼(sourcecode)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標(biāo)代碼(objectcode)→鏈接器(Linker)→可執(zhí)行程序(executables)。在正式開始編譯源代碼之前,CodeWarrior還要對其做預(yù)處理。預(yù)處理就是要把這些宏轉(zhuǎn)換為它們實(shí)際表示的代碼,此外還要替換一些定義符號(比如#defineTHREE3)為實(shí)際的源代碼。在這個(gè)階段,是對C或C++代碼進(jìn)行編譯前的一些準(zhǔn)備工作。在編寫程序的過程中,往往會有很多相同的代碼輸入,把這些相同的代碼用宏(macros)來代替,這樣,在用到這些代碼時(shí),輸入宏就可以了。例如,可以使用APPNAME作為一個(gè)宏,來表示“MetrowerksCodeWarrior”,以此來減少輸入的工作量。2.3編譯器2.3.2編譯工程編譯工程的作用是處理由程序組成的源文件和生成目標(biāo)代碼,并在源文件中標(biāo)記語法錯(cuò)誤。下面具體介紹編譯工程的步驟:·編譯源文件;·設(shè)置構(gòu)建順序和連接順序;·更新工程或其文件;·為工程創(chuàng)建可執(zhí)行文件;·為工程運(yùn)行被創(chuàng)建的應(yīng)用程序;·移除目標(biāo)代碼2.4鏈接器當(dāng)程序編譯完畢以后,接著就要使用鏈接器來把程序的各個(gè)文件連接起來。鏈接器(Linker)是一個(gè)程序,將一個(gè)或多個(gè)由編譯器或匯編器生成的目標(biāo)文件外加庫鏈接為一個(gè)可執(zhí)行文件。目標(biāo)文件是包括機(jī)器碼和鏈接器可用信息的程序模塊。簡單的講,鏈接器的工作就是解析未定義的符號引用,將目標(biāo)文件中的占位符替換為符號的地址。為了構(gòu)造可執(zhí)行文件,2.4鏈接器鏈接器必須完成兩個(gè)主要的任務(wù):
1、符號解析(symbolresolution)。符號解析的目的是將每個(gè)符號引用和相應(yīng)的一個(gè)符號定義聯(lián)系起來。
2、重定位(relocation)。編譯器和匯編器生成從地址0開始的代碼和數(shù)據(jù)。鏈接器通過把每個(gè)符號定義和一個(gè)存儲器位置聯(lián)系起來,然后,修改所有對這些符號的引用,并使他們指向這個(gè)存儲器位置,從而重定位這些數(shù)據(jù)。2.5綜合應(yīng)用實(shí)例
2.5.1新建工程(1)執(zhí)行文件(File)菜單的新建工程(NewProject)選項(xiàng)。(2)在彈出的新建工程窗口(MicrocontrollersNewProject)中選擇單片機(jī)的型號和鏈接工具。(如圖2-16)(3)點(diǎn)擊下一步,在彈出的對話框中選擇要使用的編程語言,如匯編語言、C語言、C++語言等,輸入新建工程的名稱和保存的路徑。(如圖2-17)(4)單擊下一步,在彈出的對話框中把已建立的文件加入到工程中去,先點(diǎn)擊要加入的文件,再按增加(Add)按鈕即可。(5)單擊下一步,在彈出的對話框中選擇開發(fā)選項(xiàng),None選項(xiàng)為建立空白文件,DeviceInitialization選項(xiàng)為建立帶有初始啟動(dòng)代碼的文件,ProcessorExpert選項(xiàng)為專業(yè)處理文件。(6)單擊下一步,在彈出的對話框中可選擇啟動(dòng)代碼的優(yōu)化和內(nèi)存的優(yōu)化。(7)單擊下一步,在彈出的對話框中可選擇是否使用PC-Lint鏈接器,按完成即可新建工程。2.5綜合應(yīng)用實(shí)例2.5綜合應(yīng)用實(shí)例2.5綜合應(yīng)用實(shí)例2.5.2源程序的編寫在文件標(biāo)簽頁中的Sources組中雙擊Main.c文件則可打開源程序的工作區(qū),在此工作區(qū)內(nèi)可以編寫應(yīng)用程序。例如:2.5綜合應(yīng)用實(shí)例#include<hidef.h> #include"derivative.h"#include"DEMO908GZ60.h" /*//------------------------------------------//PeripheralInitializationRoutine//------------------------------------------*/voidPeriphInit(void){DDRF=0xFF; /*PortF[0..7]equalsoutput*/LED1=OFF; /*TurnOffLEDs*/LED2=OFF;LED3=OFF;LED4=OFF;LED5=OFF;LED6=OFF;LED7=OFF;LED8=OFF;
DDRC_DDRC5=0; /*PortC_5andC_6equalsinput*/DDRC_DDRC6=0;PTC_PTC5=0; /*ClearsPortC_5andC_6*/PTC_PTC6=0;}/*//-------------------------------------------2.5綜合應(yīng)用實(shí)例//Main//-------------------------------------------*/voidmain(void){ PeriphInit(); /*Microcontrollerinitialization*/
for(;;){
__RESET_WATCHDOG();/*Kicksthedog*/ LED1=SW1; /*TurnsonoroffLED1*/ LED2=SW2; /*TurnsonoroffLED2*/
}/*Loopforever*/
}/*endmain(void)*/2.5綜合應(yīng)用實(shí)例2.5.3源程序的編譯步驟:單擊工程菜單(Project)中的編譯選項(xiàng)(Compile)即可對源程序進(jìn)行編譯。2.5綜合應(yīng)用實(shí)例2.5.4源程序的連接步驟:單擊工程菜單(Project)中的鏈接選項(xiàng)(Make)即可對源程序和各個(gè)庫文件進(jìn)行鏈接。2.5綜合應(yīng)用實(shí)例2.5.5源程序的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招投標(biāo)項(xiàng)目成本控制與優(yōu)化
- 節(jié)能減排廉潔自律招投標(biāo)守則
- 咖啡館租賃合同草稿
- 腹股溝斜疝修補(bǔ)術(shù)后護(hù)理
- 建筑施工勞務(wù)合同:旅游設(shè)施建設(shè)
- 醫(yī)療機(jī)構(gòu)市場營銷與市場定位
- 公路充電設(shè)施維護(hù)合同范本
- 木材加工安全事故預(yù)防
- 屋頂修復(fù)漏水施工合同
- 制造業(yè)用工規(guī)范承諾書
- 《分子和原子》參考課件
- 河南中職語文-基礎(chǔ)模塊上冊-(高教版)第一單元測試題含答案
- 設(shè)備維修保養(yǎng)人員專業(yè)素質(zhì)培養(yǎng)
- 27《一個(gè)粗瓷大碗》(教學(xué)設(shè)計(jì))統(tǒng)編版語文三年級上冊
- 學(xué)前兒童聽說游戲活動(dòng)(學(xué)前兒童語言教育活動(dòng)課件)
- 環(huán)境藝術(shù)設(shè)計(jì)發(fā)展現(xiàn)狀分析報(bào)告
- 培訓(xùn)機(jī)構(gòu)校長競聘
- 企業(yè)微信指導(dǎo)手冊管理員版
- 孫子兵法中的思維智慧智慧樹知到期末考試答案2024年
- 臨床試驗(yàn)方案偏離處理流程
- 乳腺癌一病一品
評論
0/150
提交評論