keil軟件的使用_第1頁(yè)
keil軟件的使用_第2頁(yè)
keil軟件的使用_第3頁(yè)
keil軟件的使用_第4頁(yè)
keil軟件的使用_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、仿真軟件Keil C51的使用1 Keil C51 操作入門(mén)1.1 Keil C51 簡(jiǎn)介Keil C51 是德國(guó)知名軟件公司Keil(現(xiàn)已并入ARM 公司)開(kāi)發(fā)的基于8051 內(nèi)核的微控制器軟件開(kāi)發(fā)平臺(tái),是目前開(kāi)發(fā)8051 內(nèi)核單片機(jī)的主流工具。Keil 51支持匯編語(yǔ)言、C語(yǔ)言等各種開(kāi)發(fā)語(yǔ)言。其中,uVision3集成開(kāi)發(fā)環(huán)境包含項(xiàng)目管理、源代碼編輯和強(qiáng)大的程序調(diào)試環(huán)境。uVision3調(diào)試器是一個(gè)強(qiáng)大的全特性調(diào)試器,允許用戶(hù)在PC機(jī)上完全模擬目標(biāo)程序、指令集和片內(nèi)外圍功能。1.2 Keil C51 的啟動(dòng) 雙擊桌面上的“Keil uVision3”圖標(biāo)或執(zhí)行開(kāi)始-程序-Keil uVis

2、ion3命令,啟動(dòng)Keil C51程序,啟動(dòng)界面如圖1所示。圖1 Keil C51的啟動(dòng)界面1.3 建立第1 個(gè)Keil C51 程序Keil C51 是一個(gè)功能很強(qiáng)大的軟件,但是使用起來(lái)并不復(fù)雜?,F(xiàn)在就通過(guò)建立一個(gè)簡(jiǎn)單的LED(發(fā)光二極管)閃爍發(fā)光的實(shí)例來(lái)初步掌握Keil C51的基本用法。硬件電路參見(jiàn)圖2,單片機(jī)I/O 輸出低電平可點(diǎn)亮LED。圖2 LED 閃爍發(fā)光電路 新建工程。執(zhí)行Keil C51 軟件的菜單“Project | New Project”,彈出一個(gè)名為“Create New Project”的對(duì)話(huà)框。先選擇一個(gè)合適的文件夾準(zhǔn)備來(lái)存放工程文件,比如“E:ProjectLe

3、dFlash”,其中“LedFlash”是新建的文件夾。建議:今后每新建一個(gè)工程都要在適當(dāng)?shù)拇疟P(pán)位置新建一個(gè)文件夾用來(lái)保存工程文件,以方便管理,并養(yǎng)成良好的習(xí)慣。最后,為工程取名為“LedFlash”,并保存。參見(jiàn)圖3。圖3 新建Keil C51 工程 選擇CPU。緊接著,Keil C51 提示選擇CPU 器件。8051 內(nèi)核單片機(jī)最早是由鼎鼎大名的Intel 公司發(fā)明的,后來(lái)其他廠商如Philips 、Atmel 、Winbond 等先后推出其兼容產(chǎn)品,并在8051 的基礎(chǔ)上擴(kuò)展了許多增強(qiáng)功能。在這里可以選擇Philips 的第1 個(gè)器件“80/87C51”,該器件與Intel 的8051

4、完全兼容。參見(jiàn)圖4 。圖4 選擇CPU 接下來(lái)彈出一個(gè)如圖5 所示的對(duì)話(huà)框。該對(duì)話(huà)框提示是否要把標(biāo)準(zhǔn)8051 的啟動(dòng)代碼添加到工程中去。Keil C51 既支持C 語(yǔ)言編程也支持匯編語(yǔ)言編程。如果打算用匯編語(yǔ)言寫(xiě)程序,則應(yīng)當(dāng)選擇“否(N)”。如果打算用C 語(yǔ)言寫(xiě)程序,一般也選擇“否(N)”,但是,如果用到了某些增強(qiáng)功能需要初始化配置時(shí),則可以選擇“是(Y)”。在這里,我們選擇“否(N)”,即不添加啟動(dòng)代碼。圖5 選擇是否要添加啟動(dòng)代碼至此,一個(gè)空的Keil C51工程建立完畢。 執(zhí)行菜單“File|New”,出現(xiàn)一個(gè)名為“Textn”(其中n 表示序號(hào))的文檔。 接著執(zhí)行菜單“File|Sav

5、e”,彈出一個(gè)名為“Save As”的對(duì)話(huà)框。將文件名改為“main.c”,然后保存,參見(jiàn)圖6。注意:擴(kuò)展名“.c”不可省略。圖6 保存新建的源程序文件 添加源程序文件到工程中?,F(xiàn)在,一個(gè)空的源程序文件“main.c”已經(jīng)建立,但是這個(gè)文件與剛才新建的工程之間并沒(méi)有什么內(nèi)在聯(lián)系。我們需要把它添加到工程中去。單擊Keil C51 軟件左邊項(xiàng)目工作窗口“Target 1 ”上的“”,將其展開(kāi)。然后右擊“Source Group 1”文件夾,會(huì)彈出如圖7 所示的選擇菜單。單擊其中的“Add Files to Group Source Group 1 ”項(xiàng),將彈出如圖8 所示的對(duì)話(huà)框。 先選擇文件類(lèi)型

6、為“C Source file (*.c)”,這時(shí),對(duì)話(huà)框內(nèi)將出現(xiàn)剛才保存過(guò)的“main.c”。單擊文件“main.c”,再按一次“Add”按鈕(請(qǐng)不要多次點(diǎn)擊“Add” 按鈕),最后按“Close”按鈕。這時(shí),源程序文件“main.c ”已經(jīng)出現(xiàn)在項(xiàng)目工作窗口的“Source Group 1 ”文件夾內(nèi),可以單擊左邊的“”展開(kāi)后查看。圖7 準(zhǔn)備添加源程序文件到工程中圖8 向工程中添加源程序文件 現(xiàn)在開(kāi)始輸入源程序。先最大化“main.c”源程序窗口,然后請(qǐng)按以下程序清單輸入程序代碼。程序清單: LED 閃爍發(fā)光程序main.c/* 程序名稱(chēng):LED 閃爍發(fā)光硬件接法:P1.1 控制LED,低

7、電平點(diǎn)亮運(yùn)行效果:LED 亮200ms ,滅800ms,反復(fù)循環(huán)*/#include /包含8051 的SFR 寄存器定義頭文件sbit LED = P11; /定義I/O 接口/*函數(shù):Delay()功能:延時(shí)0.01s2.56s參數(shù):t0 時(shí),延時(shí)(t*0.01)s t=0 時(shí),延時(shí)2.56s 說(shuō)明:定時(shí)10ms 的定時(shí)器初值65536-0.01/(1/(f/12) ,其中f為晶振頻率*/ void Delay(unsigned char t) do TH0 = 0xDC; /設(shè)置定時(shí)器初值(定時(shí)10ms) TL0 = 0x00; TR0 = 1; /啟動(dòng)定時(shí)器 while ( !TF0

8、);/等待定時(shí)器溢出 TR0 = 0; /停止定時(shí)器 TF0=0; / 清除溢出標(biāo)志 while ( -t != 0 ); /循環(huán)t 次/主函數(shù)void main() TMOD &= 0xF0; /T0 設(shè)置在方式1,即16 位定時(shí)器(不影響T1 的模式)TMOD |= 0x01;for (;)LED = 0;/點(diǎn)亮LEDDelay(20);/延時(shí)200msLED = 1;/熄滅LEDDelay(80);/延時(shí)800ms 單擊Keil C51 工具欄的“ ”圖標(biāo),彈出名為“Options for Target Target 1 ”的對(duì)話(huà)框。單擊“Output”標(biāo)簽頁(yè),選中“Create HEX

9、 File”項(xiàng),然后“確定”。參見(jiàn)圖9 。圖9 編譯環(huán)境設(shè)置 單擊工具欄的按鈕“ ”編譯當(dāng)前源程序。編譯結(jié)果會(huì)顯示在輸出窗口內(nèi)。如果是“0 Error(s), 0 Warning(s).”就表示程序沒(méi)有問(wèn)題了(至少是在語(yǔ)法上不存在問(wèn)題了)。如果存在錯(cuò)誤或警告,則仔細(xì)檢查程序是否與程序清單一致。修改后,再編譯,直到通過(guò)為止。 編譯后的結(jié)果會(huì)生成Intel HEX 格式的程序文件“LedFlash.hex”。該文件可以被專(zhuān)門(mén)的芯片燒寫(xiě)工具載入并最終燒錄到具體的芯片中。芯片安裝到自己的電路板上,通電,就可以運(yùn)行里面的程序了。還有一類(lèi)叫做“ISP” (In System Programming )的下

10、載方法,也能夠把程序文件燒錄到芯片內(nèi),但是采用的是串行在線方式,芯片不必從電路板上取下。ISP 方式編程速度較慢但操作要方便些。Philips 的多款8051 內(nèi)核單片機(jī)都能很好的支持ISP 下載功能,比如P89V51RB2 、P89V51RD2 等等。1.4 新建A51 匯編工程 Keil C51 軟件也支持A51 匯編編程。建立A51 工程的操作步驟與建立C51 工程基本相同,但有兩個(gè)要點(diǎn)請(qǐng)注意: 新建的源程序文件名要以”.A51”或“.ASM”作為后綴。 A51 源程序添加到工程中時(shí),文件類(lèi)型要選擇“Asm Source file(*.s*; *.src; *.a*)”。其它操作步驟都跟

11、建立C51 工程相同。2 在Keil C51下調(diào)試程序Keil C51的調(diào)試功能非常強(qiáng)大,現(xiàn)在仍然以LED閃爍發(fā)光程序?yàn)槔?,?lái)具體了解如何進(jìn)行仿真操作。2.1 進(jìn)入仿真狀態(tài)如果程序編譯通過(guò),就可以仿真了。在仿真之前,有一項(xiàng)參數(shù)最好配置一下,仍然按“ ” 圖標(biāo)進(jìn)入編譯環(huán)境設(shè)置,在Target選項(xiàng)找到“Xtal (MHz)”項(xiàng),填入11.0592 。最后點(diǎn)擊“確定”。進(jìn)入仿真狀態(tài)很簡(jiǎn)單,直接點(diǎn)擊工具欄紅色的“ ”圖標(biāo)。2.2 認(rèn)識(shí)各個(gè)仿真窗口圖10 Keil C51 源程序窗口1. 源程序窗口Keil C51 調(diào)試界面的中間是源程序窗口,參見(jiàn)圖10 。黃色箭頭“ ”所指為當(dāng)前即將執(zhí)行但還沒(méi)有執(zhí)行的

12、代碼。以深灰色標(biāo)記的程序行是可以執(zhí)行的代碼(當(dāng)然,在調(diào)試過(guò)程中未必一定要去執(zhí)行)。以淺灰色標(biāo)記的程序行不可作為代碼來(lái)執(zhí)行,它們是注釋、空行、標(biāo)號(hào)或ROM 數(shù)據(jù)表。以綠色標(biāo)記的程序行表示曾經(jīng)執(zhí)行過(guò)的代碼。2. 寄存器窗口圖11 Keil C51 寄存器窗口Keil C51 調(diào)試界面的左邊是寄存器窗口,參見(jiàn)圖11 。8051 的工作寄存器(R0R7) 和系統(tǒng)寄存器(a、b、sp、dptr、PC、psw)都列出來(lái)了。Value 欄顯示的是寄存器的當(dāng)前數(shù)值。如果在調(diào)試過(guò)程中某個(gè)寄存器的值有變化,則會(huì)用藍(lán)色的背景標(biāo)記。單擊psw 寄存器左邊的“”,展開(kāi)后還可以看到其每一位的情況。3. 匯編窗口單擊工具欄

13、的“ ”圖標(biāo),源程序窗口會(huì)自動(dòng)切換成匯編窗口,參見(jiàn)圖12。在匯編窗口里,我們可以看到每條指令的存儲(chǔ)地址和編碼等信息。再次單擊“ ”,回到源程序窗口。4. 存儲(chǔ)器窗口單擊工具欄的“ ”圖標(biāo),將顯示出存儲(chǔ)器窗口,參見(jiàn)圖13。8051 單片機(jī)的存儲(chǔ)器分為多個(gè)不同的邏輯空間。如果要觀察代碼存儲(chǔ)器的內(nèi)容,就在地址欄“Address:”內(nèi)輸入“C: 地址”,例如:C:0080H 。同理,觀察內(nèi)部數(shù)據(jù)存儲(chǔ)器輸入“I:地址”,觀察外部數(shù)據(jù)存儲(chǔ)器輸入“X:地址”。拖動(dòng)存儲(chǔ)器窗口右邊的滾動(dòng)條可觀察其它存儲(chǔ)單元。存儲(chǔ)器窗口有“Memory #1Memory #4 ”共4 個(gè)觀察子窗,可以用來(lái)分別觀察代碼存儲(chǔ)器、內(nèi)部

14、數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器。存儲(chǔ)器的內(nèi)容是可以修改的。用鼠標(biāo)右擊打算要修改的存儲(chǔ)單元,選擇“Modify Memory at ”項(xiàng),彈出修改對(duì)話(huà)框,可以隨意修改存儲(chǔ)單元的內(nèi)容。圖12 Keil C51 匯編窗口圖13 Keil C51 存儲(chǔ)器窗口圖14 Keil C51 變量觀察和堆棧窗口5、變量觀察和堆棧窗口單擊工具欄的“”圖標(biāo),將顯示變量觀察和堆棧窗口(Watch & Call Stack Window),參見(jiàn)圖 14。在Locals 標(biāo)簽頁(yè),會(huì)自動(dòng)顯示局部變量的名稱(chēng)和數(shù)值。在C 語(yǔ)言程序的函數(shù)中,每一對(duì)花括號(hào)“”內(nèi)定義變量都是局部變量,能夠自動(dòng)顯示。在“Watch ”標(biāo)簽頁(yè)內(nèi),先用鼠標(biāo)點(diǎn)

15、擊一次“type F2 to edit”,再按功能鍵“F2”,輸入所要觀察的局部或全局變量的名稱(chēng),回車(chē)后就能顯示出當(dāng)前數(shù)值。在“Call Stack ”標(biāo)簽頁(yè)內(nèi),可以實(shí)時(shí)地觀察到堆棧的使用情況。2.3 程序的運(yùn)行控制Keil C51 能夠?qū)崿F(xiàn)程序單步和全速運(yùn)行,具體由工具欄上的按鈕來(lái)實(shí)現(xiàn):復(fù)位按鈕:?jiǎn)螕舸藞D標(biāo),能夠使程序復(fù)位,程序?qū)牡刂稢:0000H 處執(zhí)行。全速運(yùn)行:?jiǎn)螕舸藞D標(biāo),能夠使程序全速運(yùn)行。停止運(yùn)行:該圖標(biāo)原來(lái)是灰色(不可操作),在進(jìn)入全速運(yùn)行狀態(tài)后會(huì)變成紅色。如果要停下來(lái),則可以按此圖標(biāo)。單步進(jìn)入:按此圖標(biāo)可以實(shí)現(xiàn)程序的單步執(zhí)行。在遇到函數(shù)調(diào)用時(shí),會(huì)跟蹤進(jìn)入函數(shù)體。單步跳過(guò):?jiǎn)尾?/p>

16、執(zhí)行,遇到函數(shù)時(shí)視作1條指令來(lái)執(zhí)行,不會(huì)跟蹤進(jìn)入。單步跳出:在調(diào)試C語(yǔ)言程序時(shí),如果希望從某個(gè)函數(shù)中提前返回,則可以按此圖標(biāo)。執(zhí)行到光標(biāo) :用鼠標(biāo)單擊某條可執(zhí)行的代碼(深灰色標(biāo)記的程序行)。然后按此圖標(biāo),則程序開(kāi)始全速執(zhí)行,當(dāng)遇到光標(biāo)所在的行時(shí),會(huì)自動(dòng)停下來(lái)。如果單擊不可執(zhí)行的程序行(有淺灰色標(biāo)記),試圖讓程序執(zhí)行到該行,是不允許的,“”圖標(biāo)也會(huì)立即變成灰色,不讓操作。設(shè)置/清除斷點(diǎn) :Keil C51支持?jǐn)帱c(diǎn)設(shè)置功能。單擊需要設(shè)置斷點(diǎn)的行,再單擊此圖標(biāo),我們會(huì)看到該行被一個(gè)紅色的小方塊標(biāo)記。當(dāng)程序全速運(yùn)行時(shí)遇到斷點(diǎn),便會(huì)自動(dòng)停下來(lái)。Keil C51允許在同一個(gè)程序里設(shè)置多個(gè)斷點(diǎn)。清除某個(gè)斷點(diǎn)的方法是,將光標(biāo)停在該行上,再按一次“ ”圖標(biāo)。另外一種設(shè)置/清除斷點(diǎn)的快捷方法是,用鼠標(biāo)在目標(biāo)程序行的空白處雙擊,不妨試一試。清除所有斷點(diǎn) :如果設(shè)置了多個(gè)斷點(diǎn),想一并清除,則可以按此圖標(biāo)。圖15 外圍設(shè)備中的P1 和T0 對(duì)話(huà)框2.4 外圍設(shè)備訪

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論