版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、匯編源程序的建立與編譯6.1 匯編源程序的建立與編譯6.1.1 Proteus中的源程序設(shè)計(jì)與編譯6.1.2 Keil Vision中的源程序設(shè)計(jì)與編譯6.2 Proteus與單片機(jī)電路的交互式仿真與調(diào)試6.2.1 加載目標(biāo)代碼6.2.2 單片機(jī)系統(tǒng)的Proteus交互仿真6.2.3 調(diào)試菜單與調(diào)試窗口6.2.4 觀察窗口6.3 I/O口輸入輸出應(yīng)用6.3.1 Proteus電路設(shè)計(jì)6.3.2 源程序設(shè)計(jì)6.3.3 Proteus調(diào)試與仿真6.3.4 總結(jié)與提示6.4 44矩陣式鍵盤識(shí)別技術(shù)6.4.1 Proteus電路設(shè)計(jì)6.4.2 源程序設(shè)計(jì)6.4.3 Proteus調(diào)試與仿真6.4.4
2、總結(jié)與提示6.5 動(dòng)態(tài)掃描顯示6.5.1 Proteus電路設(shè)計(jì)6.5.2 源程序設(shè)計(jì)6.5.3 Proteus調(diào)試與仿真6.5.4 總結(jié)與提示6.6 88點(diǎn)陣LED顯示6.6.1 Proteus電路設(shè)計(jì)6.6.2 源程序設(shè)計(jì)6.6.3 Proteus設(shè)計(jì)與仿真6.6.4 總結(jié)與提示6.7 I/O口的擴(kuò)展6.7.1 Proteus電路設(shè)計(jì)6.7.2 源程序設(shè)計(jì)6.7.3 Proteus調(diào)試與仿真6.7.4 總結(jié)與提示6.8 定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)6.8.1 Proteus電路設(shè)計(jì)6.8.2 源程序設(shè)計(jì)6.8.3 Proteus設(shè)計(jì)與仿真匯編源程序的建立與編譯 6.8.4 總結(jié)與提示 6.9 外部數(shù)
3、據(jù)存儲(chǔ)器擴(kuò)展 6.9.1 Proteus電路設(shè)計(jì) 6.9.2 源程序設(shè)計(jì) 6.9.3 Proteus調(diào)試與仿真 6.9.4 總結(jié)與提示 6.10 外部中斷實(shí)驗(yàn) 6.10.1 Proteus電路設(shè)計(jì) 6.10.2 源程序設(shè)計(jì) 6.10.3 Proteus調(diào)試與仿真 6.10.4 總結(jié)與提示 6.11 單片機(jī)與PC機(jī)間的串行通信 6.11.1 Proteus電路設(shè)計(jì) 6.11.2 源程序設(shè)計(jì) 6.11.3 Proteus調(diào)試與仿真 6.11.4 總結(jié)與提示 6.12 單片機(jī)與步進(jìn)電機(jī)的接口技術(shù) 6.12.1 Proteus電路設(shè)計(jì) 6.12.2 源程序設(shè)計(jì) 6.12.3 Proteus調(diào)試與仿真
4、6.12.4 總結(jié)與提示 6.13 單片機(jī)與直流電動(dòng)機(jī)的接口技術(shù) 6.13.1 Proteus電路設(shè)計(jì) 6.13.2 源程序設(shè)計(jì) 6.13.3 Proteus調(diào)試與仿真 6.13.4 總結(jié)與提示 6.14 基于DAC0832數(shù)模轉(zhuǎn)換器的數(shù)控電源 6.14.1 Proteus電路設(shè)計(jì) 6.14.2 源程序設(shè)計(jì) 6.14.3 Proteus調(diào)試與仿真 6.14.4 總結(jié)與提示 6.15 基于ADC0808模數(shù)轉(zhuǎn)換器的數(shù)字電壓表 6.15.1 Proteus電路設(shè)計(jì) 6.15.2 源程序設(shè)計(jì) 6.15.3 Proteus調(diào)試與仿真 6.15.4 總結(jié)與提示匯編源程序的建立與編譯第6章 MCS-51單
5、片機(jī)接口基礎(chǔ) MCS-51系列單片機(jī)在很多產(chǎn)品中得到了廣泛的應(yīng)用。在具體的工程實(shí)踐中,單片機(jī)應(yīng)用技術(shù)所涉及的實(shí)踐環(huán)節(jié)較多,且硬件投入較大,如果因?yàn)榭刂品桨赣姓`而進(jìn)行相應(yīng)的開發(fā)設(shè)計(jì),會(huì)浪費(fèi)較多的時(shí)間和經(jīng)費(fèi)。Proteus仿真軟件很好地解決了這些問題,它可以像Protel一樣繪制硬件原理圖并實(shí)現(xiàn)硬件調(diào)試,再與Keil編程軟件進(jìn)行聯(lián)調(diào),實(shí)現(xiàn)對(duì)控制方案的驗(yàn)證。尤其對(duì)于初學(xué)單片機(jī)的用戶提供了極大的方便。 匯編源程序的建立與編譯6.1 匯編源程序的建立與編譯匯編源程序的建立與編譯Keil是德國Keil公司開發(fā)的單片機(jī)編譯器,是目前最好的51單片機(jī)開發(fā)工具之一,可以用來編譯C源代碼和匯編源程序、連接和重定位
6、目標(biāo)文件和庫文件、創(chuàng)建HEX文件、調(diào)試目標(biāo)程序等,是一種集成化的文件管理編譯環(huán)境。在Proteus中,可以直接與Keil編程軟件進(jìn)行聯(lián)調(diào),進(jìn)而實(shí)現(xiàn)對(duì)所設(shè)計(jì)電路的驗(yàn)證。 匯編源程序的建立與編譯6.1.1 Proteus中的源程序設(shè)計(jì)與編譯中的源程序設(shè)計(jì)與編譯 Proteus VSM提供了簡單的文本編輯器,用它作為源程序的編輯環(huán)境。對(duì)于不同系列的單片機(jī),VSM均提供了相應(yīng)的編譯器,使用時(shí)可根據(jù)單片機(jī)的型號(hào)和語言要求來選取。 編譯器有以下幾種: ASEM51(51系列單片機(jī)編譯器); ASM11(Motorola單片機(jī)編譯器); AVRASM(Atmel AVR系列單片機(jī)編譯器); AVRASM32
7、(Atmel AVR系列單片機(jī)編譯器); MPASM(PIC單片機(jī)編譯器); MPASMSWIN(PIC單片機(jī)編譯器)。 1. 建立源程序文件 在Proteus ISIS界面中單擊菜單Soure(源程序),在彈出的下拉菜單中單擊“Add/Remove Source Files”(添加/移開源程序)選項(xiàng),彈出如圖6-1所示對(duì)話框, 匯編源程序的建立與編譯單擊“Code Generation Tool”(目標(biāo)代碼生成工具)下方框中按鈕,彈出下拉菜單,根據(jù)需要選擇相應(yīng)的編譯器,例如“ASEM51”(51系列單片機(jī)編譯器)。 圖6-1 Add/Remove Source Code Files對(duì)話框匯編
8、源程序的建立與編譯在圖6-1中單擊“New”按鈕,彈出如圖6-2所示的對(duì)話框,在文件名框中輸入新建源程序文件名“mydesign”,單擊“打開”按鈕,彈出圖6-2中所示的小對(duì)話框,選擇“是”按鈕,新建的源程序文件就添加到圖6-1中的“Source Code ”方框中,如圖6-3所示。同時(shí)在ISIS界面的“Source”菜單中也加入了源程序文件名“mydesign.asm”,如圖6-4所示。匯編源程序的建立與編譯圖6-2 新建源程序文件對(duì)話框匯編源程序的建立與編譯圖6-3 源程序添加結(jié)果 圖6-4 菜單Source中加載的源程序文件 2. 編寫源程序代碼單擊菜單【Source】【mydesign
9、.asm】,出現(xiàn)圖6-5所示的源程序編輯窗口。編寫源程序后存盤退出。圖6-5 源程序編輯窗口匯編源程序的建立與編譯3. 源程序編譯 (1) 編譯器設(shè)置。第一次使用編譯器時(shí)需進(jìn)行相關(guān)的設(shè)置,單擊菜單【Source】【Define Code Generation Tools】,出現(xiàn)圖6-6所示界面,本例中實(shí)際設(shè)置結(jié)果如圖6-6所示 (2) 編譯源程序,生成目標(biāo)代碼文件。單擊【Source】【Build All】,編譯結(jié)果在彈出的編譯日志對(duì)話框中。如果沒有錯(cuò)誤便成功生成目標(biāo)代碼“.hex”文件。本例中生成的目標(biāo)代碼文件為“MYDESIGN.HEX”。圖6-6 編譯器設(shè)置界面匯編源程序的建立與編譯6.
10、1.2 Keil Vision中的源程序設(shè)計(jì)與編中的源程序設(shè)計(jì)與編譯譯在Keil集成開發(fā)環(huán)境下使用工程的方法來管理文件,而不是單一文件的模式,所有的文件包括源程序(如C程序、匯編程序)、頭文件等都可以放在工程項(xiàng)目文件里統(tǒng)一管理。對(duì)于剛剛使用Keil的用戶,一般可以按照下面的步驟來創(chuàng)建一個(gè)自己的應(yīng)用程序:(1) 一個(gè)工程項(xiàng)目文件;(2) 選擇目標(biāo)器件(例如,選擇ATMEL公司的AT89C51);匯編源程序的建立與編譯(3) 為工程項(xiàng)目設(shè)置軟硬件調(diào)試環(huán)境;(4) 創(chuàng)建源程序文件并輸入程序代碼;(5) 保存創(chuàng)建的源程序項(xiàng)目文件;(6) 把源程序文件添加到項(xiàng)目中。具體如何建立應(yīng)用程序并進(jìn)行仿真調(diào)試,我
11、們將通過實(shí)驗(yàn)來詳細(xì)說明。1. 建立一個(gè)項(xiàng)目雙擊桌面快捷圖標(biāo)即可進(jìn)入如圖6-7所示的集成開發(fā)環(huán)境編輯操作界面,主要包括三個(gè)窗口:工程項(xiàng)目窗口、編輯窗口和輸出窗口。單擊 Project 菜單,在彈出的下拉菜單中選中“New Project”選項(xiàng),新建一個(gè)項(xiàng)目,如圖6-8所示。匯編源程序的建立與編譯圖6-7 Vision2編輯操作界面圖6-8 Project界面匯編源程序的建立與編譯然后選擇要保存的路徑,輸入工程文件的名字(比如保存到uv目錄里,工程文件的名字為“shiyan1”),如圖6-9所示,然后單擊“保存”按鈕。這時(shí)會(huì)彈出一個(gè)對(duì)話框,要求選擇單片機(jī)的型號(hào)。這里可以根據(jù)所使用的單片機(jī)來選擇,K
12、eil幾乎支持所有51核的單片機(jī),這里以Atmel的89C51來說明,如圖6-10所示。圖6-9 Project保存設(shè)置界面匯編源程序的建立與編譯圖6-10 選擇器件首先選擇Atmel公司,然后單擊左邊的“+”號(hào)選擇AT89C51 之后,右邊欄 是對(duì)這個(gè)單片機(jī)的基本說明,然后單擊“確定”,在隨后彈出的對(duì)話框單擊“否”。完成以上步驟后,屏幕如圖6-11所示匯編源程序的建立與編譯首先進(jìn)行選項(xiàng)設(shè)置,將鼠標(biāo)指針指向“Target 1”并單擊右鍵,再從彈出的右鍵菜單中單擊“Options for Target”選項(xiàng),如圖6-12所示。圖6-11 初始化編輯界面匯編源程序的建立與編譯從彈出的“Option
13、s”對(duì)話框中選擇“Output”標(biāo)簽欄,并按如圖6-13所示設(shè)置其中各項(xiàng)。圖6-12 選擇“Options for Target”選項(xiàng)圖6-13 “Output”標(biāo)簽欄匯編源程序的建立與編譯2. 建立一個(gè)新的ASM匯編語言程序并編譯 下面開始編寫源程序。(1) 在菜單欄中,單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng),或直接單擊工具欄的快捷圖標(biāo)來建立了一個(gè)新的編輯窗口。此時(shí)光標(biāo)在編輯窗口里閃爍,這時(shí)可以輸入用戶的應(yīng)用程序了。建議首先保存該空白文件,單擊菜單上的“File”,在下拉菜單中選中“Save As”選項(xiàng),在彈出對(duì)話框的“文件名”欄右側(cè)編輯框中,輸入欲使用的文件名,同時(shí),必須輸
14、入正確的擴(kuò)展名,如“Text1.asm”,然后,單擊“保存”按鈕,如圖6-14所示 匯編源程序的建立與編譯注意:如果用語言編寫程序,則擴(kuò)展名為“.c”;如果用匯編語言編寫程序,則擴(kuò)展名為“.asm”,且必須添加擴(kuò)展文件名。(2) 回到編輯界面后,單擊“Target 1”前面的“”號(hào),然后在“Source Group 1”上單擊右鍵,彈出如圖6-15所示的快捷菜單。圖6-14 保存源程序匯編源程序的建立與編譯 然后單擊“Add GroupSource Group 1”,打開如圖6-16所示對(duì)話框,在“文件類型”處默認(rèn)為“C Source file(*.c)”,因?yàn)榍懊嫖覀儽4娴氖菂R編語言的文件,
15、故需要選擇“Asm Source file(*.s*;*.src;*.a*)”,這樣在上面就可以看到剛才保存的匯編語言文件“Text1.asm”,雙擊該文件則自動(dòng)添加至項(xiàng)目,單擊“Close”關(guān)閉對(duì)話框。 對(duì)比圖6-17和圖6-15,可以看出二者的不同點(diǎn):在添加了匯編語言文件后,在“Source Group 1”文件夾前面出現(xiàn)了一個(gè)“+”號(hào),單擊“+”號(hào)展開就看到了剛才添加的“Text1.asm”文件。圖6-15 彈出右鍵菜單匯編源程序的建立與編譯(3) 然后就可以在右側(cè)的編輯區(qū)輸入?yún)R編源程序了。在輸入指令時(shí),讀者可以看到事先保存待編輯文件的好處:Keil會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用
16、戶加以注意,這樣會(huì)使用戶少犯錯(cuò)誤,有利于提高編程效率。程序輸入完畢后別忘了再次保存,如圖6-18所示。圖6-16 添加文件對(duì)話框圖6-17 添加文件后工程欄的變化匯編源程序的建立與編譯(4) 程序文件編輯完畢后,單擊“Project”菜單,選中“Built target”選項(xiàng)(或者使用快捷鍵 F7),或者單擊工具欄的快捷圖標(biāo)來進(jìn)行編譯,如圖6-19所示 圖6-18 程序輸入完畢后狀態(tài)圖6-19 編譯菜單匯編源程序的建立與編譯(5) 如果有錯(cuò)誤,則在最后的輸出窗口中會(huì)出現(xiàn)所有錯(cuò)誤所在的位置和錯(cuò)誤的原因,并有“Target not created”的提示。雙擊該處的錯(cuò)誤提示,在編輯區(qū)對(duì)應(yīng)錯(cuò)誤指令處
17、左面出現(xiàn)藍(lán)色箭頭提示,然后對(duì)當(dāng)前的錯(cuò)誤指令進(jìn)行修改,如圖6-20所示 圖6-20 錯(cuò)誤提示匯編源程序的建立與編譯(6) 將所有提示過的錯(cuò)誤進(jìn)行修改,然后再次重復(fù)(4)的操作進(jìn)行編譯,直至出現(xiàn)“shiyan1 - 0 Error(s), 0 Warning(s)”,說明編譯完全通過,如圖6-21所示。圖6-21 編譯通過提示匯編源程序的建立與編譯3. 調(diào)試并仿真編譯成功后,就可以進(jìn)行調(diào)試并仿真了。單擊“Project”菜單,在下拉菜單中單擊“Start/Stop Debug Session”(或者使用快捷鍵 Ctrl+F5),或者單擊工具欄的快捷圖標(biāo)就可以進(jìn)入調(diào)試界面,如圖6-22所示 圖6-2
18、2 調(diào)試界面匯編源程序的建立與編譯左面的工程項(xiàng)目窗口給出了常用的寄存器r0-r7以及a、b、sp、dptr、pc、psw等特殊功能寄存器的值。在執(zhí)行程序的過程中可以看到,這些值會(huì)隨著程序的執(zhí)行發(fā)生相應(yīng)的變化。在存儲(chǔ)器窗口的地址欄處輸入C:0000H后回車,則可以觀看所有單片機(jī)片內(nèi)程序存儲(chǔ)器的內(nèi)容,如圖6-23所示,下面用橫線畫出來的部分就是已經(jīng)編輯的源程序轉(zhuǎn)化成的機(jī)器語言的十六進(jìn)制數(shù)(或者說是對(duì)應(yīng)的機(jī)器碼)。如果在存儲(chǔ)器窗口的地址欄處輸入D:00H后回車,則可以觀看所有單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器的內(nèi)容 圖6-23 存儲(chǔ)器窗口匯編源程序的建立與編譯在聯(lián)機(jī)調(diào)試狀態(tài)下可以啟動(dòng)程序全速運(yùn)行、單步運(yùn)行、設(shè)置斷
19、點(diǎn)等,單擊菜單“Debug /Go”選項(xiàng),啟動(dòng)用戶程序全速運(yùn)行。下面介紹幾種常用的調(diào)試命令及方法。(1) 復(fù)位CPU用“Debug”菜單或工具欄的“Reset CPU”命令可以復(fù)位CPU。在不改變程序的情況下,若想使程序重新開始運(yùn)行,執(zhí)行此命令即可。執(zhí)行此命令后程序指針返回到000H地址單元。另外,一些內(nèi)部特殊功能寄存器在復(fù)位期間也將重新賦值。例如,A將變?yōu)?0H,DPTR變?yōu)?000H,SP變?yōu)?7H,I/O口變?yōu)?FFH。匯編源程序的建立與編譯(2) 全速運(yùn)行(F5)用“Debug”工具欄的“Go”或快捷命令“Run”命令按鈕,即可實(shí)現(xiàn)全速運(yùn)行程序。當(dāng)然若程序中已經(jīng)設(shè)置斷點(diǎn),程序?qū)?zhí)行到斷
20、點(diǎn)處,并等待調(diào)試指令。(3) 單步跟蹤(F11)用“Debug”工具欄的“Step”或快捷命令“StepInto”命令按鈕,可以單步跟蹤程序。每執(zhí)行一次此命令,程序?qū)⑦\(yùn)行一條指令(以指令為基本執(zhí)行單元)。當(dāng)前的指令用黃色箭頭標(biāo)出,每執(zhí)行一步箭頭都會(huì)移動(dòng),已執(zhí)行過的語言呈綠色。在匯編語言調(diào)試下,可以跟蹤到每一個(gè)匯編指令的執(zhí)行。Vision2處于全速運(yùn)行期間,Vision2不允許對(duì)任何資源的查看,也不接受其他命令。匯編源程序的建立與編譯 (4) 單步運(yùn)行(F10) 用“Debug”工具欄的“Step Over”或快捷命令“Step Over”按鈕,即可實(shí)現(xiàn)單步運(yùn)行程序,此時(shí)單步運(yùn)行命令將把函數(shù)和函
21、數(shù)調(diào)用當(dāng)作一個(gè)實(shí)體來看待,因此單步運(yùn)行是以語句(該語句不管是單一命令行還是函數(shù)調(diào)用)為基本執(zhí)行單元。 (5) 執(zhí)行返回(Ctrl+F11) 在用單步跟蹤命令跟蹤到子函數(shù)或子程序內(nèi)部時(shí),使用“Debug”菜單欄中的“Step Out of Current Function”或快捷命令按鈕“Step Out”,即可將程序的PC指針返回到調(diào)用此子程序或函數(shù)的下一條語句。(6) 停止調(diào)試(Ctrl+F5) 由于“Led_Light”程序使用了系統(tǒng)資源P1口,為了更好地觀察這些資源的變化,用戶可以打開它們的觀察窗口。選擇“PeripheralsI/O-PortsPort1”命令,即可打開并行I/O口P1
22、的觀察窗口。匯編源程序的建立與編譯6.2 Proteus與單片機(jī)電路的交互式仿真與調(diào)試 6.2.1 加載目標(biāo)代碼加載目標(biāo)代碼匯編源程序的建立與編譯雙擊單片機(jī)AT89C51,打開其屬性編輯框,在“Program File”欄中,單擊打開按鈕,選取目標(biāo)代碼文件,這里是“MYDESIGN.HEX”。在“Clock Frequency”欄中設(shè)置時(shí)鐘頻率為12MHz,如圖6-25所示。因?yàn)榉抡孢\(yùn)行在Proteus ISIS界面中編輯電路原理圖實(shí)例,如圖6-24所示 圖6-24 實(shí)例電路原理圖匯編源程序的建立與編譯時(shí)的時(shí)鐘頻率是以單片機(jī)屬性中設(shè)置的頻率值為準(zhǔn),所以在Proteus ISIS界面中設(shè)計(jì)電路原
23、理圖時(shí),可以略去單片機(jī)的時(shí)鐘電路。另外,復(fù)位電路也可略去。對(duì)于MCS-51系列單片機(jī)而言,在不進(jìn)行電路電氣檢測時(shí),EA引腳也可懸空。 圖6-25 加載目標(biāo)代碼文件和時(shí)鐘設(shè)置匯編源程序的建立與編譯6.2.2 單片機(jī)系統(tǒng)的單片機(jī)系統(tǒng)的Proteus交互仿真交互仿真在Proteus仿真界面中單擊按鈕,全速啟動(dòng)仿真,此時(shí)電路中的LED不亮。用鼠標(biāo)單擊電路圖中的按鈕,進(jìn)行交互仿真。單擊一次按鈕,LED燈亮,再單擊一次,LED燈滅,如此循環(huán)交替。本實(shí)例仿真片段如圖6-26所示。單擊仿真按鈕,可停止仿真。圖6-26 實(shí)例仿真片段匯編源程序的建立與編譯6.2.3 調(diào)試菜單與調(diào)試窗口調(diào)試菜單與調(diào)試窗口 系統(tǒng)在全
24、速仿真運(yùn)行時(shí)不顯示調(diào)試窗口,可單擊暫停按鈕,然后單擊Proteus ISIS界面的“Debug”菜單,彈出如圖6-27所示的下拉菜單。從圖中可以看出,調(diào)試菜單包含有3個(gè)存儲(chǔ)器窗口,調(diào)試過程中可分別打開這3個(gè)存儲(chǔ)器窗口進(jìn)行觀察。1. 單片機(jī)寄存器窗口通過菜單【Debug】【8051 CPU Registers-U1】打開單片機(jī)寄存器窗口,如圖6-28所示。里面有常用的SFR,如SP、PC、PSW、R0R7、ACC及將要執(zhí)行的指令等。在本窗口內(nèi)右擊,可以設(shè)置窗口的字體和顏色。 匯編源程序的建立與編譯2. 單片機(jī)SFR 窗口通過菜單【Debug】【8051 CPU SFR Memory-U1】打開單
25、片機(jī)的SFR窗口,如圖6-29所示。圖6-27 “Debug”下拉菜單匯編源程序的建立與編譯3. 單片機(jī)IDATA窗口通過菜單【Debug】【8051 CPU Internal(IDATA)Memory-U1】打開單片機(jī)的IDATA窗口,如圖6-30所示。對(duì)于單片機(jī)的SFR寄存器,既可以從單片機(jī)的寄存器窗口中查看,也可以在SFR寄存器窗口中查看。在SFR、IDATA窗口中右擊,可彈出該窗口的設(shè)置菜單,如圖6-31所示??墒褂谩癎oto”命令快速運(yùn)動(dòng)到指定的顯示單元,還可復(fù)制數(shù)據(jù)或改變顯示方式等。圖6-28 單片機(jī)寄存器窗口 匯編源程序的建立與編譯圖6-29 單片機(jī)SFR窗口 圖6-30 單片機(jī)
26、IDATA窗口 圖6-31 單片機(jī)IDATA窗口的快捷菜單匯編源程序的建立與編譯6.2.4 觀察窗口觀察窗口雖然通過以上方法可以觀察單片機(jī)各個(gè)存儲(chǔ)器的內(nèi)容,但因顯示內(nèi)容比較分散,觀察起來不方便。對(duì)此,Proteus又同時(shí)提供了一個(gè)觀察窗口“Watch Window”,它可以將所關(guān)心的各項(xiàng)寄存器的內(nèi)容集中于一個(gè)窗口中,觀察起來十分方便,克服了上述缺點(diǎn)。1. 觀察項(xiàng)添加通過菜單【Debug】【W(wǎng)atch Window】打開空白的觀察窗口,在觀察窗口內(nèi)右擊,彈出快捷菜單,如圖6-32所示。由該菜單可添加、刪除觀察項(xiàng),設(shè)置觀察項(xiàng)的數(shù)據(jù)類型,顯示格式以及設(shè)置窗口的字體、顏色等。匯編源程序的建立與編譯 若
27、單擊“Add Items(By Name)”項(xiàng),便會(huì)彈出如圖6-33所示的對(duì)話框,雙擊相應(yīng)的SFR寄存器名稱,即可以觀察項(xiàng)名稱方式將觀察項(xiàng)添加到觀察窗口中。也可選擇以觀察項(xiàng)的地址來添加觀察項(xiàng)的方式。添加了觀察項(xiàng)的觀察窗口如圖6-34所示。圖6-32 觀察窗口及快捷菜單匯編源程序的建立與編譯2. 觀察項(xiàng)刪除要?jiǎng)h除已添加的觀察項(xiàng),有兩種方法:在觀察窗口單擊選中相應(yīng)的觀察項(xiàng),按鍵盤上的“Del”鍵即可。在觀察窗口右擊相應(yīng)的觀察項(xiàng),在彈出的快捷菜單中單擊“Delete Item”選項(xiàng)。圖6-33 “Add Memory Item”對(duì)話框 圖6-34 添加了觀察項(xiàng)的觀察窗口匯編源程序的建立與編譯3. 觀
28、察點(diǎn)條件設(shè)置在仿真運(yùn)行的過程中,還可以通過設(shè)置“觀察點(diǎn)條件”的手段來觸發(fā)中斷,以滿足某些特殊條件斷點(diǎn)的要求。具體方法:在觀察窗口內(nèi)右擊,在彈出的快捷菜單中單擊“Watchpoint Condition”項(xiàng),彈出觀察點(diǎn)條件設(shè)置框,如圖6-35所示。圖6-35 觀察點(diǎn)條件設(shè)置框匯編源程序的建立與編譯v觀察點(diǎn)條件設(shè)置分為兩級(jí),包括“全局?jǐn)帱c(diǎn)條件設(shè)置(Global Break Condition)”,如圖6-35中的上半部分所示,和“觀察項(xiàng)的斷點(diǎn)表達(dá)式(Item Break Expression)”,如圖6-35的下半部分所示。下半部分中“Item”項(xiàng)的內(nèi)容為觀察窗口中添加的觀察項(xiàng),可單擊按鈕,在下拉
29、列表中選擇要設(shè)置斷點(diǎn)的觀察項(xiàng)?!癈ondition”項(xiàng)為觀察項(xiàng)的條件,“Mask”項(xiàng)為觀察項(xiàng)的約束條件,它們具體包含的內(nèi)容如圖6-35的右邊所示。匯編源程序的建立與編譯 內(nèi)容 利用單片機(jī)AT89C51制作一個(gè)099計(jì)數(shù)器手動(dòng)計(jì)數(shù)器,用其P2.0P2.7接一個(gè)共陰極數(shù)碼管,輸出顯示099計(jì)數(shù)值的個(gè)位,用P0.0P0.7接數(shù)碼管輸出顯示計(jì)數(shù)值的十位數(shù)。P3.3引腳外接一輕觸開關(guān),要求每按下一次按鍵,計(jì)數(shù)值加1,當(dāng)計(jì)數(shù)值超出99后自動(dòng)返回0重新開始循環(huán)計(jì)數(shù)。訓(xùn)練目的掌握AT89C51單片機(jī)I/O口輸入輸出的應(yīng)用方法;掌握單片機(jī)驅(qū)動(dòng)7段數(shù)碼管顯示數(shù)字的編程方法。6.3 I/O口輸入輸出應(yīng)用口輸入輸出應(yīng)
30、用匯編源程序的建立與編譯6.3.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-1所列的清單添加元件。 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneousRESResistorsGeneric7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysBUTTONSwitches&RelaysSwitches表6
31、-1 元件清單匯編源程序的建立與編譯2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-36所示的原理圖(晶振和復(fù)位電路略)連接硬件電路。圖6-36 電路原理圖匯編源程序的建立與編譯6.3.3 Proteus調(diào)試與仿真調(diào)試與仿真1. 建立程序文件(1) 打開Keil Vision3,新建Keil項(xiàng)目,選擇AT89C51單片機(jī)作為CPU;(2) 新建匯編源文件,編寫程序并將其導(dǎo)入到“Source Group 1”中;(3) 在“Options for Target”對(duì)話框中,選中“Output”選項(xiàng)卡中的“Create HEX File”選項(xiàng)和“Debug”選項(xiàng)卡中的“
32、Use:Proteus VSM Simulator”選項(xiàng);(4) 編譯源程序,修改程序中的錯(cuò)誤直至通過。 匯編源程序的建立與編譯 2. 加載目標(biāo)代碼文件 (1) 在Proteus ISIS中,左鍵雙擊AT89C51元件打開“Edit Component”對(duì)話框,設(shè)置單片機(jī)的頻率為12MHz; (2) 在該窗口的“Program File”欄中,選擇先前在Keil中編譯產(chǎn)生的“.HEX”文件;(3) 在Proteus ISIS菜單欄中選擇【File】【Save Design】選項(xiàng),保存設(shè)計(jì);(4) 在Proteus ISIS菜單欄中,打開“Debug”下拉菜單,在菜單中選擇“Use Remote
33、 Debug Monitor”選項(xiàng),以支持與Keil的聯(lián)調(diào)。3. 進(jìn)行調(diào)試與仿真(1) 在Keil的菜單欄中選擇【Debug】【Start/Stop匯編源程序的建立與編譯Debug Session】選項(xiàng),或者在工具欄中直接單擊圖標(biāo),進(jìn)入調(diào)試環(huán)境;3. 進(jìn)行調(diào)試與仿真(1) 在Keil的菜單欄中選擇【Debug】【Start/Stop Debug Session】選項(xiàng),或者在工具欄中直接單擊圖標(biāo),進(jìn)入調(diào)試環(huán)境;(2) 按“F5”鍵或圖標(biāo),順序執(zhí)行程序;(3) 在Proteus ISIS界面中,按動(dòng)開關(guān),可看到數(shù)碼管的顯示值隨之加1,如圖6-37所示。匯編源程序的建立與編譯6.3.4 總結(jié)與提示總
34、結(jié)與提示圖6-37 程序運(yùn)行結(jié)果AT89C51單片機(jī)的P0口在作為普通I/O使用時(shí)必須匯編源程序的建立與編譯6.4 44矩陣式鍵盤識(shí)別技術(shù)矩陣式鍵盤識(shí)別技術(shù)內(nèi)容鍵盤是一組按鍵的集合,它是最常用的單片機(jī)輸入設(shè)備。操作人員可以通過鍵盤輸入數(shù)據(jù)或命令,實(shí)現(xiàn)簡單的人機(jī)通信。鍵盤分編碼鍵盤和非編碼鍵盤。靠軟件識(shí)別的為非編碼鍵盤。從結(jié)構(gòu)上來分又可以分為獨(dú)立連接式和行列式(矩陣式)兩類。 加上拉電阻,否則不能準(zhǔn)確輸入或輸出高低電平。仿真時(shí)可通過觀察P0口的電平狀態(tài)來體會(huì)這一點(diǎn)。在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運(yùn)用Keil中的多種調(diào)試功能來詳細(xì)觀察電路的工作情況。匯編源程序的建立與編譯6.4.
35、1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)為了減少鍵盤占用單片機(jī)的I/O線數(shù)目,通常都將鍵盤排列成矩陣式。訓(xùn)練目的掌握軟件鍵盤去抖的方法;掌握鍵盤識(shí)別編程的方法。1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-2所列的清單添加元件。匯編源程序的建立與編譯元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneousRESResistorsGeneric7SEG-COM-CAT-GRNOptoelectronic
36、s7-Segment DisplaysBUTTONSwitches&RelaysSwitches表6-2 元件表清單 匯編源程序的建立與編譯2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-38所示的原理圖(晶振和復(fù)位電路略)連接硬件電路。圖 6-38 電路原理圖 匯編源程序的建立與編譯6.4.3 Proteus調(diào)試與仿真調(diào)試與仿真參照6.3.3節(jié)建立程序文件,加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境,執(zhí)行程序,在Proteus ISIS界面中,按下各個(gè)按鍵,觀察數(shù)碼管上的顯示和所標(biāo)的鍵號(hào)是否對(duì)應(yīng)。 6.4 源程序設(shè)計(jì)源程序設(shè)計(jì)v略 6.4.4 總結(jié)與提示總結(jié)與提示v
37、在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運(yùn)用Keil中的多種調(diào)試功能來詳細(xì)觀察電路的工作情況。v在Proteus中仿真時(shí)可以降低單片機(jī)的工作頻率,觀察電路中各接點(diǎn)的電平變化情況,看是否和所編程序符合,以增強(qiáng)對(duì)程序的理解。匯編源程序的建立與編譯6.5 動(dòng)態(tài)掃描顯示動(dòng)態(tài)掃描顯示內(nèi)容單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器件主要有發(fā)光二極管,簡稱LED(Light Emitting Diode);液晶顯示,簡稱LCD(Liquid Crystal Display)。LED有靜態(tài)顯示和動(dòng)態(tài)顯示兩種方式,在多位LED顯示時(shí),為了簡化電路,降低成本,將所有位的段線并聯(lián)在一起,由一個(gè)8位I/O控制。而共陰(或共
38、陽)極公共端分別由相應(yīng)的I/O線控制,實(shí)現(xiàn)各位的分時(shí)選通。訓(xùn)練目的掌握LED動(dòng)態(tài)掃描的顯示方法;掌握單片機(jī)驅(qū)動(dòng)7段數(shù)碼管顯示數(shù)字的編程方法;掌握串入并出集成芯片74LS595的使用方法。匯編源程序的建立與編譯6.5.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì) 1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-3所列的清單添加元件 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneousRESResisto
39、rsGeneric7SEG-MPX8-CA-BLUEOptoelectronics7-Segment Displays74LS59574LS SerialRegisters表6-3 元 件 清 單匯編源程序的建立與編譯2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-39所示的原理圖(晶振和復(fù)位電路略)連接硬件電路。圖6-39 電路原理圖匯編源程序的建立與編譯6.5.2 源程序設(shè)計(jì)源程序設(shè)計(jì) 略 6.5.3 Proteus調(diào)試與仿真調(diào)試與仿真 參照6.3.3節(jié)建立程序文件、加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境后執(zhí)行程序,降低單片機(jī)的工作頻率,觀察動(dòng)態(tài)顯示的過程。 6 .
40、 5 . 4 總 結(jié) 與 提 示總 結(jié) 與 提 示 AT89C51單片機(jī)的P0口在作為普通I/O使用時(shí)必須加上拉電阻,否則不能準(zhǔn)確輸入或輸出高低電平。仿真時(shí)可通過觀察P0口的電平狀態(tài)來體會(huì)這一點(diǎn)。在Proteus與Keil的聯(lián)調(diào)過程中,可以綜合運(yùn)用Keil中的多種調(diào)試功能來詳細(xì)觀察電路的工作情況。匯編源程序的建立與編譯6.6 88點(diǎn)陣點(diǎn)陣LED顯示顯示內(nèi)容 用單片機(jī)AT89C51驅(qū)動(dòng)88點(diǎn)陣LED顯示屏,輪流顯示09的數(shù)字。顯示方式采用自右向左拉幕式顯示。訓(xùn)練目的掌握88點(diǎn)陣LED顯示屏的使用方法;掌握單片機(jī)進(jìn)行拉幕式顯示的編程方法。匯編源程序的建立與編譯6.6.1 Proteus電路設(shè)計(jì)電路
41、設(shè)計(jì)1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-4所列的清單添加元件。元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneousRESResistorsGeneric74LS245TTL 74LS SeriesTansceiversMATRIX-88-REDOptoelectronicsDot Matrix DisplaysRESPACK-8ResistorsResistors Packs表6
42、-4 元件清單匯編源程序的建立與編譯2. 88點(diǎn)陣LED元件介紹 Proteus ISIS中的88點(diǎn)陣LED元件原理圖如圖6-40(a)所示。由于該元件引腳沒有任何標(biāo)注,因此在使用之前必須進(jìn)行引腳測試,以確定行線和列線的順序及極性。圖6-40(b)給出了一種進(jìn)行引腳測試的方法,根據(jù)測試結(jié)果便很容易確定該元件的電路接法。圖6-40 88點(diǎn)陣LED元件原理圖及引腳測試匯編源程序的建立與編譯3. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-41所示的原理圖連接硬件電路。圖6-41 電路原理圖 匯編源程序的建立與編譯6.6.3 Proteus設(shè)計(jì)與仿真設(shè)計(jì)與仿真參照6.3
43、.3節(jié)建立程序文件、加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境后執(zhí)行程序,在Proteus ISIS界面中的仿真片斷如圖6-42所示 圖6-42 仿真片段 6 . 6 . 4 總 結(jié) 與 提 示總 結(jié) 與 提 示程序編寫中,必須在TCOUNT數(shù)值是8的整數(shù)倍時(shí)再進(jìn)行下面的移位操作,否則顯示在銜接時(shí)會(huì)亂。 匯編源程序的建立與編譯6.7 I/O口的擴(kuò)展口的擴(kuò)展內(nèi)容8255是微機(jī)并行可編程IO口擴(kuò)展芯片。對(duì)8255輸入不同的指令可改變IO口的工作方式。8255與單片機(jī)系統(tǒng)連接方式簡單,工作方式由程序設(shè)定。背景知識(shí)已掌握Keil Vision3開發(fā)軟件的使用方法;已掌握常用外部RAM的基本操作。訓(xùn)練目的掌握單片機(jī)
44、與8125的接口原理,熟悉8255初始化編程,以及輸入輸出的設(shè)計(jì)方法。匯編源程序的建立與編譯6.7.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)1元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-5所列的清單添加元件 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 Family74LS37374LSGenericLED-BLUEActiveGeneric8255AMicroRESResistorsGenericRESPACK-8Switches&RelaysSwitches74LS04Device表6-5 元 件 清 單匯編源程序的建立
45、與編譯2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-43所示的原理圖連接硬件電路。P00P01P02P03P04P05P06P07P00P01P07P00P01P02P03P04P05P06P07XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P
46、3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS373234567891VCC12345613121110981234D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13
47、PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U28255A圖6-43 電路原理圖匯編源程序的建立與編譯6.7.2 源程序設(shè)計(jì)源程序設(shè)計(jì)1. 流程圖 圖6-44為程序流程圖。 開 始 初始化 A 賦值 延 時(shí) 送數(shù)據(jù) 左 移 圖6-44 流程圖匯編源程序的建立與編譯6.7.3 Proteus調(diào)試與仿真調(diào)試與仿真參照6.3.3節(jié)建立程序文件、加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境,單擊Proteus ISIS下面的仿真運(yùn)行鍵,即可看到如
48、圖6-45所示的運(yùn)行結(jié)果。P00P01P02P03P04P05P06P07P00P01P07P00P01P02P03P04P05P06P07XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T11
49、5P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS373234567891VCC12345613121110981234D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB
50、321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U28255A圖6-45 程序運(yùn)行結(jié)果匯編源程序的建立與編譯6.7.4 總結(jié)與提示 采用8255并口擴(kuò)展芯片的PA0口,設(shè)計(jì)一個(gè)44鍵的矩陣鍵盤掃描程序。6.8 定時(shí)器定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)計(jì)數(shù)器實(shí)驗(yàn)v內(nèi)容v利用單片機(jī)AT89C51,控制一發(fā)光二極管,亮1秒,關(guān)閉1秒,循環(huán)進(jìn)行;要求使用定時(shí)器/計(jì)數(shù)器控制。v訓(xùn)練目的v掌握AT89C51單片機(jī)定時(shí)器/計(jì)數(shù)器混合編程的使用方法 匯編源程序的建立與編譯6.8.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)1. 元件清單列表 打開Proteu
51、s ISIS編輯環(huán)境,按表6-6所列的清單添加元件 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneousRESResistorsGenericLED-BLUEActiveSWITCHActive表6-6 元件清單匯編源程序的建立與編譯2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-46所示的原理圖連接硬件電路。P10P10XTAL218XTAL119ALE30EA31PSEN2
52、9RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52X1
53、CRYSTALC11nFC21nFR1200C322uFR21kD1LED-BLUE圖6-46 電路原理圖匯編源程序的建立與編譯6.8.3 Proteus設(shè)計(jì)與仿真設(shè)計(jì)與仿真參照6.3.3節(jié)建立程序文件、加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境執(zhí)行程序,在Proteus ISIS界面中,可以看到,LED燈亮一秒,關(guān)一秒,循環(huán)進(jìn)行,如圖6-47 P1.56P1.67P1.78P2.6/A1427U1AT89C52D1LED-BLUER310圖6-47 運(yùn)行結(jié)果 6.8.4 總結(jié)與提示總結(jié)與提示嘗試改變計(jì)數(shù)器的值,使延時(shí)的時(shí)間更長。匯編源程序的建立與編譯6.9 外部數(shù)據(jù)存儲(chǔ)器擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器擴(kuò)展內(nèi)容用SR
54、AM6264擴(kuò)展單片機(jī)AT89C51的外部數(shù)據(jù)存儲(chǔ)器,通過仿真窗口觀察向6264寫入數(shù)據(jù)的過程。訓(xùn)練目的掌握AT89C51擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器時(shí)的接口電路設(shè)計(jì)方法;加深單片機(jī)對(duì)外部數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫過程的理解。匯編源程序的建立與編譯6.9.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)1. 元件清單列表 打開Proteus ISIS編輯環(huán)境,按表6-7所列的清單添加元件 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous
55、RESResistorsGeneric74LS373TTL 74HC SeriesFlip Flops&Latches6264Memory IcsStatic RAM表6-7 元件清單匯編源程序的建立與編譯2. 電路原理圖 元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-48所示的原理圖(復(fù)位和振蕩電路略)連接硬件電路。圖6-48 電路原理圖匯編源程序的建立與編譯6.9.3 Proteus調(diào)試與仿真調(diào)試與仿真 參照6.3.3節(jié)建立程序文件、加載目標(biāo)代碼文件,進(jìn)入調(diào)試環(huán)境,然后執(zhí)行下述操作: (1) 在Proteus ISIS界面中,單擊按鈕啟動(dòng)仿真。 (2) 通過菜單【D
56、ebug】【Memory ContentsU1】,打開6264存儲(chǔ)器窗口; (3) 通過菜單【Debug】【DebugWatch Window】,在彈出的觀察窗口右擊,選擇“以觀察項(xiàng)的名稱添加觀察項(xiàng)”,在彈出的對(duì)話框中添加累加器ACC和數(shù)據(jù)指針DPTR。 (4) 單擊按鈕暫停仿真,可觀察程序運(yùn)行的中間結(jié)果,如圖6-49所示。匯編源程序的建立與編譯6.9.4 總結(jié)與提示總結(jié)與提示受計(jì)算機(jī)性能的影響,以及Proteus軟件運(yùn)行仿真時(shí)需要處理大量的數(shù)據(jù),會(huì)出現(xiàn)仿真結(jié)果的畫面刷新率跟不上程序運(yùn)行的速度,致使不能看到存儲(chǔ)器內(nèi)容隨程序運(yùn)行的動(dòng)態(tài)變化,仿真時(shí)可手工刷新畫面觀察。圖6-49 程序運(yùn)行結(jié)果匯編源
57、程序的建立與編譯6.10 外部中斷實(shí)驗(yàn)外部中斷實(shí)驗(yàn)內(nèi)容MCS-51是一個(gè)多中斷源的單片機(jī),以8051為例,有三類共五個(gè)中斷源,分別是兩個(gè)外部中斷,兩個(gè)定時(shí)器中斷和一個(gè)串行中斷。外部中斷是由外部原因引起的,共有兩個(gè)中斷源,即外部中斷0和外部中斷1。它們的中斷請(qǐng)求信號(hào)分別由引腳(P3.2)和(P3.3)引入;外部中斷請(qǐng)求信號(hào)有兩種,即低電平有效方式和脈沖后沿負(fù)跳有效方式。中斷控制是提供給用戶使用的中斷控制手段,實(shí)際上就是控制一些寄存器。51系列用于此目的的控制寄存器有四個(gè):TCON、IE、SCON及IP。匯編源程序的建立與編譯位地址 AF AE AD AC AB AA A9 A8 位符號(hào) EA -
58、 ES ET1 EX1 ET0 EX0 表6-8 IE 寄 存 器EA 中斷允許總控制位;EA=0 中斷總禁止,禁止所有中斷; EA=1 中斷總允許;EX0(EX1) 外部中斷允許控制位;EX0(EX1)=0 禁止外中斷; EX0(EX1)=1 允許外中斷; 匯編源程序的建立與編譯ET0(ET1) 定時(shí)/計(jì)數(shù)中斷允許控制位;ET0(ET1)=0 禁止定時(shí)/計(jì)數(shù)中斷;ET0(ET1)=1 允許定時(shí)/計(jì)數(shù)中斷; ES 串行中斷允許控制位;ES=0 禁止串行中斷;ES=1 允許串行中斷。 (2) 中斷優(yōu)先級(jí)控制寄存器(IP) 地址為B8H,位地址為BFH-B8H,各位定義如表6-9所示。位地址 BF
59、 BE BD BC BB BA B9 B8 位符號(hào) / / / PS PT1 PX1 PT0 PX0 表6-9 IP 寄 存 器匯編源程序的建立與編譯各位含義如下:PX0 外部中斷0優(yōu)先級(jí)設(shè)定位; PT0 定時(shí)中斷0優(yōu)先級(jí)設(shè)定位; PX1 外部中斷1優(yōu)先級(jí)設(shè)定位;PT1 定時(shí)中斷1優(yōu)先級(jí)設(shè)定位; PS 串行中斷優(yōu)先級(jí)設(shè)定位。 為0的位優(yōu)先級(jí)為低;為1的位優(yōu)先級(jí)為高。 中斷優(yōu)先級(jí)是為中斷嵌套服務(wù)的,MCS-51中斷優(yōu)先級(jí)的控制原則如下。匯編源程序的建立與編譯 (1) 低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù);但高優(yōu)先級(jí)中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷服務(wù),從而實(shí)現(xiàn)中斷嵌套。 (2) 如果一個(gè)中斷
60、請(qǐng)求已被響應(yīng),則同級(jí)的其他中斷響應(yīng)將被禁止。 (3) 如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),則按CPU查詢次序確定哪個(gè)中斷請(qǐng)求被響應(yīng),其查詢次序?yàn)椋和獠恐袛?定時(shí)中斷0外部中斷1定時(shí)中斷1串行中斷。 訓(xùn)練目的 熟悉理解MCS-51的中斷系統(tǒng)組成; 了解掌握單片機(jī)系統(tǒng)中斷的原理及使用方法。匯編源程序的建立與編譯6.10.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-10所列的清單添加元件 元 件 名 稱所 屬 類所 屬 子 類AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGeneric
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年對(duì)講巡更系統(tǒng)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年哇巴因搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年冰水機(jī)ECW水冷式公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年全球私人游艇行業(yè)發(fā)展現(xiàn)狀及未來投資規(guī)劃分析報(bào)告權(quán)威版
- 2024-2030年全球及中國靜壓主軸行業(yè)供需現(xiàn)狀及前景規(guī)劃分析報(bào)告
- 2024-2030年全球及中國輪盤顯示屏行業(yè)需求現(xiàn)狀及投資效益預(yù)測報(bào)告
- 2024-2030年全球及中國生育調(diào)節(jié)劑行業(yè)發(fā)展動(dòng)態(tài)及需求前景預(yù)測報(bào)告
- 2024-2030年全球及中國淡水水產(chǎn)養(yǎng)殖網(wǎng)箱行業(yè)需求規(guī)模及前景趨勢預(yù)測報(bào)告
- 2024-2030年全球及中國毛巾產(chǎn)品營銷態(tài)勢與供求趨勢預(yù)測報(bào)告版
- 2024-2030年全球及中國工業(yè)墊片板式換熱器行業(yè)需求現(xiàn)狀及應(yīng)用前景預(yù)測報(bào)告
- 《營銷管理與分析》課件
- 挖機(jī)承包土地開挖合同2024年
- 2024個(gè)稅內(nèi)部培訓(xùn)
- 辦公樓外立面玻璃更換施工方案
- 出生醫(yī)學(xué)證明警示教育培訓(xùn)
- 2024-2025學(xué)年人教版道法八年級(jí)上冊 第一學(xué)期期末測試卷01
- DB11-T 2324-2024腳手架鋼板立網(wǎng)防護(hù)應(yīng)用技術(shù)規(guī)程
- 期末試卷(試題)-2024-2025學(xué)年四年級(jí)上冊數(shù)學(xué)滬教版
- 期末復(fù)習(xí)知識(shí)點(diǎn)-2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊
- 中圖版地理八年級(jí)上冊 第二章 第一節(jié) 世界的氣溫和降水教案
- 工程咨詢質(zhì)量管理制度
評(píng)論
0/150
提交評(píng)論