官术网_书友最值得收藏!

2.3 Keil μ Vision3中C51的開(kāi)發(fā)流程

當(dāng)硬件電路和軟件開(kāi)發(fā)環(huán)境準(zhǔn)備好之后,便可以在Keil μ Vision3集成開(kāi)發(fā)環(huán)境中編寫C51程序,并下載到硬件電路中執(zhí)行。下面通過(guò)一個(gè)實(shí)例,來(lái)講解如何在Keil μ Vision3集成開(kāi)發(fā)環(huán)境下進(jìn)行單片機(jī)C51語(yǔ)言的程序設(shè)計(jì)。

2.3.1 創(chuàng)建項(xiàng)目

雙擊啟動(dòng)Keil μ Vision3集成開(kāi)發(fā)環(huán)境,C51程序需要在一個(gè)項(xiàng)目中進(jìn)行管理。因此首先開(kāi)始創(chuàng)建項(xiàng)目,操作步驟如下所示。

(1)在Keil μ Vision3集成開(kāi)發(fā)環(huán)境中,選擇“Project”→“New”→“μ Vision Project”命令,彈出“創(chuàng)建新項(xiàng)目”對(duì)話框,如圖2.22所示。用戶可以在其中輸入項(xiàng)目的名稱,并選擇需要保存的目錄。

圖2.22 創(chuàng)建新項(xiàng)目

(2)單擊“保存”按鈕,此時(shí)彈出選擇單片機(jī)型號(hào)對(duì)話框,如圖2.23所示。用戶可以在其中選擇所使用的單片機(jī)型號(hào)。例如選擇Atmel公司的單片機(jī)AT89S52,此時(shí)在Description欄中將會(huì)顯示該單片機(jī)的資源。此時(shí)選擇的單片機(jī)型號(hào)也可以在項(xiàng)目建立后重新更改。

圖2.23 選擇單片機(jī)型號(hào)

(3)選擇完畢后,單擊“確定”按鈕,此時(shí)彈出提示信息,如圖2.24所示。該提示信息詢問(wèn)是否將適合該單片機(jī)型號(hào)的8051啟動(dòng)代碼添加到項(xiàng)目中。對(duì)于C51程序,一般選擇添加即可。

圖2.24 提示信息

(4)單擊“是”按鈕,選擇添加,此時(shí)項(xiàng)目建立完畢。其中還沒(méi)有任何源文件,屬于一個(gè)空殼項(xiàng)目,如圖2.25所示。

圖2.25 項(xiàng)目建立完畢

2.3.2 創(chuàng)建源文件

當(dāng)一個(gè)單片機(jī)項(xiàng)目建立完畢后,需要向其中添加程序的源文件。這里以新建一個(gè)C51源文件為例,介紹具體的操作步驟。

(1)選擇“File”→“New”命令,此時(shí)工作區(qū)中彈出一個(gè)新的源代碼編輯窗口,如圖2.26所示。

圖2.26 新建的源代碼編輯窗口

(2)用戶可以在其中輸入C51的源代碼,輸入如下程序代碼。

        #include <reg51.h>                            //頭文件

        sbit sel=P0^0;                                //位定義

        void main()                                   //主函數(shù)
        {
              P1=0x00;                                //P1端口預(yù)置數(shù)
              while(1)                                //循環(huán)執(zhí)行程序
              {
                    if (sel)                          //判斷端口數(shù)值,如果為高電平
                    {
                        P1=P1+1;                      //P1端口數(shù)據(jù)右移
                        if (P1==0xFF)                 //P1端口為0xFF時(shí),重新置數(shù)
                              P1==0x00;               //以便于循環(huán)操作
                    }
                    else
                    {
                        P1=P1-1;                      //P1端口數(shù)據(jù)左移
                        if (P1==0x00)                 //P1端口為零時(shí),重新置數(shù)
                              P1=0xFF;                //以便于循環(huán)操作
                    }
              }
        }

這段C51程序的功能是判斷單片機(jī)P0.0端口的電平。如果為高電平,就讓P1口的數(shù)據(jù)循環(huán)遞增;如果為低電平,就讓P1口的數(shù)據(jù)循環(huán)遞減。

從這段程序代碼可以看出,C51語(yǔ)言和C語(yǔ)言的程序結(jié)構(gòu)基本一致。由于C51語(yǔ)言運(yùn)行于單片機(jī)系統(tǒng),P0和P1為單片機(jī)的端口資源,可以直接對(duì)端口操作,這是C51語(yǔ)言特有的。

(3)C51源代碼輸入完畢后,可以選擇“File”→“Save”命令,保存為.C文件。

(4)在項(xiàng)目管理窗口中,右擊“Source Group 1”標(biāo)簽,選擇“Add Files to Group‘Source Group 1’”命令,在彈出的對(duì)話框中選擇剛才保存的C51源文件,并添加到當(dāng)前項(xiàng)目中。

2.3.3 編譯項(xiàng)目

項(xiàng)目及C51源文件準(zhǔn)備好后便可以編譯項(xiàng)目了。Keil μ Vision3集成開(kāi)發(fā)環(huán)境中,提供了多個(gè)源代碼編譯命令,分別介紹如下。

? 選擇“Project”→“Translate ??.c”命令,可以完成對(duì)當(dāng)前C51源代碼的翻譯。

? 選擇“Project”→“Build target”命令,即可對(duì)該項(xiàng)目進(jìn)行編譯。

? 選擇“Project”→“ReBuild all target files”命令,可以重新編譯所有的項(xiàng)目文件。

如果源程序無(wú)誤,則編譯完成后,將在輸出窗口中顯示編譯結(jié)果,如圖2.27所示。

圖2.27 編譯輸出結(jié)果

2.3.4 仿真調(diào)試

Keil μ Vision3集成開(kāi)發(fā)環(huán)境中提供了強(qiáng)大的程序仿真功能。在一個(gè)程序下載到單片機(jī)硬件中執(zhí)行之前,可以首先對(duì)程序進(jìn)行仿真,以確保源程序符合要求。下面就介紹如何使用Keil μ Vision3來(lái)進(jìn)行單片機(jī)C51語(yǔ)言程序的仿真調(diào)試。操作步驟如下。

(1)選擇“Debug”→“Start/Stop Debug Session”命令,此時(shí),Keil μ Vision3進(jìn)入仿真調(diào)試模式。

(2)選擇“Peripherals”→“I/O-Ports”→“Port 0”命令,打開(kāi)并行端口P0仿真窗口,如圖2.28所示。

圖2.28 并行端口P0仿真窗口

(3)選擇“Peripherals”→“I/O-Ports”→“Port 1”命令,打開(kāi)并行端口P1仿真窗口,如圖2.29所示。

圖2.29 并行端口P1仿真窗口

(4)按F11鍵,開(kāi)始單步執(zhí)行程序。由于P0端口初始化為0xFF,因此變量sel為1,單片機(jī)的并行端口P1數(shù)據(jù)循環(huán)遞增,如圖2.30所示。

圖2.30 P1端口數(shù)據(jù)遞增

(5)如果手工改變P0.0引腳為低電平,如圖2.31所示。此時(shí),如果繼續(xù)按F11鍵執(zhí)行程序,P1端口的數(shù)據(jù)將循環(huán)遞減。

圖2.31 置P0.0引腳為低電平

(6)選擇“Debug”→“Start/Stop Debug Session”命令,可以退出程序仿真調(diào)試模式。

通過(guò)上面的仿真操作可以看出,這段源代碼完全符合預(yù)期的功能。合理使用Keil μ Vision3集成開(kāi)發(fā)環(huán)境的仿真調(diào)試功能,不僅能夠確保源程序的正確性,同時(shí)也可以在沒(méi)有硬件的基礎(chǔ)上學(xué)習(xí)C51語(yǔ)言及單片機(jī)程序開(kāi)發(fā),從而加快學(xué)習(xí)速度。

2.3.5 程序下載

C51程序需要在單片機(jī)硬件上執(zhí)行,因此需要通過(guò)特定的工具將源程序生成的可執(zhí)行文件寫入單片機(jī)中。Keil μ Vision3集成開(kāi)發(fā)環(huán)境生成的可執(zhí)行文件一般為HEX格式的文件。在Keil μ Vision3中生成單片機(jī)上可執(zhí)行的文件的步驟如下。

(1)選擇“Project”→“Options for Target‘Target 1’”命令,此時(shí)彈出“Options for Target‘Target 1’”對(duì)話框,如圖2.32所示。

圖2.32 “Options for Target‘Target 1’”對(duì)話框

(2)在Output選項(xiàng)卡中,選中“Create Hex File”復(fù)選框,并單擊“確定”按鈕保存設(shè)置。

(3)此時(shí),重新編譯一次,便生成可以下載到單片機(jī)中的HEX執(zhí)行文件。

然后可以利用下載工具將其下載到單片機(jī)中執(zhí)行。目前市場(chǎng)上有多種下載工具可以選擇,其價(jià)格和支持的器件各不相同。但所有的下載工具均包含擦除器件、寫器件、讀器件和校驗(yàn)數(shù)據(jù)等功能。以AT89S52單片機(jī)的程序下載為例,其程序下載界面如圖2.33所示。在下載程序前,一般先擦除單片機(jī),以防止先前程序的干擾。然后,選擇Keil μ Vision3集成開(kāi)發(fā)環(huán)境生成的HEX可執(zhí)行文件寫入單片機(jī)。最后,還需要校驗(yàn)數(shù)據(jù),以確保程序?qū)懭胝_。

圖2.33 下載程序

當(dāng)程序正確通過(guò)編譯并寫入單片機(jī)后,便可以在單片機(jī)中運(yùn)行。

主站蜘蛛池模板: 泰顺县| 梓潼县| 聂拉木县| 民和| 夏邑县| 崇阳县| 开封市| 垫江县| 小金县| 阿拉尔市| 镶黄旗| 甘泉县| 镇远县| 崇阳县| 商南县| 鄂州市| 勐海县| 长海县| 石渠县| 蛟河市| 贵定县| 岐山县| 呼玛县| 丰都县| 泸州市| 庄浪县| 平山县| 会宁县| 新晃| 淮阳县| 江口县| 凉山| 贡觉县| 大埔区| 冀州市| 宾川县| 郧西县| 岳普湖县| 郓城县| 绥宁县| 基隆市|