電路仿真與工具軟件應(yīng)用學(xué)習(xí)第九章_第1頁
電路仿真與工具軟件應(yīng)用學(xué)習(xí)第九章_第2頁
電路仿真與工具軟件應(yīng)用學(xué)習(xí)第九章_第3頁
電路仿真與工具軟件應(yīng)用學(xué)習(xí)第九章_第4頁
電路仿真與工具軟件應(yīng)用學(xué)習(xí)第九章_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、山東師范大學(xué)山東師范大學(xué)第九講:PROTEUS_ISIS、KEIL軟件的綜合應(yīng)用實例51系列單片機在很多產(chǎn)品中得到了廣泛的應(yīng)用。在具體的工程實踐中,單片機應(yīng)用技術(shù)所涉及的實踐環(huán)節(jié)較多,且硬件投入較大,如果因為控制方案有誤而進行相應(yīng)的開發(fā)設(shè)計,會浪費較多的時間和經(jīng)費。Proteus仿真軟件很好地解決了這些問題,它可以繪制硬件原理圖并實現(xiàn)硬件調(diào)試,再與Keil編程軟件進行聯(lián)調(diào),實現(xiàn)對控制方案的驗證。尤其對于初學(xué)單片機的用戶提供了極大的方便。9.1 PROTEUS_ISIS的微處理器仿真應(yīng)用-8位搶答器9.2 PROTEUS_ISIS與KEIL軟件的綜合仿真應(yīng)用-流水燈電路山東師范大學(xué)山東師范大學(xué)9

2、.1 PROTEUS_ISIS9.1 PROTEUS_ISIS的微處理器仿真應(yīng)的微處理器仿真應(yīng)用用-8-8位搶答器位搶答器在Proteus ISIS系統(tǒng)中對多種微處理器進行仿真,是其最突出的特點。在這個系統(tǒng)中可以通過仿真方式在計算機上執(zhí)行各種微處理器的指令,并與所連接的接口電路同時仿真實現(xiàn)對電路的快速調(diào)試?!纠纠?-19-1】:】:ProteusProteus仿真設(shè)計一個八位的搶答器。仿真設(shè)計一個八位的搶答器。在本例中用到了數(shù)碼管、蜂鳴器、三極管、按鍵這些最普通也是最常用的元器件,也用到了總線和總線分支這種布線方式。我們用51單片機的P1口來驅(qū)動一個數(shù)碼管;用P3口作為八個搶答信號的輸入端;

3、用P2.0通過三極管Q1來驅(qū)動蜂鳴器;用P2.2作為搶答器復(fù)位信號的輸入端。電路如下圖所示。9.1.1 9.1.1 元器件查找、放置與電路連線元器件查找、放置與電路連線山東師范大學(xué)山東師范大學(xué)山東師范大學(xué)山東師范大學(xué)9.1.29.1.2軟件編程軟件編程設(shè)計好了硬件線路之后,接下來就是軟件編程的問題。如何編寫程序呢?當(dāng)然需要根據(jù)硬件的連接情況和控制要求來編寫程序。程序要達到的控制要求是:只要一開電源或者主持人按下復(fù)位按鍵,數(shù)碼管就顯示“0”表示可以開始搶答。一旦有搶答信號,就立即判斷出是那一位最先搶答,并把相應(yīng)的位號送至數(shù)碼管顯示,對其后的搶答信號不再響應(yīng),同時蜂鳴器持續(xù)間隔鳴響,給出音響提示信

4、號。當(dāng)主持人按下復(fù)位信號后開始下一輪搶答!程序設(shè)計流程圖右圖所示。山東師范大學(xué)山東師范大學(xué)八位輸入搶答器參考程序清單 ORG 0000 JMP BEGIN;程序開始BEGIN: MOV P2,#0FFH ;P2口置高電平,準(zhǔn)備接收信號。 MOV R4,#0; “R4”的位標(biāo)志值清零。 MOV A,R4; “R4”位標(biāo)志值送A寄存器AGAIN: MOV DPTR,#TABLE ;共陰極數(shù)碼管代碼表首址送DPTR MOVC A,A+DPTR ;取出顯示”0”的代碼送P口顯示 MOV P1,ALOOP: MOV A,P3 ;接收P3口的搶答信號。 CPL A ;搶答信號求反 JZ LOOP ;如果沒

5、有搶答信號再返回LOOP繼續(xù)掃描LOOP1: RRC A ;有搶答信號則逐次移動判斷是那一位搶答 INC R4 ;每移一次位,R4位標(biāo)志值加1 JNC LOOP1;如果沒有遇到搶答信號返回LOOP1繼續(xù)移位 MOV A,R4 ;遇到搶答信號把R4位標(biāo)志的只送A MOVC A,A+DPTR ;找到相應(yīng)位的顯示代碼 MOV P1,A ;送P1口顯示山東師范大學(xué)山東師范大學(xué)LOOP2: JNB P2.2, BEGIN ;若主持人按了復(fù)位信號健則轉(zhuǎn)向程序復(fù)位 CPL P2.0 ;若沒按復(fù)位信號鍵,則通過P2.2給出高低信號驅(qū)動蜂鳴器 MOV R5,#20 ;準(zhǔn)備調(diào)用20次延時20ms程序 LCALL

6、DELAY ;調(diào)用延時程序 SJMP LOOP2;P2.2口反復(fù)間隔0.4秒變化,驅(qū)動蜂鳴器DELAY: MOV R6,#50 ;延時R520ms子程序 D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET TABLE: ;共陰極數(shù)碼管代碼表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6FH ;46789 DB 77H,7CH,0B9H,5EH,79H,71h ;ABCDEF END山東師范大學(xué)山東師范大學(xué)9.1.3 Proteus9.1.3 Proteus中的源程序設(shè)計與編譯中的源

7、程序設(shè)計與編譯Proteus VSM提供了簡單的文本編輯器,用它作為源程序的編輯環(huán)境。對于不同系列的單片機,VSM均提供了相應(yīng)的編譯器,使用時可根據(jù)單片機的型號和語言要求來選取。編譯器有以下幾種:ASEM51(51系列單片機編譯器);ASM11(Motorola單片機編譯器);AVRASM(Atmel AVR系列單片機編譯器);AVRASM32(Atmel AVR系列單片機編譯器);MPASM(PIC單片機編譯器);MPASMSWIN(PIC單片機編譯器)。1)建立源程序文件在Proteus ISIS界面中單擊菜單Soure(源程序),在彈出的下拉菜單中單擊“Add/Remove Source

8、 Files”(添加/移開源程序)選項,彈出對話框。山東師范大學(xué)山東師范大學(xué)單擊“Code Generation Tool”(目標(biāo)代碼生成工具)下方框中按鈕,彈出下拉菜單,根據(jù)需要選擇相應(yīng)的編譯器,例如“ASEM51”(51系列單片機編譯器)。 山東師范大學(xué)山東師范大學(xué)在對話框中單擊“New”按鈕,彈出下圖所示的對話框,在文件名框中輸入新建源程序文件名“qdq1”,單擊“打開”按鈕,彈出下圖中所示的小對話框,選擇“是”按鈕,新建的源程序文件就添加到“Source Code Filename”方框中。同時在ISIS界面的“Source”菜單中也加入了源程序文件名“qdq1.asm”。山東師范大學(xué)

9、山東師范大學(xué)2. 編寫源程序代碼單擊菜單【Source】【qdq1.asm】,出現(xiàn)下圖所示的源程序編輯窗口。編寫源程序后存盤退出。圖6-5 源程序編輯窗口山東師范大學(xué)山東師范大學(xué)3. 3. 源程序編譯源程序編譯 (1) 編譯器設(shè)置。第一次使用編譯器時需進行相關(guān)的設(shè)置,單擊菜單【Source】【Define Code Generation Tools】,出現(xiàn)下圖所示界面,本例中實際設(shè)置結(jié)果如圖所示 編譯源程序,生成目標(biāo)代碼文件。圖6-6 編譯器設(shè)置界面山東師范大學(xué)山東師范大學(xué)(2)生成.hex文件單擊【Source】【Build All】,編譯結(jié)果在彈出的編譯日志對話框中。如果沒有錯誤便成功生成

10、目標(biāo)代碼“.hex”文件。本例中生成的目標(biāo)代碼文件為“.HEX”。山東師范大學(xué)山東師范大學(xué)搶答器仿真后的結(jié)果山東師范大學(xué)山東師范大學(xué)9.2 建立一個建立一個Keil程序程序現(xiàn)通過建立一個簡單的LED流水燈的例子來初步學(xué)習(xí)keil的基本用法。硬件參考電路如下圖所示。 流水燈(跑馬燈)電路山東師范大學(xué)山東師范大學(xué) 啟動Keil軟件。通過雙擊電腦桌面上的Keil uVision3快捷方式圖標(biāo)來啟動。 新建工程。執(zhí)行Keil軟件的菜單Project | New Project,彈出一個名為Create New Project的對話框。如下圖所示,先選擇一個合適的文件夾準(zhǔn)備來存放工程文件,比如E:Pro

11、jectLedFlash,其中LedFlash是新建的文件夾。建議:今后每新建一個工程都要在適當(dāng)?shù)拇疟P位置新建一個文件夾用來保存工程文件,以方便管理,并養(yǎng)成良好的習(xí)慣。最后,為工程取名為LedFlash,并保存。 新建Keil 工程山東師范大學(xué)山東師范大學(xué) 為項目選擇CPU器件選擇CPU。緊接著,Keil C51 提示選擇CPU 器件。8051內(nèi)核單片機最早是由鼎鼎大名的Intel 公司發(fā)明的,后來其他廠商如Philips、Atmel、Winbond 等先后推出其兼容產(chǎn)品,并在8051 的基礎(chǔ)上擴展了許多增強功能。在這里可以選擇Atmel 公司新推出89S52參見下圖。山東師范大學(xué)山東師范大學(xué)

12、 接下來彈出一個如下圖所示的對話框。該對話框提示用戶是否要把標(biāo)準(zhǔn)8051 的啟動代碼添加到工程中去。Keil C51 既支持C 語言編程也支持匯編語言編程。如果打算用匯編語言寫程序,則應(yīng)當(dāng)選擇“否(N)”。如果打算用C 語言寫程序,一般也選擇“否(N)”,但是,如果用到了某些增強功能需要初始化配置時,則可以選擇“是(Y)”。在這里,我們選擇“否(N)”,即不添加啟動代碼。 至此,一個空的Keil工程建立完畢。 選擇是否要添加啟動代碼山東師范大學(xué)山東師范大學(xué) 執(zhí)行菜單File | New,出現(xiàn)一個名為Text n(其中n 表示序號)的文檔。 接著執(zhí)行菜單File | Save,彈出一個名為Sav

13、e As的對話框。將文件名改為main.c,然后保存,參見下圖。注意:擴展名“.c”不可省略。 保存新建的源程序文件山東師范大學(xué)山東師范大學(xué)準(zhǔn)備添加源程序文件到工程中添加源程序文件到工程中。一個空的源程序文件main.c已經(jīng)建立,但是這個文件與剛才新建的工程之間并沒有什么內(nèi)在聯(lián)系。我們需要把它添加到工程中去。單擊Keil軟件左邊項目工作窗口“Target 1”上的“”,將其展開。然后右擊“Source Group 1”文件夾,會彈出如下圖所示的選擇菜單。單擊其中的“Add Files to Group Source Group 1”項,將彈出如下頁圖所示的對話框。山東師范大學(xué)山東師范大學(xué)向工程

14、中添加源程序文件山東師范大學(xué)山東師范大學(xué) 現(xiàn)在開始輸入源程序。先最大化“main.c”源程序窗口,然后請按下面給出的參考程序清單輸入程序代碼。 程序清單程序清單 #include #define uchar unsigned char #define uint unsigned int uchar code display72= 0 xFE,0 xFD,0 xFB,0 xF7,0 xEF,0 xDF,0 xBF,0 x7F, 0 xBF,0 xDF,0 xEF,0 xF7,0 xFB,0 xFD,0 xFE,0 xFF, 0 xFE,0 xFC,0 xF8,0 xF0,0 xE0,0 xC0,

15、0 x80,0 x00, 0 x80,0 xC0,0 xE0,0 xF0,0 xF8,0 xFC,0 xFE,0 xFF, 0 xFC,0 xF9,0 xF3,0 xE7,0 xCF,0 x9F,0 x3F, 0 x9F,0 xCF,0 xE7,0 xF3,0 xF9,0 xFC,0 xFF, 0 xE7,0 xDB,0 xBD,0 x7E,0 xBD,0 xDB,0 xE7,0 xFF, 0 xE7,0 xC3,0 x81,0 x00,0 x81,0 xC3,0 xE7,0 xFF, 0 xAA,0 x55,0 x18,0 xFF,0 xF0,0 x0F, 0 x00,0 xFF,0 x00

16、,0 xFF ; 山東師范大學(xué)山東師范大學(xué)void delayms(uint); /延時函數(shù)的聲明 void main(void) uchar i; while (1) for(i = 0 ; i 72; i+ ) P1=displayi; delayms(350); /延時,設(shè)實參為350 /end of while /end of main void delayms(uint ms) / 延時子程序 uchar k; while(ms-) for(k = 0; k 120; k+); 山東師范大學(xué)山東師范大學(xué) 單擊Keil工具欄的“ ”圖標(biāo),彈出名為Options for Target T

17、arget 1的對話框。單擊Output標(biāo)簽頁,選中Create HEX File項,然后“確定確定”。參見下圖。 編譯環(huán)境設(shè)置山東師范大學(xué)山東師范大學(xué) 單擊工具欄的按鈕“ ”編譯當(dāng)前源程序。編譯結(jié)果會顯示在輸出窗口內(nèi)。如果是“0 Error(s), 0 Warning(s).”就表示程序沒有問題了(至少是在語法上不存在問題了)。如果存在錯誤或警告,請仔細檢查程序是否與參考程序清單一致。修改后,再編譯,直到通過為止。 編譯后的結(jié)果會生成Intel HEX 格式的程序LedFlash.hex文件。該文件可以被專門的芯片燒寫工具(編程器)載入并最終燒錄到具體的芯片中。 如果用PROTEUS做仿真調(diào)試,可按圖跑馬燈電路在PROTEUS ISIS平臺下畫好電路,鼠標(biāo)指向微處理器89C52,右鍵點擊,這時89

溫馨提示

  • 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

提交評論