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

任務2 單片機最小系統檢測程序編寫與仿真技能訓練

工作任務:

學會使用單片機開發系統,編寫程序用單片機控制I/O口使發光二極管隔燈亮。

知識目標:

1.了解單片機開發系統。

2.熟悉Keil μVision3軟件的環境。

3.熟悉Proteus仿真軟件的環境。

4.熟悉編程器軟件的環境。

5.掌握C語言常量的使用方法。

技能目標:

1.能夠初步使用Keil μVision軟件編寫簡單程序并仿真。

2.Proteus軟件畫原理圖并仿真。

3.掌握編程器的使用方法。

任務分析:

學習本任務首先要學習C51編程軟件、編程的方法和軟件調試的方法;然后學習單片機最小系統原理圖的畫法,并仿真調試程序;最后學習編程器的使用方法。下面通過編寫單片機最小系統檢測程序來學習以上內容。

1.5 單片機開發系統及功能

單片機開發系統是單片機應用系統設計的必需工具,包括計算機、單片機在線仿真器、工具軟件、編程器等。

單片機開發系統的功能包括在線仿真、調試、軟件輔助設計、目標程序固化等。

1.在線仿真功能

在線仿真器(In Circuit Emulator,ICE)是由一系列硬件構成的設備,它能仿真用戶系統中的單片機,并能模擬用戶系統的ROM、RAM和I/O端口,因此,處于在線仿真狀態時,用戶系統的運行環境和脫機運行完全“逼真”。

2.調試功能

開發系統對用戶系統軟、硬件調試功能的強弱,將直接關系到開發的效率。性能優良的單片機開發系統應具備下列調試功能。

(1)運行控制功能

開發系統應能使用戶有效地控制目標程序的運行,以便檢查程序運行的結果,對存在的硬件故障和軟件錯誤進行定位。

單步運行:CPU從任意程序地址開始執行一條語句后停止運行。

斷點運行:允許用戶任意設置斷點條件,啟動CPU從規定地址開始運行后,當遇到斷點條件(程序地址和指定斷點地址符合或者CPU訪問到指定的數據存儲器單元等條件)符合以后停止運行。

全速運行:CPU從指定地址開始連續全速運行目標程序。

跟蹤運行:類似單步運行過程,但可以跟蹤函數內部運行狀態。

(2)目標系統狀態的讀出修改功能

當CPU停止執行目標系統程序后,允許用戶方便地讀出或修改目標系統資源的狀態,以便檢查程序運行的結果,設置斷點條件及設置程序的初始參數。

3.輔助設計設置功能

軟件輔助設計功能的強弱也是衡量單片機開發系統性能高低的重要標志。單片機應用系統軟件開發的效率在很大程度上取決于開發系統的輔助設計功能。

(1)程序設計語言

單片機程序設計語言包括機器語言、匯編語言和高級語言。

機器語言是單片機唯一能夠識別的語言,程序的設計、輸入、修改和調試都很麻煩,只能用來開發一些非常簡單的單片機應用系統。

匯編語言具有使用靈活、實時性好的特點,是單片機應用系統設計常用的程序設計語言。但是采用匯編語言編寫程序,要求編程人員必須對單片機的指令系統非常熟悉,并具有一定的程序設計經驗,才能編制出功能復雜的應用程序,且匯編語言程序的可讀性和可移植性都較差。

高級語言的通用性好,程序設計人員只要掌握開發系統所提供的高級語言使用方法,就可以直接編寫程序。MCS-51系列單片機的編譯型高級語言有PL/M51、C51、MBASIC-51等。高級語言對不熟悉單片機指令系統的用戶比較適用,且具有較好的可移植性,是目前單片機編程語言的主流,本書采用的是C51編程語言。

(2)程序編譯

幾乎所有的單片機開發系統都能與PC連接,允許用戶使用PC的編輯程序編寫匯編語言或高級語言,生成匯編語言或高級語言文件的源文件;然后利用開發系統提供的交叉匯編或編譯系統,將源程序編譯成可在目標機上直接運行的目標;通過PC的串口或并口直接傳輸到開發機的RAM中。

一些單片機的開發系統還提供反匯編功能,并可提供用戶宏調用的子程序庫,以減少用戶軟件研制的工作量。

4.程序固化功能

當系統調試完畢,確認軟件無故障時,應把用戶應用系統的程序固化到程序存儲器中脫機運行,編程器就是完成這種任務的專用設備,它也是單片機開發系統的重要組成部分。

1.6 單片機最小系統檢測程序編寫

要檢測焊接的單片機最小系統運行是否正常,可通過單片機控制一盞LED燈亮來實現。

1.用單片機的P2.0控制一盞LED燈亮的方法

(1)如何使P2.0上的燈亮

要使P2.0上的燈亮,應使P2.0引腳上為低電平;要使P2.0上的燈暗,應使P2.0引腳上為高電平。

(2)如何用軟件編程控制P2.0為低電平

如何使P2.0=0,可使用指令:P2_0=0;要使P2.0=1,可使用指令:P2_0=1。

(3)如何把P2_0=1轉成計算機認識的機器語言

計算機只認識機器語言,P2_0=0是C語言,要把C語言轉成機器語言,方法是用交叉匯編或編譯系統,就是使用編譯軟件,把程序輸入后編譯,然后匯編成HEX文件。如用Keil C51編寫并編譯成機器語言,這個軟件在下一個知識點中介紹。

2.控制編程

#include <AT89X52.h>   //預處理命令
void main(void)      //主函數名
{
    /*
    這是第二種注釋方式
    */
    P2_0=0;           //讓P2.0上的發光二極管亮
}
小提示:

頭文件

所謂頭文件,就是放在C51程序開頭的文件。這些文件一般都是由C51開發商和芯片廠商提供的,這些文件的后綴為“h”,我們在程序的開頭用#include<…>格式標注出來,C51在編譯時首先會將標注的程序引用到編譯器里,所以在使用時要確保這些文件的存在。以下是頭文件的舉例:

#include<AT89X52.H>   //AT89X52系列芯片的頭文件
#include<stdio.h>     //鍵盤標準輸入
#include<absacc.h>    //包含數學的三角函數
#include<intrins.h>

頭文件里包含了C51開發商編寫的一些語言函數,如頭文件AT89X52,包含芯片的引腳定義和功能電路的定義變量,這樣可以直接使用。如我們要用單片機的P1.1引腳輸出低電平,只要寫P1_1=0就可以了。同樣,有的頭文件包含數學的三角函數。如果弄不清頭文件的確切含義,不要緊,只要在程序開頭附上上述幾條就可以了。

接下來編寫主函數main(),C語言沒有主函數是無法運行的。

1.7 Keil μVision 3集成開發軟件使用

MCS-51單片機開發系統是一種專門用來開發單片機系統或目標系統的微型計算機開發系統,而微型計算機開發系統實際上是一種特殊的微型計算機系統,專門用來調試微機應用系統的硬件和開發應用軟件。無論是學習還是工程應用,單片機開發系統都是必不可少的工具。本任務首先介紹兩種具有模擬調試器的集成開發環境,一種是德國Keil公司的Keil μVision3系列,另一種是英國Labcenter公司開發的單片機實物仿真系統Proteus軟件。最后介紹SUPERPRO 280U編程器的使用和Atmel下載線的使用。

Keil μVision3 集成開發環境有編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的HEX文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存儲器如Flash ROM中進行調試。

1.7.1 Keil μVision3軟件的安裝

先安裝Keil μVision2,后安裝Keil μVision3。注意安裝在同一目錄下。

安裝Keil μVision2:安裝盤下的setup子目錄,運行setup.exe執行文件,按照逐級提示即可完成Keil μVision2的安裝。在安裝過程中,可以選擇“Eval version”和“Full version”兩種安裝方式,前者有2KB的代碼限制,后者沒有代碼限制,但需要使用者提供授權的安裝序列號和用戶名。Keil μVision2將各種文件分類安裝在相應的目錄,有的文件和單片機應用系統的設計和引用有關。因此要了解文件的存放位置。以Keil μVision2安裝在C:\\Keil為例,則安裝后生成的各類文件所對應的文件夾如表1-7所示。

表1-7 Keil Cx51安裝后生成的各類文件夾

1.7.2 Keil 工程的建立

首先啟動 Keil μVision3軟件的集成開發環境,這里假設讀者已正確安裝了該軟件,可以從桌面上直接雙擊Keil μVision3圖標以啟動該軟件。

Keil μVision3啟動后,出現的界面由標題欄、下拉菜單、快捷鍵工具欄、文件標題欄、編輯窗口、管理窗口和信息窗口等部分組成。在調試模式下,還可以打開觀察窗口、寄存器窗口、存儲器窗口和串行窗口等。編輯窗口的左邊是工程管理窗口,該窗口有5個標簽,分別是Files、Regs、Books、Functions和Templates,這5個標簽頁分別顯示當前程序的文件結構、CPU的寄存器及部分特殊功能寄存器的值(調試時才出現)和所選源文件和文件中所用保留字。如果是第一次啟動Keil μVision3那么這5個標簽頁全是空的。如果有文件,則如圖1-13所示。

圖1-13 Keil μVision3的界面

在編輯窗口中單擊鼠標右鍵,彈出快捷菜單如圖1-14所示。在項目管理窗口中,用鼠標右擊管理窗口的目標系統(Target 1)或空白區域、源程序組(Source Group 1)或某個文件,都會彈出相應的快捷菜單,分別如圖1-15與圖1-16所示的快捷菜單。利用菜單中的選項可對當前項目、源程序組和指定的文件進行管理或設置操作。

圖1-14 鼠標右擊編輯窗口時彈出的菜單

圖1-15 鼠標右擊Target時彈出的菜單

圖1-16 鼠標右擊指定文件彈出的菜單

1.建立工程文件

在項目開發中,并不是僅有一個源程序就行了,還要為這個項目選擇CPU(Keil 支持數百種CPU,而這些CPU的特性并不完全相同),確定編譯、匯編、連接的參數,指定調試的方式,有一些項目還會有多個文件組成等,為管理和使用方便,Keil 使用工程(Project)這一概念,將這些參數設置和所需的所有文件都加在一個工程中,只能對工程而不能對單一的源程序進行編譯(匯編)和連接等操作,下面我們就一步一步地來建立工程。

單擊Project→New→μVision Project菜單,出現一個對話框,要求給將要建立的工程起一個名字,可以在編輯框中輸入一個名字(建立以班級名的目錄,在該目錄下建立以LED8的子目錄,在這個子目錄取工程名為LED8。目的是便于管理文件),不需要擴展名。單擊“保存”按鈕,出現第二個對話框,如圖1-17所示。這個對話框要求選擇目標 CPU(即你所用芯片的型號),Keil支持的CPU很多,我們選擇Atmel公司,單擊Atmel前面的“+”號,展開該層,單擊其中的89S52,然后再單擊“確定”按鈕,回到主界面。此時,在工程窗口的文件頁面中,出現了“Target 1”,前面有“+”號,單擊“+”號展開,可以看到下一層的“Source Group 1”,這時的工程還是一個空的工程,里面什么文件也沒有。

圖1-17 工程建立對話框

2.源文件的建立

使用菜單File→New或者單擊工具欄的“新建文件”按鈕,即可在項目窗口的右側打開一個新的文本編輯窗口,在該窗口中輸入以下C語言源程序:

# include <reg52.h>
# include <stdio.h>
main()
{   P2=0X55;
}

保存該文件,注意必須加上擴展名(C語言源程序一般用.C為擴展名),這里假定將文件保存為 LED8.C。需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編輯器編寫,而且Keil的編輯器對漢字的支持不好,建議使用UltraEdit之類的編輯軟件進行源程序的輸入。

3.把源程序加入工程

單擊“Source Group 1”使其反白顯示,然后,單擊鼠標右鍵,出現一個下拉菜單,如選中其中的“Add File to Group‘Source Group 1’”,出現一個對話框,要求尋找源文件,注意該對話框下面的“文件類型”默認為 C source file(*.c),也就是以C 為擴展名的文件。雙擊LED8.C文件,將文件加入項目。注意,在文件加入項目后,該對話框并不消失,等待繼續加入其他文件,但初學時常會誤認為操作沒有成功而再次雙擊同一文件,這時會出現如圖1-18所示的對話框,提示你所選文件已在列表中,此時應單擊Add按鈕,返回前一對話框,然后單擊Close按鈕即可返回主界面,返回后,單擊“Source Group 1” 前的加號,會發現LED8.C 文件已在其中。雙擊文件名,即打開該源程序。

圖1-18 把源程序加入工程

4.工程的詳細設置

工程建立好以后,還要對工程進行進一步的設置,以滿足要求。首先單擊左邊Project窗口的Target 1,然后使用菜單Project→Option for Target ′ Target1′,即出現對工程設置的對話框,這個對話框非常復雜,要全部搞清可不容易,好在絕大部分設置項取默認值就行了。設置對話框中的Target頁面,如圖1-19所示,Xtal后面的數值是晶振頻率值,默認值是所選目標CPU的最高可用頻率值,對于我們所選的AT89S52而言是33MHz。

圖1-19 Target頁面

該數值與最終產生的目標代碼無關,僅用于軟件模擬調試時顯示程序執行時間。正確設置該數值可使顯示時間與實際所用時間一致,一般將其設置成與硬件所用晶振頻率相同,如果沒必要了解程序執行的時間,也可以不設,這里設置為11.0592MHz。

Memory Model用于設置RAM使用情況,有3個選擇項,Small是所有變量都在單片機的內部RAM中;Compact是可以使用一頁外部擴展RAM,而Larget則是可以使用全部外部的擴展RAM。Code Rom Size用于設置ROM空間的使用,同樣也有3個選擇項,即Small模式,只用低于2KB的程序空間;Compact模式,單個函數的代碼量不能超過2KB,整個程序可以使用64KB程序空間;Larget模式,可用全部64KB空間。Use on-chip ROM復選項,確認是否僅使用片內ROM(注意:選中該項并不會影響最終生成的目標代碼量)。

Operating System項是操作系統選擇,Keil提供了兩種操作系統:Rtx tiny和Rtx full,關于操作系統是另外一個很大的話題了,通常我們不使用任何操作系統,即使用該項的默認值:None(不使用任何操作系統);off-Chip Code memory用以確定系統擴展ROM的地址范圍,off-Chip Xdata memory組用于確定系統擴展RAM的地址范圍,這些選擇項必須根據所用硬件來決定,由于該例是單片應用,未進行任何擴展,所以均不重新選擇,按默認值設置。設置對話框中的Output頁面,如圖1-20所示。這里面也有多個選擇項,其中Create HEX File用于生成可執行代碼文件(可以用編程器寫入單片機芯片的HEX格式文件,文件的擴展名為.HEX),默認情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,這一點是初學者易疏忽的,在此特別提醒注意。選中Debug Information將會產生調試信息,這些信息用于調試,如果需要對程序進行調試,應當選中該項。Browse Information是產生瀏覽信息,該信息可以用菜單 View→Browse來查看,這里取默認值。“Select Folder for Objects”按鈕是用來選擇最終的目標文件所在的文件夾,默認是與工程文件在同一個文件夾中。

圖1-20 Output頁面

Name of Executable用于指定最終生成的目標文件的名字,默認與工程的名字相同,這兩項一般不需要更改。工程設置對話框中的其他各頁面與C51編譯選項、A51的匯編選項、BL51連接器的連接選項等用法有關,這里均取默認值,不做任何修改。以下僅對一些有關頁面中常用的選項作一個簡單介紹。Listing標簽頁用于調整生成的列表文件選項。在匯編或編譯完成后將產生(*.lst)的列表文件,在連接完成后也將產生(*.m51)的列表文件,該頁用于對列表文件的內容和形式進行細致的調節,其中較常用的選項是“C Compile Listing”下的“Assamble Code”項,選中該項可以在列表文件中生成C語言源程序所對應的匯編代碼。C51標簽頁用于對Keil的C51編譯器的編譯過程進行控制。

設置完成后返回主界面,工程文件建立、設置完畢。

5.編譯、連接

在設置好工程后,即可進行編譯、連接。選擇菜單Project→Build target,對當前工程進行連接,如果當前文件已修改,軟件會先對該文件進行編譯,然后再連接以產生目標代碼;如果選擇Rebuild All Target Files將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終生產的目標代碼是最新的,而Translate項則僅對該文件進行編譯,不進行連接。

以上操作也可以通過工具欄按鈕直接進行。這是有關編譯、設置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯、下載到Flash Memory和對工程進行設置。

編譯過程中的信息將出現在輸出窗口中的Build頁面中,如果源程序中有語法錯誤,會有錯誤報告出現,雙擊該行,可以定位到出錯的位置,對源程序反復修改之后,最終會得到如圖1-21所示的結果,提示獲得了名為LED8.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還產生了一些其他相關的文件,可被用于Keil的仿真與調試,這時可以進入下一步調試的工作。

圖1-21 正確編譯、連接之后的結果

1.7.3 用Keil C51軟件模擬仿真

單擊菜單欄的Debug→Start/Stop-Debug Session,顯示圖1-22所示的界面。然后單擊Peripherals→I/O-Ports點→Port 2,如圖1-23所示,結果顯示如圖1-24(a)所示。單擊為全速運行或單擊單步運行,仿真結果如圖1-24(b)所示。如果要重新仿真可單擊復位后再按上面的步驟重新仿真。

圖1-22 仿真時的畫面

圖1-23 顯示I/O端口仿真情況

圖1-24 P2口仿真前后的狀態

1.8 Proteus仿真軟件使用

Proteus是英國Labcenter公司開發的電路分析、實物仿真系統。它可仿真、分析各種電路和集成IC,它最大的特點是可以支持許多型號的單片機的仿真,該軟件的單片機仿真庫里有51系列、PIC系列、AVR系列、摩托羅拉的68MH11系列等,另外還提供Schematic Drawing(原理圖)與PCB(印制板)設計功能。它的元件庫齊全,使用方便,是不可多得的電子電路設計輔助軟件。Proteus還能與Keil目前世界上最好的51單片機的匯編和C語言的開發工具相結合,還可與MPLAB IDE等編譯模擬軟件結合。

1.8.1 模擬仿真ISIS界面簡介

1.啟動Proteus

執行“開始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”命令,出現Proteus 7的界面,如圖1-25所示。

2.Proteus 7界面介紹

整個屏幕被分成七個區域。最上面是菜單欄,下面接著是工具欄,再下面左邊是工具箱;右邊很大的區域是編輯窗口,編輯窗口顯示當前正在編輯的電路原理圖;左上方是預覽窗口,預覽窗口通常顯示整個電路圖的縮略圖。預覽窗口的藍色框標示出了圖的邊框,同時窗口上的綠色框標出在編輯窗口顯示的區域。在預覽窗口上單擊鼠標左鍵,將會以單擊位置為中心刷新編輯窗口;在左下方是對象選擇器,對象選擇器根據圖標決定的當前狀態顯示不同的內容。顯示對象的類型包括設備、終端、引腳、圖形符號、標注和圖形等。在某些狀態下,對象選擇器有一個Pick切換按鈕,單擊該按鈕可以彈出庫元件選取窗口。通過該窗口可以選擇元件并置入元器件選擇器,在今后繪圖時使用;工具箱由三部分組成;左邊的下方是元器件旋轉工具,有4個按鈕,分別是順時針旋轉、逆時針旋轉、水平方向旋轉、豎直方向旋轉;左邊的最下方是調試時所使用的快捷工具按鈕。

圖1-25 Proteus 7界面

1.8.2 Proteus軟件繪制單片機原理圖的方法

1.用Proteus繪制單片機控制原理圖

單擊菜單File→New Design →Landscape A3 →OK按鈕。

下面我們以繪制如圖1-26所示的圖形為例來介紹用ISIS設計電路圖的方法。

(1)元器件的添加和放置

單擊ISIS元器件選擇器左邊上面的圖標,然后單擊按鈕,出現Pick Devices對話框,如圖1-27所示。在這個對話框里選擇元器件。在Category(器件種類)下面我們找到“Microprocessor IC”選項,使用鼠標左鍵單擊,在對話框的右側,會發現這里有大量的常見的各種型號的單片機。這里選擇“AT89C52”選項,如圖1-28所示。

在圖1-28的右上方出現了AT89C52的SCH的圖樣,在下面出現了它的PCB的圖樣,這意味著我們在ISIS設計好原理圖(SCH)后,還可以在Proteus的ARES里設計印制板(PCB)圖。雙擊這個元件,則在左邊的對象選擇器里就有了AT89C52這個元件了,關閉選擇器件窗口。在對象選擇器窗口單擊這個元件,然后把鼠標指針移到右邊的原理圖編輯區的適當位置,單擊鼠標左鍵,這時就把AT89C52器件放到了原理圖設計區,如圖1-29所示。

圖1-26 單片機控制8個發光二極管原理圖

圖1-27 Pick Devices對話框

圖1-28 選擇器件

圖1-29 放置元件

下面把需要的另外的器件找到,并添加到對象選擇器下。打開選擇器件窗口,在Resistors選項,選擇電阻功率,找到RES(電阻);在Capacitors選項,找到CAP(電容);在Miscellaneous選項,找到CRYSTAL(晶振);在Optoelectronics選項,找到LED-YELLOW(黃色發光二極管),在這里有各種顏色的二極管可以選擇。如果你需要開關或按鈕可在Switches&Relays選項,找到SWITCH (開關)或BUTTON(按鈕);其實如果知道元器件的名稱,也可以在Pick Devices對話框的左上方Keywords的下面,輸入要添加的元器件名字,就會自動的找到器件所在的位置。接著把需要的元器件添加到原理圖設計區,方法同放置AT89C52一樣。

(2)放置電源及接地符號

單擊工具箱的“接線端”圖標,在對象選擇器里單擊地Vss,鼠標移到原理圖編輯區,使用鼠標左鍵單擊即可放置接地符號;類似地單擊電源符號放上電源Vcc,也可以放到原理圖編輯區。

(3)元器件的編輯

在設計電路圖時,要不斷地調整元器件的位置和朝向以及改變元器件的屬性。操作如下:

選中元器件:用鼠標指向元器件并單擊鼠標右鍵可以選中該元器件。該操作選中元器件并使其高亮顯示,然后可以進行編輯。

調整元器件的朝向:通過4個按鈕可對許多類型的對象進行朝向為0°、90°、270°、360°的調整或X軸Y軸鏡像。

改變元件的屬性:元器件一般具有圖形或文本屬性,這些屬性可以通過一個對話框進行編輯。編輯單個對象的步驟如下:

先選中元器件,如用鼠標指向對象并右擊“RES”電阻,被選中的對象顯示紅色。然后用鼠標左鍵單擊元器件,此時出現屬性編輯對話框。圖1-30是電阻的編輯對話框,這里可以改變電阻的標號和它的電阻值以及是否把這些東西隱藏(默認為顯示)等。修改電阻值,在“Resistance”欄中把電阻改為470,單擊OK按鈕。

改變編輯對象文本屬性元件、端點、線和總線的文本屬性都可以像元件一樣編輯。

(4)在兩個對象間連線

使用鼠標指向一個元器件的連接點,出現一個“×”形狀時,單擊元器件的連接點,移動鼠標到另一點。

圖1-30 電阻編輯對話框

(5)畫總線和總線分支線

利用總線方式可以節省畫線的時間,并且畫出的電路圖簡潔、美觀、清晰。單擊工具箱的總線按鈕BUS,即可在編輯窗口畫總線。這時畫出的總線與其他元器件還沒有任何電氣連接關系。注意,畫的時候是粉紅色的線,單擊鼠標右鍵退出畫線狀態,此時粉紅色的線變成了較粗的藍色的線。接著單擊工具箱的Wire Label按鈕畫總線的分支線,分支線用來連接總線和元器件。畫了分支線、總線后,這些分支線的總線就和元器件有了電氣連接關系。畫總線分支線有一個技巧:當畫好一條分支線后,如果還需要重復畫幾條,可以在元器件的引腳上雙擊鼠標的左鍵,立刻就會出現和剛才畫好的分支一樣的分支線了。

畫好數條分支線后,我們還需要給每條分支線起個名字,即總線標號,以區分它們。用鼠標右鍵單擊分支線選中它,接著用鼠標左鍵單擊選中的分支線就會出現分支線編輯對話框(Edit Wire Label)如圖1-31所示。我們在Label標簽下的String右邊文本框填上起始的分支線標號的符號AD0,其他的設置默認即可。如果要連續為分支線標號,可在圖1-31所示的對話框中,在Label標簽下的String右邊文本框填上要標的總線標號名字,如“AD\[0..7\]”,注意括號是英文狀態下的,括號的內容是總線的起始號碼,兩個點,以及結束號碼。然后,再選中一條分支線,在出現的分支線編輯對話框中,單擊String后面的下三角按鈕,可看到了“AD0、AD1、…、AD7”的標號名字,選擇其中的一個作為這條分支線的名字即可。

圖1-31 分支線編輯對話框

(6)刪除元器件

用鼠標指向選中的元器件并單擊鼠標右鍵可以刪除該元器件,同時刪除該元器件的所有連線。

(7)移動多個元器件

用鼠標選中要移動的元器件,單擊移動按鈕,拖動鼠標到要放置的位置,然后再單擊鼠標左鍵。

(8)復制多個元器件

用鼠標選中要移動的元器件,單擊復制按鈕,拖動鼠標到要放置的位置,然后再單擊鼠標左鍵。

2.加載目標文件

在 Proteus的ISIS中,右擊單片機AT89C52,再單擊AT89C52,在出現的對話框中單擊“Program File”后面的按鈕,找到剛才編譯得到的 “led8.hex”文件,如圖1-32所示,然后單擊OK按鈕。下面就可模擬了。

圖1-32 添加目標文件

3.運行程序

在屏幕左下方有模擬仿真運行的工具條,它們分別是連續運行、單步運行、暫停、停止。單擊模擬調試按鈕的運行按鈕,進入調試狀態。看到P2口的發光二級管隔燈亮,如圖1-33所示。

圖1-33 仿真效果

4.Keil μVision 4與Proteus 7.7 SP2聯調仿真和設置

(1)Keil與Proteus連接

Keil與Proteus連接,連接開始必須在Proteus安裝目錄下將VDM51.dll文件復制到Keil安裝目錄的\\C51\\BIN目錄中(如果找到可以自己下載,并復制一份到Labcenter Electronics\\Proteus 7 Professional\\BIN)。

(2)修改Keil安裝目錄下 Tools.ini文件

用記事本(其他的編輯軟件也可以,如Ultra Edit)打開Keil根目錄下的Tools.ini文件,在“C51”欄目下加入TDRV3=BIN\\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ),如圖1-34所示,其中“TDRV9”中的“9”要根據實際情況寫,不要和原來的重復。

圖1-34 Tools.ini文件修改

(3)在Keil中編寫MCU的程序

進入Keil的Project菜單中的Options for Target ′工程名′。在Debug選項卡中右欄上部的下拉菜單中選擇Proteus VSM Monitor-51 Driver選項,如圖1-35所示。

圖1-35 Debug選項設置

決策

單片機最小系統檢測程序方案決策

編程軟件采用Keil μVision3。仿真可以用Keil μVision3軟件,但不如用Proteus直觀。

單片機最小系統檢測程序可以采用給某個I/O口全亮,但如果有一盞燈常亮,就檢測不出。采用隔燈亮控制,硬件調試時會更方便,只要正插一次,反插一次,8個燈的電路情況就全部顯示。

工作任務實施

技能訓練1-2

單片機最小系統檢測程序編寫與仿真技能訓練

一、工作任務

學會使用單片機開發系統,編寫程序用單片機控制I/O口使發光二極管隔燈亮。

二、設備檢查、軟件安裝

1.計算機上安裝Keil軟件、Proteus軟件、SUPERPRO 280U編程器軟件。

2.SUPERPRO 280U編程器一只。

三、訓練實施過程

1.用Keil μVision3軟件編寫I/O口控制一盞燈亮程序。

2.用Keil μVision3軟件仿真調試軟件。

3.用Proteus軟件繪制單片機最小系統原理圖,并下載仿真調試。

任務評價

實驗報告要求

1.畫出最小系統原理圖。

2.你在焊接單片機最小系統過程中遇到什么困難?你是怎么解決的?

主站蜘蛛池模板: 黎川县| 汽车| 青神县| 木兰县| 三门县| 澎湖县| 玉溪市| 安丘市| 屯留县| 嘉峪关市| 会东县| 隆安县| 灌云县| 腾冲县| 深水埗区| 休宁县| 衡水市| 颍上县| 巫溪县| 平陆县| 云梦县| 喀什市| 平阳县| 思南县| 交口县| 温州市| 舟山市| 高唐县| 汕头市| 岳阳市| 景德镇市| 江安县| 永清县| 游戏| 朝阳区| 会宁县| 巩留县| 乐至县| 石柱| 且末县| 绥阳县|