項目2彩燈控制電路_第1頁
項目2彩燈控制電路_第2頁
項目2彩燈控制電路_第3頁
項目2彩燈控制電路_第4頁
項目2彩燈控制電路_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

項目2彩燈控制電路學(xué)習(xí)目標(biāo)通過本項目的學(xué)習(xí),能夠熟練編程平臺CodeWarriorr軟件的開發(fā)環(huán)境;能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個選項的作用;能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程;熟悉并能識別窗口工程下的各個圖標(biāo)的含義;能夠熟悉闡述編譯器及鏈接器的概念及用途。能夠根據(jù)上述知識創(chuàng)建工程、編輯源文件并進行程序調(diào)試。學(xué)習(xí)要求能夠熟練編程平臺CodeWarriorr軟件的開發(fā)環(huán)境能夠闡述文件菜單、編輯菜單、視圖菜單、查找菜單、工程菜單、調(diào)試菜單、窗口菜單和幫助菜單中各個選項的作用能夠理解工程的含義并熟練掌握創(chuàng)建工程和管理工程熟悉并能識別窗口工程下的各個圖標(biāo)的含義能夠熟悉闡述編譯器及鏈接器的概念及用途能夠根據(jù)上述知識創(chuàng)建工程、編輯源文件并進行程序調(diào)試項目導(dǎo)入彩燈陣列具有很好的裝飾效果,廣泛應(yīng)用于廣告宣傳、店鋪裝飾、舞臺燈光等場合。本實訓(xùn)內(nèi)容是采用單片機控制彩燈陣列,實現(xiàn)多種動態(tài)變化效果。具體要求:有單片機控制16個彩燈陣列,實現(xiàn)彩燈的左移、右移、從左向右逐個點亮不熄滅、從右向左逐個熄滅等多種變化。如圖1-8所示。

項目分析1.用最少的元器件構(gòu)成一個單片機的最小應(yīng)用系統(tǒng)。2.LED燈點亮和熄滅是通過控制其導(dǎo)通和截止來實現(xiàn)的,而單片機的通用輸入輸出(I/O)端口有足夠的電流驅(qū)動LED燈亮滅的能力,因此,圖1-8所示的電路是采用端口A和端口D來驅(qū)動LED燈。實現(xiàn)LED燈的多種動態(tài)變化效果,需要設(shè)計單片機的最小應(yīng)用系統(tǒng)硬件(硬件設(shè)計已在項目1介紹)和控制程序軟件,為此我們應(yīng)先學(xué)習(xí)單片機集成開發(fā)環(huán)境(IDE)------CodeWarriorr軟件包。(編寫程序所需的相關(guān)尋址方式和匯編指令將在項目3介紹。)相關(guān)知識

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

2.3編譯器2.4鏈接器

2.5綜合應(yīng)用實例2.1編程平臺CodeWarrior的開發(fā)環(huán)境當(dāng)用戶啟動CodeWarrior軟件時,系統(tǒng)將進入開發(fā)界面,如圖2-1所示。整個界面是由標(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所示。下面分別介紹各個菜單的功能。2.1編程平臺CodeWarrior的開發(fā)環(huán)境2.1.2工具欄如圖2-3所示,工具欄的各個圖標(biāo)的解釋依次如下:新建文本文件、新建工程、找開文件、保存文件、撤銷、重做、剪切、復(fù)制、粘貼、查找、查找下一個、替代、編譯、Make、停止構(gòu)建、調(diào)試、錯誤、優(yōu)選項、標(biāo)準(zhǔn)設(shè)置、切換至外部編輯器。2.2工程和文件

為了使用CodeWarrior來創(chuàng)建一個應(yīng)用程序,必須創(chuàng)建許多文件來構(gòu)成一個工程(Project)。該工程的設(shè)置和所有這些文件的指針都被存放在一個工程文件中。這個工程文件保存了所有文件相互依存的關(guān)系,并且可將它們組合成為一個可用的應(yīng)用程序。而這些設(shè)置包括編譯和鏈接設(shè)置、源文件、庫文件以及它們之間產(chǎn)生相互關(guān)系。工程窗口依次顯示了這些程序和該程序所包含的文件的信息,并且通過點擊就可以輕松地修改這個工程。2.2工程和文件2.2.1使用Startup(啟動)對話框(1)單擊CreateNewProject

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

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

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

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

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

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

2.5.1新建工程(1)執(zhí)行文件(File)菜單的新建工程(NewProject)選項。(2)在彈出的新建工程窗口(MicrocontrollersNewProject)中選擇單片機的型號和鏈接工具。(如圖2-16)(3)點擊下一步,在彈出的對話框中選擇要使用的編程語言,如匯編語言、C語言、C++語言等,輸入新建工程的名稱和保存的路徑。(如圖2-17)(4)單擊下一步,在彈出的對話框中把已建立的文件加入到工程中去,先點擊要加入的文件,再按增加(Add)按鈕即可。(5)單擊下一步,在彈出的對話框中選擇開發(fā)選項,None選項為建立空白文件,DeviceInitialization選項為建立帶有初始啟動代碼的文件,ProcessorExpert選項為專業(yè)處理文件。(6)單擊下一步,在彈出的對話框中可選擇啟動代碼的優(yōu)化和內(nèi)存的優(yōu)化。(7)單擊下一步,在彈出的對話框中可選擇是否使用PC-Lint鏈接器,按完成即可新建工程。2.5綜合應(yīng)用實例2.5綜合應(yīng)用實例2.5綜合應(yīng)用實例2.5.2源程序的編寫在文件標(biāo)簽頁中的Sources組中雙擊Main.c文件則可打開源程序的工作區(qū),在此工作區(qū)內(nèi)可以編寫應(yīng)用程序。例如:2.5綜合應(yīng)用實例#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)用實例//Main//-------------------------------------------*/voidmain(void){ PeriphInit(); /*Microcontrollerinitialization*/

for(;;){

__RESET_WATCHDOG();/*Kicksthedog*/ LED1=SW1; /*TurnsonoroffLED1*/ LED2=SW2; /*TurnsonoroffLED2*/

}/*Loopforever*/

}/*endmain(void)*/2.5綜合應(yīng)用實例2.5.3源程序的編譯步驟:單擊工程菜單(Project)中的編譯選項(Compile)即可對源程序進行編譯。2.5綜合應(yīng)用實例2.5.4源程序的連接步驟:單擊工程菜單(Project)中的鏈接選項(Make)即可對源程序和各個庫文件進行鏈接。2.5綜合應(yīng)用實例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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論