MCD1(MPLAB-ICD)用戶使用指南 - 單片機(jī)--PIC單片機(jī)學(xué)習(xí)網(wǎng)(單片機(jī)編程_第1頁(yè)
MCD1(MPLAB-ICD)用戶使用指南 - 單片機(jī)--PIC單片機(jī)學(xué)習(xí)網(wǎng)(單片機(jī)編程_第2頁(yè)
MCD1(MPLAB-ICD)用戶使用指南 - 單片機(jī)--PIC單片機(jī)學(xué)習(xí)網(wǎng)(單片機(jī)編程_第3頁(yè)
MCD1(MPLAB-ICD)用戶使用指南 - 單片機(jī)--PIC單片機(jī)學(xué)習(xí)網(wǎng)(單片機(jī)編程_第4頁(yè)
MCD1(MPLAB-ICD)用戶使用指南 - 單片機(jī)--PIC單片機(jī)學(xué)習(xí)網(wǎng)(單片機(jī)編程_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MCD1(MPLAB®-ICD) 使用說(shuō)明書(shū) 目 錄第一部分 MCD1(MPLAB-ICD) 3第一章 MPLAB-ICD概述 31.1 什么是MPLAB-ICD 31.2 MPLAB-ICD能幫你做什么? 31.3 MPLAB-ICD使用的資源 41.4 MPLAB-ICD的各組成部件 41.4.1 MPLAB-ICD主機(jī) 41.4.2 MPLAB-ICD仿真頭 51.4.3 MPLAB-IDE集成開(kāi)發(fā)軟件包 51.4.4 ICDDEMO 教學(xué)實(shí)驗(yàn)板 51.5 MPLAB-IDE集成開(kāi)發(fā)環(huán)境 6第二章 MPLAB-ICD的安裝和使用 72.1 MPLAB-ICD對(duì)計(jì)算機(jī)主機(jī)的要求

2、72.2 安裝硬件 72.3 安裝軟件 92.4 使用MPLAB-ICD 9 2.4.1 建立一個(gè)16進(jìn)制調(diào)試文件 92.4.2 設(shè)置MPLAB-ICD和MPLAB 152.4.3 對(duì)PIC16F877進(jìn)行編程 192.4.4 運(yùn)行及調(diào)試 20第二部分 MCD1DEMO教學(xué)實(shí)驗(yàn)板 22前言MCD1DEMO教學(xué)實(shí)驗(yàn)板功能概述 22第三章 用實(shí)驗(yàn)板作一個(gè)開(kāi)發(fā)實(shí)驗(yàn) 23 附錄 MCD-DEMO線路圖 MCD-DEMO元件位置圖(各跳線、拔碼開(kāi)關(guān)編號(hào)) MCD-DEMO跳線、拔碼開(kāi)關(guān)操作說(shuō)明第一部分 MCD1(MPLAB-ICD)第一章 MPLAB-ICD 概 述1.1. 什么是MPLAB-ICDMP

3、LAB-ICD是針對(duì)MICROCHIP公司的PIC16F87X系列MCU的廉價(jià)開(kāi)發(fā)工具。MPLAB-ICD既是一個(gè)在線調(diào)試器,又是一個(gè)編程器。它工作于MPLAB-IDE集成開(kāi)發(fā)環(huán)境下,利用了MICROCHIP公司的在線串行編程技術(shù)(In-Circuit Serial Programming),在所仿真的MCU(PIC16F87X)中嵌入監(jiān)控程序來(lái)實(shí)現(xiàn)實(shí)時(shí)仿真。將其仿真頭直接連接到應(yīng)用系統(tǒng)的MCU插座中,就如同一片PIC16F87X一樣運(yùn)行用戶的應(yīng)用程序。MPLAB-ICD可以用于PIC16F87x或其他某些型號(hào)(PIC16C/Fxxx) MCU應(yīng)用產(chǎn)品的電路與程序調(diào)試。MPLAB-ICD有如下

4、特性:l 在線調(diào)試功能l 源程序級(jí)的代碼調(diào)試l 實(shí)時(shí)、單步或斷點(diǎn)運(yùn)行程序l 寄存器觀察l 可由目標(biāo)系統(tǒng)提供工作電壓l 工作電壓范圍為3.0V 到 5.5Vl 工作頻率范圍為32KHZ到20MHZl 工作于MPLAB-IDE集成開(kāi)發(fā)環(huán)境,該軟件兼容Microsoft Windows ® 3.X、Windows 95/98、 Windows NT ® 和 Windows 2000 ®等操作系統(tǒng)。l RS-232 串行接口方式1.2. MPLAB-ICD能幫你做什么?MPLAB-ICD可以讓你:l 實(shí)時(shí)仿真調(diào)試源程序l 調(diào)試目標(biāo)板硬件系統(tǒng)l 使用MICROCHIP的“在

5、線串行編程技術(shù)(In-Circuit Serial Programming)”對(duì)目標(biāo)應(yīng)用控制器進(jìn)行編程。 1.3. MPLAB-ICD使用的資源由于仿真MCU(PIC16F87X(A)內(nèi)嵌調(diào)試監(jiān)控程序和使用MICROCHIP“在線串行編程”功能,MPLAB-ICD將會(huì)占用仿真MCU中的以下資源:l MCLR/VPP腳(系統(tǒng)復(fù)位/編程電壓腳)l 禁止低電壓“在線串行編程(ICSP)”l RB6和RB7保留為編程和在線調(diào)試用l 六個(gè)通用文件寄存器保留給調(diào)試監(jiān)控程序(見(jiàn)表1-1)l 程序存儲(chǔ)器第一條指令(地址0X0000)必須是空操作指令NOPl 程序存儲(chǔ)器的最后256或88個(gè)字被保留用來(lái)存放調(diào)試代

6、碼。(根據(jù)芯片類(lèi)型不同而所占字節(jié)不同,見(jiàn)表1-1)。 處理器類(lèi)型被占用的通用寄存器被占用的程序存儲(chǔ)器PIC16F870/871/872(A)0x70, 0x0BB-0x0BF0x06E0-0x07FFPIC16F873/874(A)0x70, 0x0EB-0x0F00x0EE0-0x0FFFPIC16F876/877(A)0x70, 0x1EB-0x1EF0x1F00-0x1FFF表1-1 不同芯片被占用的資源1.4. MPLAB-ICD的各組成部件MPLAB-ICD由以下部件構(gòu)成:l MCD1(MPLAB-ICD)主機(jī)l MCD1(MPLAB-ICD)仿真頭l MPLAB-IDE集成開(kāi)發(fā)軟件

7、包(配套光盤(pán)內(nèi))l MCD1-DEMO教學(xué)實(shí)驗(yàn)板l 9V,0.5A的直流電源適配器1.4.1 MPLAB-ICD主機(jī)MPLAB-ICD主機(jī)包括RS232接口與主控MCU,掌控與上位機(jī)的通訊、控制邏輯和所有的調(diào)試、編程功能。MPLAB-ICD主機(jī)上可以用自身輸入電源,也可以來(lái)自用戶目標(biāo)模塊(或教學(xué)實(shí)驗(yàn)板)的供電,所需要的電流最大為70mA(不包括目標(biāo)板自身消耗的電流)。1.4.2 MPLAB-ICD仿真頭MPLAB-ICD仿真頭上有:l RJ-6插座:提供與主機(jī)的接口l 40腳IC座:仿真MCU插座l 引出腳:提供與應(yīng)用目標(biāo)板的接口(根據(jù)所要仿真的芯片型號(hào)選擇40或28引腳)l 跳線J2:用于選

8、擇仿真器主機(jī)的供電來(lái)自用戶板還是自身外接電源(跳線置1,2時(shí)由用戶板供電,置2,3時(shí)用自身電源)使用時(shí),仿真頭相當(dāng)于一實(shí)際MCU,插在應(yīng)用目標(biāo)板上的MCU插座上。1.4.3 MPLAB-IDE集成開(kāi)發(fā)軟件包MPLAB-IDE集成開(kāi)發(fā)軟件包為用戶提供一個(gè)開(kāi)發(fā)、調(diào)試的集成開(kāi)發(fā)環(huán)境,可運(yùn)行于WINDOWS95/98或WINDOWS NT,WINDOWS2000等操作系統(tǒng)。1.4.4 MCD1-DEMO教學(xué)實(shí)驗(yàn)板MCD1-DEMO教學(xué)實(shí)驗(yàn)板和與之配套的學(xué)習(xí)程序是PIC單片機(jī)學(xué)習(xí)網(wǎng)專門(mén)設(shè)計(jì)的。目的在于使初學(xué)者能夠利用它較快地掌握PIC16C/FXXX單片機(jī)應(yīng)用產(chǎn)品的電路與程序設(shè)計(jì)技術(shù)。教學(xué)實(shí)驗(yàn)演示板上包

9、括了MCU應(yīng)用產(chǎn)品中常用的電路模塊。在此基礎(chǔ)上,還為初學(xué)者設(shè)計(jì)了一些足以體現(xiàn)各個(gè)常用電路模塊功能的實(shí)驗(yàn)與程序范例,以便于初學(xué)者通過(guò)自學(xué)或在有經(jīng)驗(yàn)的人員指導(dǎo)下能夠較好的掌握其設(shè)計(jì)方法。教學(xué)實(shí)驗(yàn)板通過(guò)MCD1仿真頭,或直接將MCU插在實(shí)驗(yàn)板上并用六芯連接電纜與MCD1主機(jī)連接1.5 MPLAB-IDE集成開(kāi)發(fā)環(huán)境MPLAB-IDE提供一個(gè)開(kāi)發(fā)、調(diào)試用戶目標(biāo)系統(tǒng)的集成開(kāi)發(fā)環(huán)境。MPLAB-ICD相應(yīng)的軟件也嵌入到了MPLAB-IDE軟件包里。本資料主要介紹MPLAB-ICD的設(shè)置和基本操作,關(guān)于MPLABIDE的詳細(xì)介紹,請(qǐng)參考MPLAB-IDE集成開(kāi)發(fā)環(huán)境用戶指南。(MICROCHIP文檔資料號(hào):

10、DS51025,英文版,需要的用戶可以到MICROCHIP網(wǎng)站或PIC單片機(jī)學(xué)習(xí)網(wǎng)下載)。第二章 MPLAB-ICD的安裝和使用21 MPLAB-ICD對(duì)計(jì)算機(jī)主機(jī)的要求為了更好地發(fā)揮調(diào)試系統(tǒng)的性能,必須把MPLAB-IDE軟件包安裝到符合以下要求的計(jì)算機(jī)里:l 奔騰(PENTIUM)系列PC或兼容計(jì)算機(jī)l 微軟公司的操作系統(tǒng):WINDOWS95/98,WINDOWS-NT,或者WINDOWS2000l 至少16MB的系統(tǒng)內(nèi)存,推薦使用32MB系統(tǒng)內(nèi)存l 45MB可使用的磁盤(pán)空間l 一個(gè)空余的串行通訊口22 安裝硬件請(qǐng)按下列步驟安裝MCD1硬件系統(tǒng):2.2.1安裝仿真MCU按三種不同情況安裝仿

11、真MCU。1、目標(biāo)板上沒(méi)有安裝RJ-6插座:將仿真MCU (PIC16F87X)插入到MPLAB-ICD仿真頭上仿真MCU插座(40腳IC座)里面。( 參見(jiàn)表2-1)用戶目標(biāo)板上的MCU型號(hào)仿真頭上相應(yīng)的MCU型號(hào) PIC16F870(A) PIC16F871(A) PIC16F871(A) PIC16F871(A)PIC16F872(A) PIC16F871(A) PIC16F873(A) PIC16F874(A) PIC16F874(A) PIC16F874(A) PIC16F876(A) PIC16F877(A) PIC16F877(A) PIC16F877(A)表2-12、目標(biāo)板上已安

12、裝RJ-6插座:將仿真MCU-PIC16F87X直接插入目標(biāo)上的MCU插座里面。3、目標(biāo)板上沒(méi)有安裝RJ-6插座:將仿真MCU-PIC16F87X直接插入目標(biāo)上的MCU插座里面,用配套6PIN連接線連接MCD1主機(jī)和用戶板各線功能如下: 黑線:Vpp,紅線:+VDD,綠線:GND,黃線RB7,白線RB6,棕線RB3(若仿真器使用自身電源則VCC不用接用戶板)。2.2.2連接主機(jī)、仿真頭和目標(biāo)(教學(xué)實(shí)驗(yàn))板1、安裝仿真頭:把仿真頭插入應(yīng)用目標(biāo)(教學(xué)演示)板的MCU插座里。如果調(diào)試的MCU是28引腳,則需將仿真頭的引出腳調(diào)整成28腳,然后插到目標(biāo)(教學(xué)實(shí)驗(yàn))板上的28腳的鎖緊座里。如目標(biāo)板上有安裝

13、RJ-6插座或用配套6芯排線連接,則不需此步驟。RJ-6電纜內(nèi)部各芯的分配如下表2-2:J2各芯編號(hào)信號(hào)6RB35RB64RB73接地2+VDD1Vpp表2-22、用六芯扁平電纜連接MCD1主機(jī)和MCD1-DEMO教學(xué)實(shí)驗(yàn)板(或用戶應(yīng)用目標(biāo)板)。3、用RS-232串行口專用九芯電纜連接計(jì)算機(jī)的串行口和MCD1主機(jī)。4、接上教學(xué)實(shí)驗(yàn)板(或用戶應(yīng)用目標(biāo)板)的電源。使用的電源為9V、0.5A的電源適配器(插頭中心為電源負(fù)極)。5、打開(kāi)計(jì)算機(jī)主機(jī)電源。2.3 安裝軟件MPLAB-ICD是MPLAB-IDE集成開(kāi)發(fā)環(huán)境的一個(gè)可插入(ADD-ON)工具。用戶應(yīng)按如下步驟安裝MPLAB-IDE集成開(kāi)發(fā)環(huán)境軟

14、件包:1.進(jìn)入WINDOWS環(huán)境里,把MCD1 的CD-ROM插入光盤(pán)驅(qū)動(dòng)器里。在光盤(pán)里找到MPLAB-IDE 5.70.40的軟件包.2.執(zhí)行安裝程序:在WINDOWS操作界面上找到安裝文件后,直接點(diǎn)擊運(yùn)行即可。3.按指導(dǎo)過(guò)程來(lái)安裝MPLAB-IDE集成開(kāi)發(fā)環(huán)境軟件包。一定記住安裝過(guò)程中當(dāng)出現(xiàn)要求選擇MPLAB-ICD部件的會(huì)話窗口時(shí),要點(diǎn)擊并選擇該部件,以便系統(tǒng)安裝。 2. 4 使用(MCD1)MPLAB-ICD連接硬件并安裝完軟件之后,用戶可以先在MPLAB-IDE的純編輯模式下編寫(xiě)程序。在*.ASM程序編輯完成后就可以開(kāi)始使用ICD。以下將以源程序tut877.asm為例說(shuō)明使用過(guò)程。

15、2.4.1 建立一個(gè)16進(jìn)制調(diào)試文件用戶需要建立一個(gè)新“項(xiàng)目”(*.pjt),以便將源文件*.asm和建立的十六進(jìn)制文件*.hex包含在內(nèi)進(jìn)行調(diào)試。2.4.1.1新“項(xiàng)目”目錄為這個(gè)新項(xiàng)目建立一個(gè)目錄:MPLABtut877。將tut877.asm文件從MPLAB目錄移動(dòng)到該目錄下面(注意:MPLAB5.XX要求項(xiàng)目*.pjt必須和載入源文件*.asm處于同一個(gè)文件夾)。2.4.1.2 新“項(xiàng)目” 選擇Project>New Project,選擇新項(xiàng)目所在的路徑,然后在文件名會(huì)話窗口里輸入tut877.prj。點(diǎn)擊“OK”按鈕(圖2-1)之后編輯項(xiàng)目會(huì)話窗口(Edit Project d

16、ialog)將會(huì)打開(kāi)(如圖2-2所示)。圖2-1:建立新項(xiàng)目- tut877.prj圖2-2:設(shè)置開(kāi)發(fā)模式前編輯項(xiàng)目會(huì)話窗口2.4.1.3 項(xiàng)目會(huì)話窗口用戶將會(huì)在如圖2-2所示的編輯項(xiàng)目會(huì)話窗口看到開(kāi)發(fā)模式設(shè)置(Development Mode)。圖中顯示出當(dāng)前工作于軟件模擬(MPLAB-SIM)方式,MCU是PIC12C508處理器。這些狀態(tài)都是用戶以前使用MPLAB-IDE集成開(kāi)發(fā)環(huán)境時(shí)的設(shè)置。而現(xiàn)在則需要改變這些設(shè)置。點(diǎn)擊“Change”按鈕后將會(huì)出現(xiàn)開(kāi)發(fā)模式設(shè)置(Development Mode)對(duì)話框(如圖2-3所示)。 圖2-3:設(shè)置開(kāi)發(fā)模式 在Tools菜單條里選擇“MPLAB-

17、ICD Debugger”。在處理器(processor)窗口選擇PIC16F877,然后點(diǎn)擊“OK”(注意: 如果仿真或燒寫(xiě)PIC87XA芯片,則只需要選取對(duì)應(yīng)的不帶A型號(hào)。比如調(diào)試16F877A時(shí),只需要將仿真頭芯片替換為16F877A,并選取芯片型號(hào)為16F877)。這時(shí)MPLAB-IDE將和MPLAB-ICD主機(jī)之間建立通訊。在這個(gè)過(guò)程中,MPLAB-ICD會(huì)話窗口將會(huì)同時(shí)出現(xiàn)。l 假如你看到一條錯(cuò)誤報(bào)告信息,請(qǐng)重新檢查一下電源連線、插座是否牢固可靠、電纜是否連接正確。l 注意在編輯項(xiàng)目會(huì)話窗口(Edit Project dialog)里是否正確選擇了開(kāi)發(fā)模式和處理器設(shè)置。在編輯項(xiàng)目會(huì)

18、話窗口里的項(xiàng)目文件(Project File)區(qū)域里用鼠標(biāo)選取tut877.hex文件,然后點(diǎn)擊節(jié)點(diǎn)屬性(Node Property)按鈕(如圖2-4)。執(zhí)行這項(xiàng)操作后系統(tǒng)將會(huì)彈出一個(gè)節(jié)點(diǎn)屬性(Node Property)窗口。圖2-4:編輯項(xiàng)目會(huì)話窗口2.4.1.4 設(shè)置節(jié)點(diǎn)屬性節(jié)點(diǎn)屬性會(huì)話窗口顯示出涉及到MPLAB-ICD的參數(shù)開(kāi)關(guān),這些參數(shù)都是MPASM匯編器的。當(dāng)你首次打開(kāi)該會(huì)話窗口時(shí),所看到的設(shè)置均為該開(kāi)發(fā)工具的默認(rèn)設(shè)置。對(duì)于本范例中的應(yīng)用,沒(méi)有必要修改該默認(rèn)設(shè)置。點(diǎn)擊“OK”按鈕(如圖2-5),返回到編輯項(xiàng)目會(huì)話窗口(Edit Project dialog)。 圖2-5:節(jié)點(diǎn)屬性會(huì)

19、話窗口圖2-6:增加節(jié)點(diǎn)2.4.1.5 增加節(jié)點(diǎn)在編輯項(xiàng)目會(huì)話窗口里點(diǎn)擊增加節(jié)點(diǎn) (Add Node),打開(kāi)添加節(jié)點(diǎn)會(huì)話窗口。選擇tut877.asm,然后點(diǎn)擊OK即可(如圖2-6)。2.4.1.6 完成對(duì)項(xiàng)目的設(shè)置在這個(gè)簡(jiǎn)單的例子里,在路徑選擇框里沒(méi)有指定目錄。隨著你的應(yīng)用越來(lái)越復(fù)雜,用戶將有可能需要在相應(yīng)的選擇框里指定包含相應(yīng)文件的目錄路徑。MPASM通常會(huì)把十六進(jìn)制文件的文件名(a.hex)取得和源文件(a.asm)的文件名一樣。當(dāng)建立(BUILT)tut877.prj項(xiàng)目的時(shí)候,項(xiàng)目管理器將會(huì)生成一個(gè)十六進(jìn)制文件tut877.hex。圖2-7:帶節(jié)點(diǎn)的編輯項(xiàng)目會(huì)話窗口點(diǎn)擊“OK”按鈕,

20、關(guān)閉編輯項(xiàng)目會(huì)話窗口(Edit Project dialog),然后從MPLAB-IDE菜單項(xiàng)里選擇選擇命令:Project>Save Project 保存新的項(xiàng)目。這樣就完成了對(duì)項(xiàng)目的設(shè)置。2.4.1.7 建立項(xiàng)目(Make Project)現(xiàn)在您要從MPLAB-IDE的菜單項(xiàng)里選擇Project>Make Project,使用MPASM宏匯編來(lái)程序來(lái)匯編應(yīng)用程序。創(chuàng)建(BUILD ALL)以后的結(jié)果窗口中可以看到發(fā)送給匯編器的命令行和結(jié)果信息(如圖2-8所示)。圖2-8:創(chuàng)建(BUILT)以后的結(jié)果窗口其中主要有以下三種提示信息:1、錯(cuò)誤(error):表示源文件在有錯(cuò)誤,用戶

21、應(yīng)根據(jù)提示修改源程序;2、警告(warring);3、信息(Message):這并不一定是錯(cuò)誤,用戶的程序代碼仍然會(huì)被正確地編譯。例如:信息302是提示,在指示的行號(hào)(31,32和34)里用戶指定了一個(gè)并不位于第0頁(yè)面(BANK 0)的通用寄存器。點(diǎn)擊創(chuàng)建結(jié)果(BUILT RESULTS)窗口右上角的圖標(biāo)X將關(guān)閉窗口。2.4.2 設(shè)置MPLAB-ICD和MPLAB這時(shí)候,MPLAB-ICD會(huì)話窗口將會(huì)出現(xiàn)在計(jì)算機(jī)的桌面上。用戶須選擇適當(dāng)?shù)倪x擇項(xiàng)來(lái)設(shè)置MPLAB-IDE,使之能和MPLAB-ICD的硬件一起工作(圖2-9)圖2-9:MPLAB-ICD會(huì)話窗口 選項(xiàng) 選項(xiàng)說(shuō)明狀態(tài) (Status)

22、菜單(不可選擇項(xiàng))狀態(tài)欄顯示被執(zhí)行的MPLAB-ICD函數(shù)和狀態(tài)。當(dāng)編程時(shí),可以從這里看到進(jìn)程。當(dāng)操作完成后,狀態(tài)欄將顯示信息“Waiting for use command”(等待用戶命令)串行口和波特率菜單要確信這些設(shè)置合乎你的系統(tǒng)要求上載(Upload)選項(xiàng)菜單現(xiàn)在選擇最小值,往后的范例中將會(huì)調(diào)試改變?cè)摂?shù)值時(shí)鐘選擇范圍菜單選擇工作頻率范圍:2MHZ10MHZ表2-1:MPLAB-ICD會(huì)話窗口2.4.2.1 設(shè)置ICD的編程和調(diào)試選項(xiàng)為了對(duì)PIC16F87X芯片進(jìn)行編程,必須先對(duì)ICD選項(xiàng)會(huì)話窗口(ICD Options dialog)進(jìn)行設(shè)置工作,為編程作好準(zhǔn)備。在MPLAB-ICD的

23、會(huì)話窗口里點(diǎn)擊Options,打開(kāi)ICD選項(xiàng)會(huì)話窗口(圖2-10)。圖2-10:MPLAB-ICD選項(xiàng)會(huì)話窗口注意:使用MCD1配套實(shí)驗(yàn)板時(shí),該實(shí)驗(yàn)板默認(rèn)是在晶體振蕩方式,故要選擇Oscillator為XT模式(因4M晶振剛處于XT與HS的臨界狀態(tài),所以如果你用XT振蕩調(diào)試不順利可換成HS再重新PROGRAM試試).2.4.2.2 配置位和芯片類(lèi)型選擇用戶將要在這個(gè)ICD選項(xiàng)會(huì)話窗口中設(shè)置PIC16F87X處理器的各種配置位。點(diǎn)擊圖中相應(yīng)的箭頭圖標(biāo),將彈出一個(gè)對(duì)應(yīng)的列表,用戶應(yīng)根據(jù)需要從該列表中選擇相應(yīng)的選擇項(xiàng)??蛇x項(xiàng)及相應(yīng)說(shuō)明如表2-2所示。其中,芯片(Device)欄在本例中顯示的是PIC

24、16F877,這是在開(kāi)發(fā)模式設(shè)置(Development Mode)中設(shè)定好的。要想改變這一設(shè)定,用戶需退出當(dāng)前設(shè)置,輸入命令:Options > Development Mode ,然后正確選擇芯片。可選項(xiàng)選項(xiàng)說(shuō)明Oscillator振蕩器本范例里使用4.000Mhz的晶體振蕩器,應(yīng)選擇為XT.Watchdog Timer看門(mén)狗定時(shí)器對(duì)于本范例里,看門(mén)狗定時(shí)器(WDT)應(yīng)關(guān)閉Power Up Timer上電延時(shí)定時(shí)器對(duì)于本范例里,上電延時(shí)定時(shí)器(PWRT)應(yīng)關(guān)閉Brown Out Detect電源掉電監(jiān)測(cè)對(duì)于本范例里,電源掉電監(jiān)測(cè)(BOD)應(yīng)關(guān)閉Low Voltage Program低

25、電壓編程當(dāng)使用MPLAB-ICD時(shí),低電壓燒寫(xiě)應(yīng)禁止??梢杂肦B3作為數(shù)字I/O。Code Protect Data EEPROM數(shù)據(jù)保護(hù)本范例關(guān)閉了EEPROM數(shù)據(jù)保護(hù)Flash Memory Write閃速存儲(chǔ)器寫(xiě)本范例沒(méi)有使能通過(guò)EECON寄存器對(duì)FLASH存儲(chǔ)空間進(jìn)行擦寫(xiě)Code Protect代碼保護(hù)本范例關(guān)閉了代碼保護(hù)表2-2:配置位和芯片類(lèi)型的選擇2.4.2.3 芯片ID碼和代碼校驗(yàn)和在圖2-10所示的MPLAB-ICD選項(xiàng)會(huì)話窗口中,用戶還會(huì)看到代碼校驗(yàn)和 (CHECHSUME)及ID代碼(ID Code)這兩個(gè)窗口。在本范例中,我們選擇“Use Checksum as ID”

26、,使用代碼校驗(yàn)和(CHECHSUME)作為ID代碼。2.4.2.4 電壓選擇用鼠標(biāo)點(diǎn)擊更新(Update)按鈕即可檢查目仿真器主機(jī)上電源Vdd(芯片供電)和Vpp(編程電源)的電壓值。MPLAB-ICD的編程電壓大約為13伏特,該電壓是將電源電壓Vdd通過(guò)開(kāi)關(guān)升壓電路(Boost Converter)升壓后得到的。2.4.2.5 編程選項(xiàng)程序地址范圍(起始地址和結(jié)束地址)是可以被讀取、編程或校驗(yàn)的程序或數(shù)據(jù)存儲(chǔ)器地址范圍。默認(rèn)的程序地址范圍被設(shè)定為用戶所選芯片的程序存儲(chǔ)器的最大范圍。本范例將使用默認(rèn)的程序地址范圍。確信程序選擇項(xiàng)(Program Options)下的所有檢查項(xiàng)都已經(jīng)選中(有“”

27、符號(hào)為選中)。這意味著所有存儲(chǔ)器、ID代碼、配置位都將被編程。而且所有的存儲(chǔ)器都將會(huì)在編程之前被全部清除;芯片被設(shè)置為調(diào)試(Debug)模式。2.4.3 對(duì)PIC16F877進(jìn)行編程點(diǎn)擊Program按鈕,這時(shí)候就會(huì)將tut877.hex這個(gè)十六進(jìn)制文件和調(diào)試代碼(Debug Code)寫(xiě)入MPLAB-ICD仿真頭或用戶目標(biāo)板(教學(xué)實(shí)驗(yàn)板)中的PIC16F87X里。編程過(guò)程可能要用幾分鐘。在編程過(guò)程中,狀態(tài)欄(Status box)里將會(huì)顯示當(dāng)前的操作順序。當(dāng)編程過(guò)程結(jié)束后狀態(tài)欄里將會(huì)顯示信息“Waiting for user command”(等待用戶命令)。注意:調(diào)試代碼(Debug Co

28、de)是PIC16F87X微控制器里地址范圍1F00h1FFFh的一組特殊代碼,這些區(qū)域用來(lái)存放MPLAB-ICD在線調(diào)試功能的監(jiān)控程序。用戶可以最小化或移動(dòng)MPLAB-ICD會(huì)話窗口而不能關(guān)閉它:關(guān)閉MPLAB-ICD會(huì)話窗口將退出MPLAB-ICD開(kāi)發(fā)環(huán)境。假如想重新進(jìn)入MPLAB-ICD,使用命令:Options>Development Mode選擇MPLAB-ICD并點(diǎn)擊OK即可重新使用ICD環(huán)境。2.4.4 運(yùn)行及調(diào)試 最后要做的就是運(yùn)行程序,并對(duì)其進(jìn)行調(diào)試。MPLAB為方便使用,把常用的一些運(yùn)行、調(diào)試命令及窗口選項(xiàng)以小圖標(biāo)的形式置于工具欄中。當(dāng)用戶鼠標(biāo)移至小圖標(biāo)上時(shí),背景窗體

29、的左下角將會(huì)顯示相應(yīng)的說(shuō)明。 以下對(duì)常用運(yùn)行、調(diào)試命令及窗口選項(xiàng)進(jìn)行簡(jiǎn)要的介紹。運(yùn)行(Run):點(diǎn)擊此項(xiàng)后芯片將全速運(yùn)行片內(nèi)程序,直至遇到斷點(diǎn)或是接到了停止命令。圖標(biāo): 停止(Halt the Processor):點(diǎn)擊此項(xiàng)后芯片將停止運(yùn)行當(dāng)前程序。圖標(biāo): 單步(Step):點(diǎn)擊此項(xiàng)后芯片將執(zhí)行當(dāng)前行的指令。圖標(biāo): 連續(xù)單步(Step Over):點(diǎn)擊此項(xiàng)后芯片將由當(dāng)前行開(kāi)始,連續(xù)執(zhí)行單步操作,直至遇到斷點(diǎn)或是接到停止命令。圖標(biāo): 復(fù)位(Reset Processor):點(diǎn)擊此項(xiàng)后芯片將被復(fù)位。圖標(biāo):程序存儲(chǔ)器窗口(Program Register Window):點(diǎn)擊此項(xiàng)后將打開(kāi)程序存儲(chǔ)器窗

30、口。圖標(biāo): 通用寄存器窗口(File Register Memory):點(diǎn)擊此項(xiàng)后將打開(kāi)通用寄存器窗口。圖標(biāo): 特殊功能寄存器窗口(Special Function Register Window):點(diǎn)擊此項(xiàng)后將打開(kāi)特殊功能寄存器(SFR)窗口。圖標(biāo): 增加新變量窗口(Create New WatchWindow):點(diǎn)擊此項(xiàng)后將打開(kāi)觀察變量窗口,并允許用戶添加新的觀察變量。圖標(biāo): 合理運(yùn)用運(yùn)行調(diào)試手段將有助于更快更好的調(diào)試用戶程序。例如:l 使用變量觀察窗可以集中觀察用戶關(guān)心的變量寄存器內(nèi)的數(shù)據(jù)變化情況l 特殊寄存器窗口集中顯示了特殊功能寄存器內(nèi)的數(shù)據(jù),用戶根據(jù)其變化可以判斷出各功能模塊的運(yùn)行

31、狀況l 使用單步可以觀察到執(zhí)行該行指令后的效果l 使用連續(xù)單步可以較為直觀的觀察到程序的運(yùn)行路徑,子程序的跳轉(zhuǎn)情況l 設(shè)置斷點(diǎn)可以讓程序在某一句上停下,因此可以用來(lái)判斷某一子程序的入口條件是否準(zhǔn)確,可以讓程序迅速的停在要分析的程序段上各個(gè)運(yùn)行調(diào)試手段的作用遠(yuǎn)不止上述的幾點(diǎn),這需要用戶在實(shí)際運(yùn)行調(diào)試中自己體會(huì)。 注意:使用MCD1配套DEMO板實(shí)驗(yàn)此程序時(shí),須將實(shí)驗(yàn)板S13的第2位置ON,在運(yùn)行過(guò)程中調(diào)整實(shí)驗(yàn)板上VR1的值會(huì)將A/D轉(zhuǎn)換后取得的不同值在實(shí)驗(yàn)板上RC口的LED上顯示.第二部分 MCD1-DEMO教學(xué)實(shí)驗(yàn)板前 言MCD1-DEMO教學(xué)實(shí)驗(yàn)板是PIC單片機(jī)學(xué)習(xí)網(wǎng)為PIC16F87X系列

32、芯片專門(mén)設(shè)計(jì)的一款多功能的、適于教學(xué)及自學(xué)用的實(shí)驗(yàn)儀器。MCD1-DEMO教學(xué)實(shí)驗(yàn)板為16F87X系列芯片的各個(gè)功能模塊提供了相應(yīng)的實(shí)驗(yàn)電路,以便用戶調(diào)試及驗(yàn)證。在此基礎(chǔ)上,PIC單片機(jī)學(xué)習(xí)網(wǎng)還為初、中級(jí)使用者設(shè)計(jì)了一些對(duì)應(yīng)于實(shí)驗(yàn)板功能的實(shí)驗(yàn),并為其編寫(xiě)了教學(xué)實(shí)驗(yàn)程序。實(shí)驗(yàn)板包括以下電路:l 8個(gè)LED顯示l 1602 LCD顯示l 6位數(shù)碼管電路l 6個(gè)獨(dú)立鍵盤(pán)l 外部中斷鍵盤(pán)輸入l 紅外線遙控接收輸入l RS232通信接口電路l SPI EEPROM通信電路l I2C EEPROM通信電路l DS18B20數(shù)字測(cè)溫電路(DS18B20芯片為選購(gòu)器件,不在MCD1整套范圍內(nèi))l 一路電位器模

33、擬AD輸入.l 一路直流蜂鳴器可做各種發(fā)音實(shí)驗(yàn).l 所有IO口通過(guò)拔碼開(kāi)關(guān)可獨(dú)立從DEMO板引出,方便用戶擴(kuò)充其它資源第三章 用實(shí)驗(yàn)板作一個(gè)開(kāi)發(fā)實(shí)驗(yàn)在本節(jié)中,我們將利用MCD1-DEMO教學(xué)實(shí)驗(yàn)板做一個(gè)簡(jiǎn)單的開(kāi)發(fā)實(shí)驗(yàn)。在本次實(shí)驗(yàn)中,我們以非常簡(jiǎn)單的LED流水燈為例,介紹使用MCD1仿真調(diào)試套件開(kāi)發(fā)調(diào)試一個(gè)項(xiàng)目的全過(guò)程. 3.1 開(kāi)發(fā)前準(zhǔn)備工作 開(kāi)發(fā)前先看看你是否已經(jīng)準(zhǔn)備好了:1、 開(kāi)發(fā)工具:l MCD1(MPLAB-ICD)硬件仿真器及配合硬件使用的MPLAB-IDE軟件2、 實(shí)驗(yàn)板:l MCD1-DEMO教學(xué)實(shí)驗(yàn)板. 3.2 實(shí)驗(yàn)開(kāi)始針對(duì)演示板上的硬件資源,我們先用一個(gè)小程序作為學(xué)習(xí)和應(yīng)用M

34、CD1在線調(diào)試工具套件,進(jìn)行項(xiàng)目的軟件和硬件聯(lián)合調(diào)試的范例程序,也就是當(dāng)做一個(gè)用戶程序?qū)嵗?,而演示板暫時(shí)充當(dāng)用戶電路的角色。這樣就構(gòu)成了一個(gè)軟件、硬件齊全的自制項(xiàng)目模擬環(huán)境。本程序?qū)崿F(xiàn)的功能是,把端口RC的8條引腳全部設(shè)置為輸出模式,依次從引腳RC0到RC7送出高電平,然后再依次從引腳RC7到RC0送出高電平,并且周而復(fù)始,從而使得與該端口C相連的8只發(fā)光二極管LED循環(huán)依次點(diǎn)亮,其效果類(lèi)似于一個(gè)簡(jiǎn)單的霹靂燈。程序清單:;*;霹靂燈程序。文件名為“LED1.ASM”;*status equ 3h ;定義狀態(tài)寄存器地址portc equ 7h ;定義端口C的數(shù)據(jù)寄存器地址trisc equ 87

35、h ;定義端口C的方向控制寄存器地址flag equ 25h ;定義一個(gè)控制左移/右移的標(biāo)志寄存器org 000h ;定義程序存放區(qū)域的起始地址nop ;放置一條ICD必須的空操用指令bsf status,5 ;設(shè)置文件寄存器的體1movlw 00h ;對(duì)端口C的方向控制碼00H先送Wmovwf trisc ;再由W轉(zhuǎn)移到方向控制寄存器bcf status,5 ;恢復(fù)到文件寄存器體0movlw 01h ;將00000001B先送Wmovwf portc ;再由W轉(zhuǎn)移到數(shù)據(jù)寄存器bsf flag,0 ;將左右移標(biāo)志位置1,首先進(jìn)行左移LEDbcf status,0 ;將標(biāo)志位C先清0loop b

36、tfss status,0 ;測(cè)試進(jìn)位/借位位,是1則修改標(biāo)志goto loop1 ;是0則不修改標(biāo)志comf flag,1 ;FLAG的BIT0作為標(biāo)志位,把它取反loop1 btfss flag,0 ;判斷標(biāo)志位,是1則跳到循環(huán)左移goto loop2 ;是0則跳到循環(huán)右移rlf portc,0 ;循環(huán)左移端口C數(shù)據(jù)寄存器,結(jié)果送Wmovwf portc ;將結(jié)果再送回端口C的數(shù)據(jù)寄存器goto loop3 ;跳過(guò)下面兩條指令loop2 rrf portc,0 ;循環(huán)右移端口C數(shù)據(jù)寄存器,結(jié)果送回Wmovwf portc ;將結(jié)果再送回端口C的數(shù)據(jù)寄存器 ;loop3 call delay

37、 ;調(diào)用廷時(shí)子程序goto loop ;返回;-廷時(shí)子程序-delay ;子程序名,也是子程序入口地址movlw 0ffh ;將外層循環(huán)參數(shù)值FFH經(jīng)過(guò)Wmovwf 20h ;送入用作外循環(huán)變量的20H單元lp0 movlw 0ffh ;將內(nèi)層循環(huán)參數(shù)值FFH經(jīng)過(guò)Wmovwf 21h ;送入用作內(nèi)循環(huán)變量的21H單元lp1 decfsz 21h,1 ;變量21H內(nèi)容遞減,若為0跳躍goto lp1 ;跳轉(zhuǎn)到LP1處decfsz 20h,1 ;變量20H內(nèi)容遞減,若為0跳躍goto lp0 ;跳躍到LP0處return ;返回主程序end ;源程序結(jié)束 進(jìn)入該實(shí)戰(zhàn)演練的工序流程如下: 1.軟硬件的安裝:按照本說(shuō)明書(shū)前面講的”MPLAB-ICD的安裝和使用”一節(jié)內(nèi)介紹的方法操作即可. 2.創(chuàng)建源文件和編輯源文件;在此介紹一種不同于前面講的創(chuàng)建源文件的方法,用Windows附件中的”記事本”這個(gè)為大家所熟知和好用的文件編輯器,并且可以方便的加入中文注釋.不過(guò)有兩點(diǎn)需要注意,一是注釋前面的分號(hào)”;”必須用西文半角輸入;二是必須用”.asm”擴(kuò)展名存儲(chǔ)到事先建立的一個(gè)專用子目錄下. 3.打開(kāi)MPL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論