- 單片機應用技術(第4版)
- 倪志蓮
- 3673字
- 2021-08-20 17:13:05
2.6 單片機常用開發工具
隨著單片機開發技術的不斷發展,從使用匯編語言開發到使用高級語言C開發,單片機的開發軟件也在不斷的發展。目前最流行的51系列單片機開發軟件就是Keil μVision4。它既可用于匯編語言的開發,也可用于C語言的開發。當程序調試正確無誤后,需要用專用的編程器將編譯后的程序代碼下載到51芯片中。而對AT89S51來說,只需用ISP 線進行下載即可。
2.6.1 Keil μVision4仿真調試軟件包

微課:keil C51軟件使用
Keil μVision4是美國Keil Software公司出品的51系列兼容單片機軟件開發系統。它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器在內的完整的開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。Keil μVision4的最大優點就是編譯后生成的匯編代碼效率非常高,很容易理解,因此Keil μVision4也成為開發人員使用C語言開發系統首選的工具軟件。這里僅以匯編語言程序的開發過程為例,介紹Keil μVision4軟件的使用方法。
1.Keil μVision4的安裝與啟動
Keil μVision4的安裝只需要進入setup目錄下,雙擊setup.exe程序進行安裝,按照安裝程序提示,輸入相關內容,就可以自動完成安裝過程了。安裝完成后,雙擊桌面上的Keil μVision4圖標,就可以進入Keil μVision4的界面了。如圖2-17所示。

圖2-17 Keil μVision4的啟動界面

視頻:keil軟件使用—窗口的打開和關閉

視頻:文本字體和顏色的修改
在圖2-17中,最上面的是標題欄,其下方的是Keil μVision4的菜單欄,菜單欄下方是工具欄。在工具欄下面,有三個窗口區,左邊Project窗口是項目管理窗口,用于管理當前工程及各種項目文件;右邊是Keil μVision4的工作區,用于編輯程序源代碼。左下方Build Output窗口是Keil μVision4的輸出信息窗口,用于顯示編譯的狀態、錯誤和警告信息。
2.程序的編輯及參數設置
(1)新建源程序
選擇菜單File下New命令,或者單擊工具欄上的新建文件按鈕,即可在項目窗口的右側打開一個新的文本編輯窗口,在該窗口中輸入匯編語言源程序或C51程序。如圖2-18所示。

圖2-18 新建源程序文件
保存該文件,并加上擴展名,如waterled.asm。匯編語言源程序一般用.asm為擴展名,C51源程序用.c為擴展名。
(2)新建工程文件
在項目開發中,并不是只有一個源程序就可以了,有些項目會由多個文件組成。為了管理和使用文件方便,也為了這個項目的參數設置(如選擇合適的CPU,確定編譯、匯編、連接的參數,指定調試的方式等),通常將參數設置和所需要的文件都放在一個工程中,使開發人員可以輕松地管理它們。
單擊Project菜單下的New μVision Project命令,可以打開新建工程對話框,輸入所需建立的工程文件名,如waterled (不需要擴展名),單擊“保存”按鈕。打開選擇CPU 對話框,如圖2-19所示。在這個對話框中選擇Atmel公司的AT89S51芯片,單擊“確定”按鈕,工程文件就建好了。
(3)加載源程序文件
在項目管理窗口中,單擊Target1前面的+號,展開下一層Source Group1,用鼠標右鍵單擊Source Group1,在出現的快捷菜單中選擇Add Files To Group‘Source Group1’ 命令,如圖2-20所示。在對話框中,查找源程序文件,如waterled.asm,將其選定后,加入Source Group1。

圖2-19 選擇CPU對話框

圖2-20 通過右鍵快捷菜單加入源程序文件
返回到主界面后,可看到Source Group1前面出現了“+”號,單擊“+”號,展開下一層后,可看到加入的源程序文件waterled.asm。雙擊該文件,可打開該程序文件。
(4)設置工程參數
在編譯、調試前,還需要對工程進行詳細的參數設置。
用鼠標右鍵單擊項目管理窗口中的 Target1,在彈出的快捷菜單中選擇 Options For Target‘Target1’ 命令,打開屬性設置對話框。也可通過單擊圖標打開屬性設置對話框,如圖2-21所示。在屬性對話框中,包括11個選項卡,這里僅介紹幾個常用選項卡,其余的請參考相關書籍。
在Target選項卡中,Xtal用于設置硬件所用的晶振頻率,可根據外部實際硬件電路晶振頻率設置。Memory Model用于C51編譯器對默認的存儲器類型模式進行設置,有三個選項,Small是所有變量都在單片機的內部RAM中;Compact是可以使用256B 外部擴展 RAM,而 Large 則是可以使用全部外部擴展的 RAM。Code Rom Size用于設置ROM空間的使用情況,同樣也有三個選項,Small是指程序存儲空間為2 KB; Compact是指單個函數代碼量不能超過2 KB,整個程序可以使用64 KB 空間;而Large則可以使用全部64 KB空間。
在Output選項卡中,Create HEX File用于生成提供給編程器寫入的可執行代碼文件,如果要進行編程器寫入操作就必須選定該項。

圖2-21 屬性設置對話框
屬性設置對話框中的其他頁與C51編譯選項、A51匯編選項、BL51連接器的連接選項的設置有關,這里就不一一介紹了。
3.編譯及調試

視頻:keil C51軟件的使用—編譯輸出Hex文件
選擇Project菜單下的Translate 命令,就可以對當前文件進行編譯了。若選擇Build Target命令,則會對當前工程進行連接,如果文件已修改,則會先對該文件進行編譯。若選擇Rebuild all target files命令,則將會對當前工程中的所有文件重新進行編譯并連接。
以上3種編譯連接操作也可通過編譯連接工具欄完成,如圖2-22 (a)所示。

圖2-22 編譯連接工具欄及信息窗口
(a)編譯連接工具欄; (b)編譯正確信息提示
編譯連接過程中的信息將會出現在主界面下方的信息窗口中,如果源程序有語法錯誤,會有錯誤報告出現,雙擊可定位到出錯行,若修改完成后,會在信息窗口出現如圖2-22 (b)所示的信息。此時,可進入仿真調試工作。

視頻:調試窗口簡介

視頻:存儲器窗口

視頻:工具欄打開與關閉

視頻:單步調試
選擇Debug菜單下的Start/Stop Debug Session命令,或單擊工具欄上的圖標,就可以進入調試狀態了。此時,工具欄中會出現調試及運行工具欄,如圖2-23 (a)所示。從左到右依次是:
:Reset (復位);
:Run (運行);
:Stop (停止);
:Step (單步);
:Step Over (不進子程序單步);
:Step Out (從子程序中退出單步);
:Run to Cursor Line (運行到光標所在行);
:Show Next Statement (顯示當前程序計數器狀態);
:命令窗口;
:反匯編窗口;
:符號窗口;
:寄存器窗口;
:調用堆棧窗口;
:觀察窗口;
:存儲器窗口;
:串行口窗口;
:邏輯分析窗口;
:指令跟蹤窗口等命令。通過這些命令并觀察相應的窗口狀態就可以進行程序調試了。例如:在圖2-23 (b)中,從左側的項目管理窗口中的寄存器頁可以觀察到運行程序時各寄存器的狀態改變。當再次單擊工具欄上的“開始/停止調試”圖標
,就可以退出調試狀態。

圖2-23 調試工具欄及調試界面
(a)調試工具欄; (b)調試界面

視頻:斷點調試

視頻:連續運行調試
2.6.2 Proteus仿真軟件

微課:Proteus軟件使用
Proteus軟件是英國Labcenter公司開發的電路分析與實物仿真軟件,是一種電子設計自動化軟件,運行于Windows操作系統上,提供可仿真數字和模擬、交流和直流等數千種元器件及多種現實存在的虛擬儀器儀表,還提供圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來。它提供Schematic Drawing、SPICE仿真與PCB設計功能,可以仿真、分析(SPICE)各種模擬器件和集成電路,同時可以仿真51系列、AVR、PIC等單片機和LED發光二極管、鍵盤、電機、A/D及D/A等外圍接口設備。它還提供軟件調試功能,具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,同時支持第三方的軟件編譯和調試環境,如Keil μVision4等軟件。下面以流水燈仿真為例介紹該軟件的基本使用方法。
1.在Proteus仿真環境下畫出流水燈電路圖
打開Proteus ISIS 7 Professional,進入Proteus的原理圖編輯界面,如圖2-24所示。在此界面下,包括菜單欄、工具欄及多個窗口。其中,圖形編輯區用于繪制電路原理圖;工具箱中有各種常用工具,包括選擇工具、拾取元器件工具、放置節點工具、標注工具、文本工具、終端工具、引腳工具、激勵源工具、虛擬儀器工具等;對象選擇器選擇不同的工具箱圖標按鈕決定當前狀態顯示的內容,顯示的內容包括元器件、終端、引腳、圖形符號、圖表等。
在繪制原理圖之前,首先應選擇所需的元器件。選擇Library→Pick Device/Symbol,或單擊圖標,也可單擊圖2-25中的圖標
打開元器件拾取對話框,如圖2-26所示。

圖2-24 Proteus的原理圖編輯界面
以查找AT89S51單片機為例,在類列表中選擇Microprocessor ICs類,并在子類列表中選擇8051 Family子類,則在元器件列表區域出現期望的元器件,如圖2-26所示。這里沒有AT89S51,可以選AT89C51代替。流水燈硬件電路的其他元器件也可按相同的方法找到,流水燈硬件電路所需元器件,如表2-12所示。

圖2-25 拾取元器件按鈕

圖2-26 元器件拾取對話框
表2-12 流水燈元器件清單

用鼠標單擊對象選擇器中的某一元器件名,把鼠標指針移動到圖形編輯區,單擊鼠標左鍵,元器件即可被設置到編輯區中。將所有流水燈硬件電路所需元器件依次放置到圖形編輯區,可利用鼠標右鍵快捷菜單對已放置的元器件位置進行調整,還可用鼠標右鍵雙擊元器件刪除它,如圖2-27所示。

圖2-27 放置元器件并仿真
將所有元器件按圖2-27連線,Proteus連線非常智能化,只需用鼠標左鍵單擊編輯區元器件的一個端點,再用鼠標左鍵單擊所需連接的另一個元器件的端點即可。
最后用鼠標左鍵雙擊每個元器件,通過元器件編輯對話框修改所有元器件參數,包括電容值、電阻值、元器件序號等,如圖2-28所示。

圖2-28 編輯元器件對話框
將所有元器件接線完成后,存盤即可。
2.將流水燈編譯后的.hex文件加入Proteus中,進行虛擬仿真
雙擊AT89C51 單片機芯片,可打開元器件編輯對話框,如圖2-29 所示。在 Program File欄中,單擊“打開”按鈕,選取流水燈的hex文件。在Clock Frequency欄中設置時鐘頻率為12MHz,如圖2-29所示。Proteus仿真運行時,時鐘頻率以單片機編輯對話框中設置的頻率值為準,所以在Proteus ISIS界面中設計電路原理圖時,可以略去單片機的時鐘電路。另外,復位電路也可略去。

圖2-29 加載目標代碼文件
在Proteus仿真界面中的仿真工具欄中單擊按鈕,啟動全速仿真,此時LED燈就會依次從上到下點亮,如圖2-27所示。用鼠標單擊仿真工具欄中的按鈕
,即可停止仿真。