項(xiàng)目2彩燈控制電路_第1頁(yè)
項(xiàng)目2彩燈控制電路_第2頁(yè)
項(xiàng)目2彩燈控制電路_第3頁(yè)
項(xiàng)目2彩燈控制電路_第4頁(yè)
項(xiàng)目2彩燈控制電路_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

項(xiàng)目2彩燈控制電路學(xué)習(xí)目標(biāo)通過(guò)本項(xiàng)目的學(xué)習(xí),能夠熟練編程平臺(tái)CodeWarriorr軟件的開發(fā)環(huán)境;能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個(gè)選項(xiàng)的作用;能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程;熟悉并能識(shí)別窗口工程下的各個(gè)圖標(biāo)的含義;能夠熟悉闡述編譯器及鏈接器的概念及用途。能夠根據(jù)上述知識(shí)創(chuàng)建工程、編輯源文件并進(jìn)行程序調(diào)試。學(xué)習(xí)要求能夠熟練編程平臺(tái)CodeWarriorr軟件的開發(fā)環(huán)境能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個(gè)選項(xiàng)的作用能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程熟悉并能識(shí)別窗口工程下的各個(gè)圖標(biāo)的含義能夠熟悉闡述編譯器及鏈接器的概念及用途能夠根據(jù)上述知識(shí)創(chuàng)建工程、編輯源文件并進(jìn)行程序調(diào)試項(xiàng)目導(dǎo)入彩燈陣列具有很好的裝飾效果,廣泛應(yīng)用于廣告宣傳、店鋪裝飾、舞臺(tái)燈光等場(chǎ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)亮和熄滅是通過(guò)控制其導(dǎo)通和截止來(lái)實(shí)現(xiàn)的,而單片機(jī)的通用輸入輸出(I/O)端口有足夠的電流驅(qū)動(dòng)LED燈亮滅的能力,因此,圖1-8所示的電路是采用端口A和端口D來(lái)驅(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)知識(shí)

2.1編程平臺(tái)CodeWarrior的開發(fā)環(huán)境2.2工程和文件

2.3編譯器2.4鏈接器

2.5綜合應(yīng)用實(shí)例2.1編程平臺(tái)CodeWarrior的開發(fā)環(huán)境當(dāng)用戶啟動(dòng)CodeWarrior軟件時(shí),系統(tǒng)將進(jìn)入開發(fā)界面,如圖2-1所示。整個(gè)界面是由標(biāo)題欄、菜單欄、工具欄、工作區(qū)組成2.1編程平臺(tái)CodeWarrior的開發(fā)環(huán)境2.1編程平臺(tái)CodeWarrior的開發(fā)環(huán)境2.1編程平臺(tái)CodeWarrior的開發(fā)環(huán)境2.1.1菜單欄菜單欄是由文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單組成。如圖2-3所示。下面分別介紹各個(gè)菜單的功能。2.1編程平臺(tái)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來(lái)創(chuàng)建一個(gè)應(yīng)用程序,必須創(chuàng)建許多文件來(lái)構(gòu)成一個(gè)工程(Project)。該工程的設(shè)置和所有這些文件的指針都被存放在一個(gè)工程文件中。這個(gè)工程文件保存了所有文件相互依存的關(guān)系,并且可將它們組合成為一個(gè)可用的應(yīng)用程序。而這些設(shè)置包括編譯和鏈接設(shè)置、源文件、庫(kù)文件以及它們之間產(chǎn)生相互關(guān)系。工程窗口依次顯示了這些程序和該程序所包含的文件的信息,并且通過(guò)點(diǎn)擊就可以輕松地修改這個(gè)工程。2.2工程和文件2.2.1使用Startup(啟動(dòng))對(duì)話框(1)單擊CreateNewProject

按鈕,打開新工程向?qū)?。如圖2-12所示。(2)選擇DeviceandConnection

對(duì)話框中正在使用的芯片系列。如圖2-13所示。(3)單擊Next。(4)在ProjectName

區(qū)域內(nèi)輸入工程名稱,并為新工程設(shè)置文件路徑Location。(5)單擊Next,并繼續(xù)為工程選擇相應(yīng)的選項(xiàng)。(6)在最后一個(gè)窗口中,單擊Finish來(lái)完成創(chuàng)建一個(gè)新的工程。2.2工程和文件2.2工程和文件使用Startup對(duì)話框來(lái)加載實(shí)例工程(1)單擊LoadExampleProject,打開實(shí)例工程向?qū)?。如圖2-12所示。(2)選擇實(shí)例工程。(3)在

ProjectName區(qū)域內(nèi)輸入工程名稱,并使用Set按鈕來(lái)瀏覽工程的Location。(4)單擊CreateProject。應(yīng)用軟件將會(huì)創(chuàng)建一個(gè)帶有源文件的實(shí)例工程,它包括文件、庫(kù)文件和連接文件。2.2工程和文件2.2.2管理工程使用以下任務(wù)來(lái)管理工程:?創(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說(shuō)明了Project窗口中的項(xiàng)目。2.2工程和文件2.2工程和文件2.2工程和文件2.3編譯器2.3.1編譯器的概述源程序輸入完之后的工作就是要編譯它,編譯就是計(jì)算機(jī)把你所寫(通常是用C或匯編等高級(jí)語(yǔ)言編寫的)的源代碼進(jìn)行分解、分析,然后轉(zhuǎn)化為機(jī)器語(yǔ)言。編譯器就是將這些“高級(jí)語(yǔ)言”翻譯為“機(jī)器語(yǔ)言(低級(jí)語(yǔ)言)”的程序。而機(jī)器語(yǔ)言是一種計(jì)算機(jī)能夠理解的語(yǔ)言,它的優(yōu)點(diǎn)就是運(yùn)行速度比其它語(yǔ)言快。一個(gè)編譯器的主要工作流程:源代碼(sourcecode)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標(biāo)代碼(objectcode)→鏈接器(Linker)→可執(zhí)行程序(executables)。在正式開始編譯源代碼之前,CodeWarrior還要對(duì)其做預(yù)處理。預(yù)處理就是要把這些宏轉(zhuǎn)換為它們實(shí)際表示的代碼,此外還要替換一些定義符號(hào)(比如#defineTHREE3)為實(shí)際的源代碼。在這個(gè)階段,是對(duì)C或C++代碼進(jìn)行編譯前的一些準(zhǔn)備工作。在編寫程序的過(guò)程中,往往會(huì)有很多相同的代碼輸入,把這些相同的代碼用宏(macros)來(lái)代替,這樣,在用到這些代碼時(shí),輸入宏就可以了。例如,可以使用APPNAME作為一個(gè)宏,來(lái)表示“MetrowerksCodeWarrior”,以此來(lái)減少輸入的工作量。2.3編譯器一個(gè)編譯器的主要工作流程:源代碼(sourcecode)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標(biāo)代碼(objectcode)→鏈接器(Linker)→可執(zhí)行程序(executables)。在正式開始編譯源代碼之前,CodeWarrior還要對(duì)其做預(yù)處理。預(yù)處理就是要把這些宏轉(zhuǎn)換為它們實(shí)際表示的代碼,此外還要替換一些定義符號(hào)(比如#defineTHREE3)為實(shí)際的源代碼。在這個(gè)階段,是對(duì)C或C++代碼進(jìn)行編譯前的一些準(zhǔn)備工作。在編寫程序的過(guò)程中,往往會(huì)有很多相同的代碼輸入,把這些相同的代碼用宏(macros)來(lái)代替,這樣,在用到這些代碼時(shí),輸入宏就可以了。例如,可以使用APPNAME作為一個(gè)宏,來(lái)表示“MetrowerksCodeWarrior”,以此來(lái)減少輸入的工作量。2.3編譯器2.3.2編譯工程編譯工程的作用是處理由程序組成的源文件和生成目標(biāo)代碼,并在源文件中標(biāo)記語(yǔ)法錯(cuò)誤。下面具體介紹編譯工程的步驟:·編譯源文件;·設(shè)置構(gòu)建順序和連接順序;·更新工程或其文件;·為工程創(chuàng)建可執(zhí)行文件;·為工程運(yùn)行被創(chuàng)建的應(yīng)用程序;·移除目標(biāo)代碼2.4鏈接器當(dāng)程序編譯完畢以后,接著就要使用鏈接器來(lái)把程序的各個(gè)文件連接起來(lái)。鏈接器(Linker)是一個(gè)程序,將一個(gè)或多個(gè)由編譯器或匯編器生成的目標(biāo)文件外加庫(kù)鏈接為一個(gè)可執(zhí)行文件。目標(biāo)文件是包括機(jī)器碼和鏈接器可用信息的程序模塊。簡(jiǎn)單的講,鏈接器的工作就是解析未定義的符號(hào)引用,將目標(biāo)文件中的占位符替換為符號(hào)的地址。為了構(gòu)造可執(zhí)行文件,2.4鏈接器鏈接器必須完成兩個(gè)主要的任務(wù):

1、符號(hào)解析(symbolresolution)。符號(hào)解析的目的是將每個(gè)符號(hào)引用和相應(yīng)的一個(gè)符號(hào)定義聯(lián)系起來(lái)。

2、重定位(relocation)。編譯器和匯編器生成從地址0開始的代碼和數(shù)據(jù)。鏈接器通過(guò)把每個(gè)符號(hào)定義和一個(gè)存儲(chǔ)器位置聯(lián)系起來(lái),然后,修改所有對(duì)這些符號(hào)的引用,并使他們指向這個(gè)存儲(chǔ)器位置,從而重定位這些數(shù)據(jù)。2.5綜合應(yīng)用實(shí)例

2.5.1新建工程(1)執(zhí)行文件(File)菜單的新建工程(NewProject)選項(xiàng)。(2)在彈出的新建工程窗口(MicrocontrollersNewProject)中選擇單片機(jī)的型號(hào)和鏈接工具。(如圖2-16)(3)點(diǎn)擊下一步,在彈出的對(duì)話框中選擇要使用的編程語(yǔ)言,如匯編語(yǔ)言、C語(yǔ)言、C++語(yǔ)言等,輸入新建工程的名稱和保存的路徑。(如圖2-17)(4)單擊下一步,在彈出的對(duì)話框中把已建立的文件加入到工程中去,先點(diǎn)擊要加入的文件,再按增加(Add)按鈕即可。(5)單擊下一步,在彈出的對(duì)話框中選擇開發(fā)選項(xiàng),None選項(xiàng)為建立空白文件,DeviceInitialization選項(xiàng)為建立帶有初始啟動(dòng)代碼的文件,ProcessorExpert選項(xiàng)為專業(yè)處理文件。(6)單擊下一步,在彈出的對(duì)話框中可選擇啟動(dòng)代碼的優(yōu)化和內(nèi)存的優(yōu)化。(7)單擊下一步,在彈出的對(duì)話框中可選擇是否使用PC-Lint鏈接器,按完成即可新建工程。2.5綜合應(yīng)用實(shí)例2.5綜合應(yīng)用實(shí)例2.5綜合應(yīng)用實(shí)例2.5.2源程序的編寫在文件標(biāo)簽頁(yè)中的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源程序的編譯步驟:?jiǎn)螕艄こ滩藛危≒roject)中的編譯選項(xiàng)(Compile)即可對(duì)源程序進(jìn)行編譯。2.5綜合應(yīng)用實(shí)例2.5.4源程序的連接步驟:?jiǎn)螕艄こ滩藛危≒roject)中的鏈接選項(xiàng)(Make)即可對(duì)源程序和各個(gè)庫(kù)文件進(jìn)行鏈接。2.5綜合應(yīng)用實(shí)例2.5.5源程序的

溫馨提示

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