單片機實驗.ppt_第1頁
單片機實驗.ppt_第2頁
單片機實驗.ppt_第3頁
單片機實驗.ppt_第4頁
單片機實驗.ppt_第5頁
已閱讀5頁,還剩119頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 MCS-51單片機接口基礎(chǔ),6.1 匯編源程序的建立與編譯 6.1.1 Proteus中的源程序設(shè)計與編譯 6.1.2 Keil Vision中的源程序設(shè)計與編譯 6.2 Proteus與單片機電路的交互式仿真與調(diào)試 6.2.1 加載目標代碼 6.2.2 單片機系統(tǒng)的Proteus交互仿真 6.2.3 調(diào)試菜單與調(diào)試窗口 6.2.4 觀察窗口 6.3 I/O口輸入輸出應用 6.3.1 Proteus電路設(shè)計 6.3.2 源程序設(shè)計 6.3.3 Proteus調(diào)試與仿真 6.3.4 總結(jié)與提示 6.4 44矩陣式鍵盤識別技術(shù) 6.4.1 Proteus電路設(shè)計 6.4.2 源程序設(shè)計 6

2、.4.3 Proteus調(diào)試與仿真 6.4.4 總結(jié)與提示 6.5 動態(tài)掃描顯示,6.5.1 Proteus電路設(shè)計 6.5.2 源程序設(shè)計 6.5.3 Proteus調(diào)試與仿真 6.5.4 總結(jié)與提示 6.6 88點陣LED顯示 6.6.1 Proteus電路設(shè)計 6.6.2 源程序設(shè)計 6.6.3 Proteus設(shè)計與仿真 6.6.4 總結(jié)與提示 6.7 I/O口的擴展 6.7.1 Proteus電路設(shè)計 6.7.2 源程序設(shè)計 6.7.3 Proteus調(diào)試與仿真 6.7.4 總結(jié)與提示 6.8 定時器/計數(shù)器實驗 6.8.1 Proteus電路設(shè)計 6.8.2 源程序設(shè)計 6.8.3

3、Proteus設(shè)計與仿真,6.8.4 總結(jié)與提示 6.9 外部數(shù)據(jù)存儲器擴展 6.9.1 Proteus電路設(shè)計 6.9.2 源程序設(shè)計 6.9.3 Proteus調(diào)試與仿真 6.9.4 總結(jié)與提示 6.10 外部中斷實驗 6.10.1 Proteus電路設(shè)計 6.10.2 源程序設(shè)計 6.10.3 Proteus調(diào)試與仿真 6.10.4 總結(jié)與提示 6.11 單片機與PC機間的串行通信 6.11.1 Proteus電路設(shè)計 6.11.2 源程序設(shè)計 6.11.3 Proteus調(diào)試與仿真 6.11.4 總結(jié)與提示 6.12 單片機與步進電機的接口技術(shù),6.12.1 Proteus電路設(shè)計 6

4、.12.2 源程序設(shè)計 6.12.3 Proteus調(diào)試與仿真 6.12.4 總結(jié)與提示 6.13 單片機與直流電動機的接口技術(shù) 6.13.1 Proteus電路設(shè)計 6.13.2 源程序設(shè)計 6.13.3 Proteus調(diào)試與仿真 6.13.4 總結(jié)與提示 6.14 基于DAC0832數(shù)模轉(zhuǎn)換器的數(shù)控電源 6.14.1 Proteus電路設(shè)計 6.14.2 源程序設(shè)計 6.14.3 Proteus調(diào)試與仿真 6.14.4 總結(jié)與提示 6.15 基于ADC0808模數(shù)轉(zhuǎn)換器的數(shù)字電壓表 6.15.1 Proteus電路設(shè)計 6.15.2 源程序設(shè)計 6.15.3 Proteus調(diào)試與仿真 6.

5、15.4 總結(jié)與提示,第6章 MCS-51單片機接口基礎(chǔ),MCS-51系列單片機在很多產(chǎn)品中得到了廣泛的應用。在具體的工程實踐中,單片機應用技術(shù)所涉及的實踐環(huán)節(jié)較多,且硬件投入較大,如果因為控制方案有誤而進行相應的開發(fā)設(shè)計,會浪費較多的時間和經(jīng)費。Proteus仿真軟件很好地解決了這些問題,它可以像Protel一樣繪制硬件原理圖并實現(xiàn)硬件調(diào)試,再與Keil編程軟件進行聯(lián)調(diào),實現(xiàn)對控制方案的驗證。尤其對于初學單片機的用戶提供了極大的方便。,6.1 匯編源程序的建立與編譯,Keil是德國Keil公司開發(fā)的單片機編譯器,是目前最好的51單片機開發(fā)工具之一,可以用來編譯C源代碼和匯編源程序、連接和重定

6、位目標文件和庫文件、創(chuàng)建HEX文件、調(diào)試目標程序等,是一種集成化的文件管理編譯環(huán)境。在Proteus中,可以直接與Keil編程軟件進行聯(lián)調(diào),進而實現(xiàn)對所設(shè)計電路的驗證。,6.1.1 Proteus中的源程序設(shè)計與編譯,Proteus VSM提供了簡單的文本編輯器,用它作為源程序的編輯環(huán)境。對于不同系列的單片機,VSM均提供了相應的編譯器,使用時可根據(jù)單片機的型號和語言要求來選取。 編譯器有以下幾種: ASEM51(51系列單片機編譯器); ASM11(Motorola單片機編譯器); AVRASM(Atmel AVR系列單片機編譯器); AVRASM32(Atmel AVR系列單片機編譯器);

7、 MPASM(PIC單片機編譯器); MPASMSWIN(PIC單片機編譯器)。 1. 建立源程序文件 在Proteus ISIS界面中單擊菜單Soure(源程序),在彈出的下拉菜單中單擊“Add/Remove Source Files”(添加/移開源程序)選項,彈出如圖6-1所示對話框,,單擊“Code Generation Tool”(目標代碼生成工具)下方框中按鈕,彈出下拉菜單,根據(jù)需要選擇相應的編譯器,例如“ASEM51”(51系列單片機編譯器)。,圖6-1 Add/Remove Source Code Files對話框,在圖6-1中單擊“New”按鈕,彈出如圖6-2所示的對話框,在文

8、件名框中輸入新建源程序文件名“mydesign”,單擊“打開”按鈕,彈出圖6-2中所示的小對話框,選擇“是”按鈕,新建的源程序文件就添加到圖6-1中的“Source Code Filename”方框中,如圖6-3所示。同時在ISIS界面的“Source”菜單中也加入了源程序文件名“mydesign.asm”,如圖6-4所示。,圖6-2 新建源程序文件對話框,圖6-3 源程序添加結(jié)果,圖6-4 菜單Source中加載的源程序文件,2. 編寫源程序代碼 單擊菜單【Source】【mydesign.asm】,出現(xiàn)圖6-5所示的源程序編輯窗口。編寫源程序后存盤退出。,圖6-5 源程序編輯窗口,3. 源

9、程序編譯 (1) 編譯器設(shè)置。 第一次使用編譯器時需進行相關(guān)的設(shè)置,單擊菜單【Source】【Define Code Generation Tools】,出現(xiàn)圖6-6所示界面,本例中實際設(shè)置結(jié)果如圖6-6所示 (2) 編譯源程序,生成目標代碼文件。 單擊【Source】【Build All】,編譯結(jié)果在彈出的編譯日志對話框中。如果沒有錯誤便成功生成目標代碼“.hex”文件。本例中生成的目標代碼文件為“MYDESIGN.HEX”。,圖6-6 編譯器設(shè)置界面,6.1.2 Keil Vision中的源程序設(shè)計與編譯,在Keil集成開發(fā)環(huán)境下使用工程的方法來管理文件,而不是單一文件的模式,所有的文件包

10、括源程序(如C程序、匯編程序)、頭文件等都可以放在工程項目文件里統(tǒng)一管理。對于剛剛使用Keil的用戶,一般可以按照下面的步驟來創(chuàng)建一個自己的應用程序: (1) 一個工程項目文件; (2) 選擇目標器件(例如,選擇ATMEL公司的AT89C51);,設(shè)置軟硬件調(diào)試環(huán)境; (4) 創(chuàng)建源程序文件并輸入程序代碼; (5) 保存創(chuàng)建的源程序項目文件; (6) 把源程序文件添加到項目中。 具體如何建立應用程序并進行仿真調(diào)試,我們將通過實驗來詳細說明。 1. 建立一個項目 雙擊桌面快捷圖標即可進入如圖6-7所示的集成開發(fā)環(huán)境編輯操作界面,主要包括三個窗口:工程項目窗口、編輯窗口和輸出窗口。 單擊 Proj

11、ect 菜單,在彈出的下拉菜單中選中“New Project”選項,新建一個項目,如圖6-8所示。,圖6-7 Vision2編輯操作界面,圖6-8 Project界面,然后選擇要保存的路徑,輸入工程文件的名字(比如保存到uv目錄里,工程文件的名字為“shiyan1”),如圖6-9所示,然后單擊“保存”按鈕。 這時會彈出一個對話框,要求選擇單片機的型號。這里可以根據(jù)所使用的單片機來選擇,Keil幾乎支持所有51核的單片機,這里以Atmel的89C51來說明,如圖6-10所示。,圖6-9 Project保存設(shè)置界面,圖6-10 選擇器件,首先選擇Atmel公司,然后單擊左邊的“+”號選擇AT89C

12、51 之后,右邊欄 是對這個單片機的基本說明,然后單擊“確定”,在隨后彈出的對話框單擊“否”。 完成以上步驟后,屏幕如圖6-11所示,首先進行選項設(shè)置,將鼠標指針指向“Target 1”并單擊右鍵,再從彈出的右鍵菜單中單擊“Options for Target”選項,如圖6-12所示。,圖6-11 初始化編輯界面,從彈出的“Options”對話框中選擇“Output”標簽欄,并按如圖6-13所示設(shè)置其中各項。,圖6-12 選擇“Options for Target”選項,圖6-13 “Output”標簽欄,2. 建立一個新的ASM匯編語言程序并編譯,下面開始編寫源程序。 (1) 在菜單欄中,單

13、擊“File”菜單,再在下拉菜單中單擊“New”選項,或直接單擊工具欄的快捷圖標來建立了一個新的編輯窗口。此時光標在編輯窗口里閃爍,這時可以輸入用戶的應用程序了。建議首先保存該空白文件,單擊菜單上的“File”,在下拉菜單中選中“Save As”選項,在彈出對話框的“文件名”欄右側(cè)編輯框中,輸入欲使用的文件名,同時,必須輸入正確的擴展名,如“Text1.asm”,然后,單擊“保存”按鈕,如圖6-14所示,注意:如果用語言編寫程序,則擴展名為“.c”;如果用匯編語言編寫程序,則擴展名為“.asm”,且必須添加擴展文件名。 (2) 回到編輯界面后,單擊“Target 1”前面的“”號,然后在“So

14、urce Group 1”上單擊右鍵,彈出如圖6-15所示的快捷菜單。,圖6-14 保存源程序,然后單擊“Add File to GroupSource Group 1”,打開如圖6-16所示對話框,在“文件類型”處默認為“C Source file(*.c)”,因為前面我們保存的是匯編語言的文件,故需要選擇“Asm Source file(*.s*;*.src;*.a*)”,這樣在上面就可以看到剛才保存的匯編語言文件“Text1.asm”,雙擊該文件則自動添加至項目,單擊“Close”關(guān)閉對話框。 對比圖6-17和圖6-15,可以看出二者的不同點:在添加了匯編語言文件后,在“Source G

15、roup 1”文件夾前面出現(xiàn)了一個“+”號,單擊“+”號展開就看到了剛才添加的“Text1.asm”文件。,圖6-15 彈出右鍵菜單,(3) 然后就可以在右側(cè)的編輯區(qū)輸入?yún)R編源程序了。在輸入指令時,讀者可以看到事先保存待編輯文件的好處:Keil會自動識別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會使用戶少犯錯誤,有利于提高編程效率。程序輸入完畢后別忘了再次保存,如圖6-18所示。,圖6-16 添加文件對話框,圖6-17 添加文件后工程欄的變化,(4) 程序文件編輯完畢后,單擊“Project”菜單,選中“Built target”選項(或者使用快捷鍵 F7),或者單擊工具欄的快捷圖標來進行編

16、譯,如圖6-19所示,圖6-18 程序輸入完畢后狀態(tài),圖6-19 編譯菜單,(5) 如果有錯誤,則在最后的輸出窗口中會出現(xiàn)所有錯誤所在的位置和錯誤的原因,并有“Target not created”的提示。雙擊該處的錯誤提示,在編輯區(qū)對應錯誤指令處左面出現(xiàn)藍色箭頭提示,然后對當前的錯誤指令進行修改,如圖6-20所示,圖6-20 錯誤提示,(6) 將所有提示過的錯誤進行修改,然后再次重復(4)的操作進行編譯,直至出現(xiàn)“shiyan1 - 0 Error(s), 0 Warning(s)”,說明編譯完全通過,如圖6-21所示。,圖6-21 編譯通過提示,3. 調(diào)試并仿真,編譯成功后,就可以進行調(diào)試

17、并仿真了。單擊“Project”菜單,在下拉菜單中單擊“Start/Stop Debug Session”(或者使用快捷鍵 Ctrl+F5),或者單擊工具欄的快捷圖標就可以進入調(diào)試界面,如圖6-22所示,圖6-22 調(diào)試界面,左面的工程項目窗口給出了常用的寄存器r0-r7以及a、b、sp、dptr、pc、psw等特殊功能寄存器的值。在執(zhí)行程序的過程中可以看到,這些值會隨著程序的執(zhí)行發(fā)生相應的變化。 在存儲器窗口的地址欄處輸入C:0000H后回車,則可以觀看所有單片機片內(nèi)程序存儲器的內(nèi)容,如圖6-23所示,下面用橫線畫出來的部分就是已經(jīng)編輯的源程序轉(zhuǎn)化成的機器語言的十六進制數(shù)(或者說是對應的機器

18、碼)。如果在存儲器窗口的地址欄處輸入D:00H后回車,則可以觀看所有單片機片內(nèi)數(shù)據(jù)存儲器的內(nèi)容,圖6-23 存儲器窗口,在聯(lián)機調(diào)試狀態(tài)下可以啟動程序全速運行、單步運行、設(shè)置斷點等,單擊菜單“Debug /Go”選項,啟動用戶程序全速運行。 下面介紹幾種常用的調(diào)試命令及方法。 (1) 復位CPU 用“Debug”菜單或工具欄的“Reset CPU”命令可以復位CPU。在不改變程序的情況下,若想使程序重新開始運行,執(zhí)行此命令即可。執(zhí)行此命令后程序指針返回到000H地址單元。另外,一些內(nèi)部特殊功能寄存器在復位期間也將重新賦值。例如,A將變?yōu)?0H,DPTR變?yōu)?000H,SP變?yōu)?7H,I/O口變?yōu)?/p>

19、0FFH。,(2) 全速運行(F5) 用“Debug”工具欄的“Go”或快捷命令“Run”命令按鈕,即可實現(xiàn)全速運行程序。當然若程序中已經(jīng)設(shè)置斷點,程序?qū)?zhí)行到斷點處,并等待調(diào)試指令。 (3) 單步跟蹤(F11) 用“Debug”工具欄的“Step”或快捷命令“StepInto”命令按鈕,可以單步跟蹤程序。每執(zhí)行一次此命令,程序?qū)⑦\行一條指令(以指令為基本執(zhí)行單元)。當前的指令用黃色箭頭標出,每執(zhí)行一步箭頭都會移動,已執(zhí)行過的語言呈綠色。在匯編語言調(diào)試下,可以跟蹤到每一個匯編指令的執(zhí)行。Vision2處于全速運行期間,Vision2不允許對任何資源的查看,也不接受其他命令。,(4) 單步運行(

20、F10) 用“Debug”工具欄的“Step Over”或快捷命令“Step Over”按鈕,即可實現(xiàn)單步運行程序,此時單步運行命令將把函數(shù)和函數(shù)調(diào)用當作一個實體來看待,因此單步運行是以語句(該語句不管是單一命令行還是函數(shù)調(diào)用)為基本執(zhí)行單元。 (5) 執(zhí)行返回(Ctrl+F11),在用單步跟蹤命令跟蹤到子函數(shù)或子程序內(nèi)部時,使用“Debug”菜單欄中的“Step Out of Current Function”或快捷命令按鈕“Step Out”,即可將程序的PC指針返回到調(diào)用此子程序或函數(shù)的下一條語句。(6) 停止調(diào)試(Ctrl+F5) 由于“Led_Light”程序使用了系統(tǒng)資源P1口,為

21、了更好地觀察這些資源的變化,用戶可以打開它們的觀察窗口。選擇“PeripheralsI/O-PortsPort1”命令,即可打開并行I/O口P1的觀察窗口。,6.2 Proteus與單片機電路的交互式仿真與調(diào)試,6.2.1 加載目標代碼,雙擊單片機AT89C51,打開其屬性編輯框,在“Program File”欄中,單擊打開按鈕,選取目標代碼文件,這里是“MYDESIGN.HEX”。在“Clock Frequency”欄中設(shè)置時鐘頻率為12MHz,如圖6-25所示。因為仿真運行,在Proteus ISIS界面中編輯電路原理圖實例,如圖6-24所示,圖6-24 實例電路原理圖,時的時鐘頻率是以單

22、片機屬性中設(shè)置的頻率值為準,所以在Proteus ISIS界面中設(shè)計電路原理圖時,可以略去單片機的時鐘電路。另外,復位電路也可略去。對于MCS-51系列單片機而言,在不進行電路電氣檢測時,EA引腳也可懸空。,圖6-25 加載目標代碼文件和時鐘設(shè)置,6.2.2 單片機系統(tǒng)的Proteus交互仿真,在Proteus仿真界面中單擊按鈕,全速啟動仿真,此時電路中的LED不亮。用鼠標單擊電路圖中的按鈕,進行交互仿真。單擊一次按鈕,LED燈亮,再單擊一次,LED燈滅,如此循環(huán)交替。本實例仿真片段如圖6-26所示。單擊仿真按鈕,可停止仿真。,圖6-26 實例仿真片段,6.2.3 調(diào)試菜單與調(diào)試窗口,系統(tǒng)在全

23、速仿真運行時不顯示調(diào)試窗口,可單擊暫停按鈕,然后單擊Proteus ISIS界面的“Debug”菜單,彈出如圖6-27所示的下拉菜單。從圖中可以看出,調(diào)試菜單包含有3個存儲器窗口,調(diào)試過程中可分別打開這3個存儲器窗口進行觀察。 1. 單片機寄存器窗口 通過菜單【Debug】【8051 CPU Registers-U1】打開單片機寄存器窗口,如圖6-28所示。里面有常用的SFR,如SP、PC、PSW、R0R7、ACC及將要執(zhí)行的指令等。在本窗口內(nèi)右擊,可以設(shè)置窗口的字體和顏色。,2. 單片機SFR 窗口 通過菜單【Debug】【8051 CPU SFR Memory-U1】打開單片機的SFR窗口

24、,如圖6-29所示。,圖6-27 “Debug”下拉菜單,3. 單片機IDATA窗口 通過菜單【Debug】【8051 CPU Internal(IDATA)Memory-U1】打開單片機的IDATA窗口,如圖6-30所示。 對于單片機的SFR寄存器,既可以從單片機的寄存器窗口中查看,也可以在SFR寄存器窗口中查看。 在SFR、IDATA窗口中右擊,可彈出該窗口的設(shè)置菜單,如圖6-31所示??墒褂谩癎oto”命令快速運動到指定的顯示單元,還可復制數(shù)據(jù)或改變顯示方式等。,圖6-28 單片機寄存器窗口,圖6-29 單片機SFR窗口,圖6-30 單片機IDATA窗口,圖6-31 單片機IDATA窗口

25、的快捷菜單,6.2.4 觀察窗口,雖然通過以上方法可以觀察單片機各個存儲器的內(nèi)容,但因顯示內(nèi)容比較分散,觀察起來不方便。對此,Proteus又同時提供了一個觀察窗口“Watch Window”,它可以將所關(guān)心的各項寄存器的內(nèi)容集中于一個窗口中,觀察起來十分方便,克服了上述缺點。 1. 觀察項添加 通過菜單【Debug】【W(wǎng)atch Window】打開空白的觀察窗口,在觀察窗口內(nèi)右擊,彈出快捷菜單,如圖6-32所示。由該菜單可添加、刪除觀察項,設(shè)置觀察項的數(shù)據(jù)類型,顯示格式以及設(shè)置窗口的字體、顏色等。,若單擊“Add Items(By Name)”項,便會彈出如圖6-33所示的對話框,雙擊相應的

26、SFR寄存器名稱,即可以觀察項名稱方式將觀察項添加到觀察窗口中。也可選擇以觀察項的地址來添加觀察項的方式。添加了觀察項的觀察窗口如圖6-34所示。,圖6-32 觀察窗口及快捷菜單,2. 觀察項刪除 要刪除已添加的觀察項,有兩種方法: 在觀察窗口單擊選中相應的觀察項,按鍵盤上的“Del”鍵即可。 在觀察窗口右擊相應的觀察項,在彈出的快捷菜單中單擊“Delete Item”選項。,圖6-33 “Add Memory Item”對話框,圖6-34 添加了觀察項的觀察窗口,3. 觀察點條件設(shè)置 在仿真運行的過程中,還可以通過設(shè)置“觀察點條件”的手段來觸發(fā)中斷,以滿足某些特殊條件斷點的要求。具體方法:在

27、觀察窗口內(nèi)右擊,在彈出的快捷菜單中單擊“Watchpoint Condition”項,彈出觀察點條件設(shè)置框,如圖6-35所示。,圖6-35 觀察點條件設(shè)置框,觀察點條件設(shè)置分為兩級,包括“全局斷點條件設(shè)置(Global Break Condition)”,如圖6-35中的上半部分所示,和“觀察項的斷點表達式(Item Break Expression)”,如圖6-35的下半部分所示。下半部分中“Item”項的內(nèi)容為觀察窗口中添加的觀察項,可單擊按鈕,在下拉列表中選擇要設(shè)置斷點的觀察項?!癈ondition”項為觀察項的條件,“Mask”項為觀察項的約束條件,它們具體包含的內(nèi)容如圖6-35的右邊

28、所示。,內(nèi)容 利用單片機AT89C51制作一個099計數(shù)器手動計數(shù)器,用其P2.0P2.7接一個共陰極數(shù)碼管,輸出顯示099計數(shù)值的個位,用P0.0P0.7接數(shù)碼管輸出顯示計數(shù)值的十位數(shù)。P3.3引腳外接一輕觸開關(guān),要求每按下一次按鍵,計數(shù)值加1,當計數(shù)值超出99后自動返回0重新開始循環(huán)計數(shù)。 訓練目的 掌握AT89C51單片機I/O口輸入輸出的應用方法; 掌握單片機驅(qū)動7段數(shù)碼管顯示數(shù)字的編程方法。,6.3 I/O口輸入輸出應用,6.3.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-1所列的清單添加元件。,表6-1 元件清單,2. 電路原理圖

29、元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-36所示的原理圖(晶振和復位電路略)連接硬件電路。,圖6-36 電路原理圖,6.3.3 Proteus調(diào)試與仿真,1. 建立程序文件 (1) 打開Keil Vision3,新建Keil項目,選擇AT89C51單片機作為CPU; (2) 新建匯編源文件,編寫程序并將其導入到“Source Group 1”中; (3) 在“Options for Target”對話框中,選中“Output”選項卡中的“Create HEX File”選項和“Debug”選項卡中的“Use:Proteus VSM Simulator”選項; (4) 編譯

30、源程序,修改程序中的錯誤直至通過。,2. 加載目標代碼文件 (1) 在Proteus ISIS中,左鍵雙擊AT89C51元件打開“Edit Component”對話框,設(shè)置單片機的頻率為12MHz; (2) 在該窗口的“Program File”欄中,選擇先前在Keil中編譯產(chǎn)生的“.HEX”文件; (3) 在Proteus ISIS菜單欄中選擇【File】【Save Design】選項,保存設(shè)計; (4) 在Proteus ISIS菜單欄中,打開“Debug”下拉菜單,在菜單中選擇“Use Remote Debug Monitor”選項,以支持與Keil的聯(lián)調(diào)。 3. 進行調(diào)試與仿真 (1)

31、 在Keil的菜單欄中選擇【Debug】【Start/Stop,Debug Session】選項,或者在工具欄中直接單擊圖標,進入調(diào)試環(huán)境; 3. 進行調(diào)試與仿真 (1) 在Keil的菜單欄中選擇【Debug】【Start/Stop Debug Session】選項,或者在工具欄中直接單擊圖標,進入調(diào)試環(huán)境; (2) 按“F5”鍵或圖標,順序執(zhí)行程序; (3) 在Proteus ISIS界面中,按動開關(guān),可看到數(shù)碼管的顯示值隨之加1,如圖6-37所示。,6.3.4 總結(jié)與提示,圖6-37 程序運行結(jié)果,AT89C51單片機的P0口在作為普通I/O使用時必須,6.4 44矩陣式鍵盤識別技術(shù),內(nèi)容

32、 鍵盤是一組按鍵的集合,它是最常用的單片機輸入設(shè)備。操作人員可以通過鍵盤輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機通信。鍵盤分編碼鍵盤和非編碼鍵盤。靠軟件識別的為非編碼鍵盤。從結(jié)構(gòu)上來分又可以分為獨立連接式和行列式(矩陣式)兩類。,加上拉電阻,否則不能準確輸入或輸出高低電平。仿真時可通過觀察P0口的電平狀態(tài)來體會這一點。 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察電路的工作情況。,6.4.1 Proteus電路設(shè)計,為了減少鍵盤占用單片機的I/O線數(shù)目,通常都將鍵盤排列成矩陣式。 訓練目的 掌握軟件鍵盤去抖的方法; 掌握鍵盤識別編程的方法。,1. 元件清單列表

33、打開Proteus ISIS編輯環(huán)境,按表6-2所列的清單添加元件。,表6-2 元件表清單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-38所示的原理圖(晶振和復位電路略)連接硬件電路。,圖 6-38 電路原理圖,6.4.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件,加載目標代碼文件,進入調(diào)試環(huán)境,執(zhí)行程序,在Proteus ISIS界面中,按下各個按鍵,觀察數(shù)碼管上的顯示和所標的鍵號是否對應。,6.4 源程序設(shè)計,略,6.4.4 總結(jié)與提示 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察電路的工作情況。

34、 在Proteus中仿真時可以降低單片機的工作頻率,觀察電路中各接點的電平變化情況,看是否和所編程序符合,以增強對程序的理解。,6.5 動態(tài)掃描顯示,內(nèi)容 單片機應用系統(tǒng)中使用的顯示器件主要有發(fā)光二極管,簡稱LED(Light Emitting Diode);液晶顯示,簡稱LCD(Liquid Crystal Display)。LED有靜態(tài)顯示和動態(tài)顯示兩種方式,在多位LED顯示時,為了簡化電路,降低成本,將所有位的段線并聯(lián)在一起,由一個8位I/O控制。而共陰(或共陽)極公共端分別由相應的I/O線控制,實現(xiàn)各位的分時選通。 訓練目的 掌握LED動態(tài)掃描的顯示方法; 掌握單片機驅(qū)動7段數(shù)碼管顯示

35、數(shù)字的編程方法; 掌握串入并出集成芯片74LS595的使用方法。,6.5.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-3所列的清單添加元件,表6-3 元 件 清 單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-39所示的原理圖(晶振和復位電路略)連接硬件電路。,圖6-39 電路原理圖,6.5.2 源程序設(shè)計,略,6.5.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件、加載目標代碼文件,進入調(diào)試環(huán)境后執(zhí)行程序,降低單片機的工作頻率,觀察動態(tài)顯示的過程。,6.5.4 總結(jié)與提示,AT89C51單片機的

36、P0口在作為普通I/O使用時必須加上拉電阻,否則不能準確輸入或輸出高低電平。仿真時可通過觀察P0口的電平狀態(tài)來體會這一點。 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察電路的工作情況。,6.6 88點陣LED顯示,內(nèi)容 用單片機AT89C51驅(qū)動88點陣LED顯示屏,輪流顯示09的數(shù)字。顯示方式采用自右向左拉幕式顯示。 訓練目的 掌握88點陣LED顯示屏的使用方法; 掌握單片機進行拉幕式顯示的編程方法。,6.6.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-4所列的清單添加元件。,表6-4 元件清單,2.

37、 88點陣LED元件介紹 Proteus ISIS中的88點陣LED元件原理圖如圖6-40(a)所示。由于該元件引腳沒有任何標注,因此在使用之前必須進行引腳測試,以確定行線和列線的順序及極性。圖6-40(b)給出了一種進行引腳測試的方法,根據(jù)測試結(jié)果便很容易確定該元件的電路接法。,圖6-40 88點陣LED元件原理圖及引腳測試,3. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-41所示的原理圖連接硬件電路。,圖6-41 電路原理圖,6.6.3 Proteus設(shè)計與仿真,參照6.3.3節(jié)建立程序文件、加載目標代碼文件,進入調(diào)試環(huán)境后執(zhí)行程序,在Proteus ISI

38、S界面中的仿真片斷如圖6-42所示,圖6-42 仿真片段,6.6.4 總結(jié)與提示,程序編寫中,必須在TCOUNT數(shù)值是8的整數(shù)倍時再進行下面的移位操作,否則顯示在銜接時會亂。,6.7 I/O口的擴展,內(nèi)容 8255是微機并行可編程IO口擴展芯片。對8255輸入不同的指令可改變IO口的工作方式。8255與單片機系統(tǒng)連接方式簡單,工作方式由程序設(shè)定。 背景知識 已掌握Keil Vision3開發(fā)軟件的使用方法; 已掌握常用外部RAM的基本操作。 訓練目的 掌握單片機與8125的接口原理,熟悉8255初始化編程,以及輸入輸出的設(shè)計方法。,6.7.1 Proteus電路設(shè)計,1元件清單列表 打開Pro

39、teus ISIS編輯環(huán)境,按表6-5所列的清單添加元件,表6-5 元 件 清 單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-43所示的原理圖連接硬件電路。,圖6-43 電路原理圖,6.7.2 源程序設(shè)計,1. 流程圖 圖6-44為程序流程圖。,圖6-44 流程圖,6.7.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件、加載目標代碼文件,進入調(diào)試環(huán)境,單擊Proteus ISIS下面的仿真運行鍵,即可看到如圖6-45所示的運行結(jié)果。,圖6-45 程序運行結(jié)果,6.7.4 總結(jié)與提示,采用8255并口擴展芯片的PA0口,設(shè)計一個44鍵的矩陣鍵盤掃

40、描程序。,6.8 定時器/計數(shù)器實驗,內(nèi)容 利用單片機AT89C51,控制一發(fā)光二極管,亮1秒,關(guān)閉1秒,循環(huán)進行;要求使用定時器/計數(shù)器控制。 訓練目的 掌握AT89C51單片機定時器/計數(shù)器混合編程的使用方法,6.8.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-6所列的清單添加元件,表6-6 元件清單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-46所示的原理圖連接硬件電路。,圖6-46 電路原理圖,6.8.3 Proteus設(shè)計與仿真,6.3.3節(jié)建立程序文件、加載目標代碼文件,進入調(diào)試環(huán)境執(zhí)行程序,在

41、Proteus ISIS界面中,可以看到,LED燈亮一秒,關(guān)一秒,循環(huán)進行,如圖6-47,圖6-47 運行結(jié)果,6.8.4 總結(jié)與提示,嘗試改變計數(shù)器的值,使延時的時間更長。,6.9 外部數(shù)據(jù)存儲器擴展,內(nèi)容 用SRAM6264擴展單片機AT89C51的外部數(shù)據(jù)存儲器,通過仿真窗口觀察向6264寫入數(shù)據(jù)的過程。 訓練目的 掌握AT89C51擴展外部數(shù)據(jù)存儲器時的接口電路設(shè)計方法; 加深單片機對外部數(shù)據(jù)存儲器進行讀寫過程的理解。,6.9.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-7所列的清單添加元件,表6-7 元件清單,2. 電路原理圖 元件全

42、部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-48所示的原理圖(復位和振蕩電路略)連接硬件電路。,圖6-48 電路原理圖,6.9.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件、加載目標代碼文件,進入調(diào)試環(huán)境,然后執(zhí)行下述操作: (1) 在Proteus ISIS界面中,單擊按鈕啟動仿真。 (2) 通過菜單【Debug】【Memory ContentsU1】,打開6264存儲器窗口; (3) 通過菜單【Debug】【DebugWatch Window】,在彈出的觀察窗口右擊,選擇“以觀察項的名稱添加觀察項”,在彈出的對話框中添加累加器ACC和數(shù)據(jù)指針DPTR。 (4) 單

43、擊按鈕暫停仿真,可觀察程序運行的中間結(jié)果,如圖6-49所示。,6.9.4 總結(jié)與提示,受計算機性能的影響,以及Proteus軟件運行仿真時需要處理大量的數(shù)據(jù),會出現(xiàn)仿真結(jié)果的畫面刷新率跟不上程序運行的速度,致使不能看到存儲器內(nèi)容隨程序運行的動態(tài)變化,仿真時可手工刷新畫面觀察。,圖6-49 程序運行結(jié)果,6.10 外部中斷實驗,內(nèi)容 MCS-51是一個多中斷源的單片機,以8051為例,有三類共五個中斷源,分別是兩個外部中斷,兩個定時器中斷和一個串行中斷。外部中斷是由外部原因引起的,共有兩個中斷源,即外部中斷0和外部中斷1。它們的中斷請求信號分別由引腳(P3.2)和(P3.3)引入;外部中斷請求信

44、號有兩種,即低電平有效方式和脈沖后沿負跳有效方式。 中斷控制是提供給用戶使用的中斷控制手段,實際上就是控制一些寄存器。51系列用于此目的的控制寄存器有四個:TCON、IE、SCON及IP。,表6-8 IE 寄 存 器,EA 中斷允許總控制位; EA=0 中斷總禁止,禁止所有中斷; EA=1 中斷總允許; EX0(EX1) 外部中斷允許控制位; EX0(EX1)=0 禁止外中斷; EX0(EX1)=1 允許外中斷;,ET0(ET1) 定時/計數(shù)中斷允許控制位; ET0(ET1)=0 禁止定時/計數(shù)中斷; ET0(ET1)=1 允許定時/計數(shù)中斷; ES 串行中斷允許控制位; ES=0 禁止串行中

45、斷; ES=1 允許串行中斷。 (2) 中斷優(yōu)先級控制寄存器(IP) 地址為B8H,位地址為BFH-B8H,各位定義如表6-9所示。,表6-9 IP 寄 存 器,各位含義如下: PX0 外部中斷0優(yōu)先級設(shè)定位; PT0 定時中斷0優(yōu)先級設(shè)定位; PX1 外部中斷1優(yōu)先級設(shè)定位; PT1 定時中斷1優(yōu)先級設(shè)定位; PS 串行中斷優(yōu)先級設(shè)定位。 為0的位優(yōu)先級為低;為1的位優(yōu)先級為高。 中斷優(yōu)先級是為中斷嵌套服務的,MCS-51中斷優(yōu)先級的控制原則如下。,(1) 低優(yōu)先級中斷請求不能打斷高優(yōu)先級的中斷服務;但高優(yōu)先級中斷請求可以打斷低優(yōu)先級的中斷服務,從而實現(xiàn)中斷嵌套。 (2) 如果一個中斷請求已

46、被響應,則同級的其他中斷響應將被禁止。 (3) 如果同級的多個中斷請求同時出現(xiàn),則按CPU查詢次序確定哪個中斷請求被響應,其查詢次序為:外部中斷0定時中斷0外部中斷1定時中斷1串行中斷。 訓練目的 熟悉理解MCS-51的中斷系統(tǒng)組成; 了解掌握單片機系統(tǒng)中斷的原理及使用方法。,6.10.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-10所列的清單添加元件,表6-10 元 件 清 單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-50所示的原理圖(晶振和復位電路略)連接硬件電路。,圖6-50 電路原理圖,6.10.

47、3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件,加載目標代碼文件,進入調(diào)試環(huán)境執(zhí)行程序,在Proteus ISIS界面中,按動開關(guān),可看到數(shù)碼管顯示的變化,如圖6-51所示。,圖6-51 程序運行結(jié)果,6.10.4 總結(jié)與提示,在有多個中斷同時存在時注意中斷優(yōu)先級的設(shè)置以及中斷中的觸發(fā)方式; 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察電路的工作情況; 在某些情況下中斷子程序中需要對各寄存器進行保護。,6.11 單片機與PC機間的串行通信,內(nèi)容 利用虛擬終端仿真單片機與PC機間的串行通信。PC機先發(fā)送從鍵盤輸入的數(shù)據(jù),單片機接收后回發(fā)給PC

48、機。單片機同時將收到的3039H間的數(shù)據(jù)轉(zhuǎn)換成09的數(shù)字顯示,其他字符的數(shù)據(jù)直接顯示為其ASCII碼。 背景知識 已掌握Keil Vision3開發(fā)軟件的使用方法; 了解RS-232總線技術(shù)。 訓練目的 掌握電平轉(zhuǎn)換器件RS-232的使用方法; 掌握Proteus VSM虛擬終端(VITUAL TERMINAL)的使用; 掌握單片機與PC機間的串行通信軟硬件設(shè)計方法。,6.11.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-11所列的清單添加元件,表6-11 元 件 清 單,2. 串口模型介紹 串口模型COMPIM及其引腳功能如圖6-52中(a)

49、所示。需要注意的是,在Proteus ISIS元件庫的“Connectors”類的“D-Type”子類中,也有一個串口模型器件CONN-D9F,如圖6-52中(b)所示,因該器件在使用時沒有仿真模型,將導致仿真失敗,所以要避免選用。,圖6-52 Proteus串口模型,3. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-53所示的原理圖(晶振和復位電路略)連接硬件電路。,圖6-53 電路原理圖,4. 串口模型屬性設(shè)置 串口模型屬性設(shè)置為:波特率4800;數(shù)據(jù)位8;奇偶校驗無;停止位1,如圖6-54所示。,圖6-54 串口模型屬性設(shè)置,4. 串口模型屬性設(shè)置 串口模型

50、屬性設(shè)置為:波特率4800;數(shù)據(jù)位8;奇偶校驗無;停止位1,如圖6-54所示。,5. 虛擬終端屬性設(shè)置 PCT代表計算機發(fā)送數(shù)據(jù),PCR用來監(jiān)視PC接收到的數(shù)據(jù),它們的屬性設(shè)置完全一樣,如圖6-55所示。SCMT和SCMR分別是單片機的數(shù)據(jù)發(fā)送和接收終端,用來監(jiān)視單片機發(fā)送和接收的數(shù)據(jù),它們的屬性設(shè)置也完全一樣,如圖6-56所示。單片機和PC機雙方的波特率、數(shù)據(jù)位、停止位和檢驗位等要確保和串口模型的設(shè)置一樣,并且同單片機程序中串口的設(shè)置一致。,要注意到PC機虛擬終端與單片機虛擬終端在RX/TX Polarity屬性的設(shè)置是相反的,因為信號在經(jīng)過器件MAX232時要反相。,圖6-55 PC機虛擬

51、終端屬性設(shè)置,圖6-56 單片機虛擬終端屬性設(shè)置,6.11.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件,加載目標代碼文件,進入調(diào)試環(huán)境執(zhí)行程序,進行以下操作: (1) 在Proteus ISIS界面中的PCT虛擬終端上單擊右鍵,在彈出的快捷菜單中選擇“Echo Typed Characters”項;,(2) 鼠標指針在PCT終端窗口單擊,該窗口出現(xiàn)閃爍的光標,從鍵盤輸入數(shù)字“8”,在PCS終端窗口中就出現(xiàn)“8”,表明PC機發(fā)送數(shù)據(jù)“8”,按照設(shè)計好的程序,單片機將接收到“8”,所以在單片機接收虛擬終端SCMR上會顯示“8”,同時又將數(shù)字“8”送顯到數(shù)碼管上。接下來,單片機又將該

52、數(shù)回發(fā)給PC機,因此在單片機發(fā)送終端SCMT上也顯示“8”,PC機接收到數(shù)據(jù)后在接收終端PCR上同樣顯示“8”,結(jié)果如圖6-57所示。根據(jù)程序設(shè)計,當在鍵盤上輸入09以外的字符時,單片機輸出到數(shù)碼管上顯示的則是該字符的ASCII碼,如圖6-58所示。,圖6-57 程序運行結(jié)果1,圖6-58 程序運行結(jié)果2,6.11.4 總結(jié)與提示,在原理圖中的電阻R1不能少,否則虛擬終端PCR將收不到信息。 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察系統(tǒng)的工作過程。 在Proteus仿真中,單片機和COMPIM之間也可以不用加MAX232器件,6.12 單片機與步進

53、電機的接口技術(shù),內(nèi)容 利用AT89C51單片機控制步進電機的啟/停、正轉(zhuǎn)與反轉(zhuǎn)。 背景知識 已掌握Keil Vision3開發(fā)軟件的使用方法; 了解步進電機的工作原理與控制方法。 訓練目的 強化對步進電機工作原理的理解; 掌握用單片機控制步進電機時的接口電路設(shè)計方法; 掌握對步進電機進行控制的編程方法。,6.12.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-12所列的清單添加元件。,表6-12 元件清單,2. 步進電機元件介紹 Proteus軟件中的單極性步進電機元件為6線制,其原理圖及屬性編輯框如圖6-59所示,各屬性值可根據(jù)需要修改。本例中

54、所設(shè)置的屬性值均如圖6-59所示,圖6-59 單極性步進電機原理圖及屬性,3. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-60所示的原理圖連接硬件電路。,圖6-60 電路原理圖,6.12.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件,加載目標代碼文件,進入調(diào)試環(huán)境執(zhí)行程序,進行如下操作:圖6-61 程序運行結(jié)果 (1) 在Proteus ISIS界面中,按“正轉(zhuǎn)”、“反轉(zhuǎn)”按鈕,觀察步進電機的狀態(tài),如圖6-61所示; (2) 觀察步進電機的單拍轉(zhuǎn)動角度,體會4相8拍的含義。,圖6-61 程序運行結(jié)果,6.12.4 總結(jié)與提示,在進行仿真時,可以在單

55、片機的P1.0P1.3口上接入邏輯分析儀來監(jiān)測控制信號的工作狀態(tài)(本例略)。 可修改步進電機屬性中的步進角以觀察不同的仿真結(jié)果。 在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運用Keil中的多種調(diào)試功能來詳細觀察電路的工作情況。,6.13 單片機與直流電動機的接口技術(shù),內(nèi)容 PWM是單片機常用的模擬量控制方式,本例通過外接的A/D轉(zhuǎn)換電路,對應外部不同的電壓值,利用AT89C51單片機產(chǎn)生占空比不同的控制脈沖,驅(qū)動直流電動機以不同的轉(zhuǎn)速轉(zhuǎn)動。并通過外接的單刀雙擲開關(guān),控制電動機的正轉(zhuǎn)與反轉(zhuǎn)。,背景知識 已掌握Keil Vision3開發(fā)軟件的使用方法; 了解光電耦合器、A/D轉(zhuǎn)換器件ADC0808的使用方法。 訓練目的 掌握用單片機控制直流電機時的接口電路設(shè)計方法; 掌握對直流電動機控制的橋式驅(qū)動電路接法。,6.13.1 Proteus電路設(shè)計,1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-13所列的清單添加元件,表6-13 元件清單,2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-62所示的原理圖連接硬件電路。,圖6-62 電路原理圖,6.13.3 Proteus調(diào)試與仿真,參照6.3.3節(jié)建立程序文件,加載目標代碼文件,進入調(diào)試環(huán)境執(zhí)行程序。在Proteu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論