新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Windows下PIC8位單片機(jī)源程序匯編和固化(一)

Windows下PIC8位單片機(jī)源程序匯編和固化(一)

作者: 時(shí)間:2011-02-22 來(lái)源:網(wǎng)絡(luò) 收藏
本身沒(méi)有開(kāi)發(fā)編程能力,所以要把變成一種應(yīng)用產(chǎn)品,必須借助于硬件開(kāi)發(fā)和軟件開(kāi)發(fā)兩種工具。在進(jìn)行軟件開(kāi)發(fā)時(shí),首先利用相關(guān)的編輯軟件,按照相應(yīng)的格式建立PIC的源程序(助記符程序),然后對(duì)源程序進(jìn)行匯編。在完成匯編之后,用戶可以利用模擬調(diào)試軟件(價(jià)位低)或者硬件在線仿真器(價(jià)位高)對(duì)其目標(biāo)程序(機(jī)器代碼)進(jìn)行運(yùn)行調(diào)試,以發(fā)現(xiàn)其錯(cuò)誤并修改之。在經(jīng)過(guò)調(diào)試、修改、再匯編之后,即可將修改后的目標(biāo)程序用硬件(工具)編程器將目標(biāo)代碼燒寫(xiě)到用戶的PIC芯片中。最后將燒寫(xiě)后(即固化)的芯片插入到用戶板(實(shí)驗(yàn)板)脫機(jī)運(yùn)行,如還有問(wèn)題(通常是多條程序的條件下),就檢查硬件電路和軟件的設(shè)計(jì),找出錯(cuò)誤并修改、再匯編、調(diào)試直到脫機(jī)運(yùn)行正常為止。
  Microchip公司在推出PIC系列單片機(jī)產(chǎn)品的同時(shí),也推出了相對(duì)應(yīng)的軟件開(kāi)發(fā)和硬件開(kāi)發(fā)工具,例如PIC在線仿真器、MPLAB集成開(kāi)發(fā)軟件、MPSIM軟件仿真器、MPASM宏匯編程序以及PIC通用編程器等。不僅如此,國(guó)內(nèi)開(kāi)發(fā)PIC系列單片機(jī)的工作也很迅速,許多公司或研究所也推出了相應(yīng)的開(kāi)發(fā)裝置,其中既有適用于初學(xué)者、低價(jià)位的軟件仿真和編程器,也有適用于產(chǎn)品開(kāi)發(fā)的高中檔開(kāi)發(fā)應(yīng)用裝置。有些高檔的開(kāi)發(fā)器還能支持C編譯器(如MP-C)與模糊邏輯開(kāi)發(fā)系統(tǒng)等。這些開(kāi)發(fā)裝置既可獨(dú)立運(yùn)行,也可以和PC機(jī)聯(lián)機(jī)運(yùn)行??傊?,開(kāi)發(fā)的工具不僅十分成熟也是多種多樣的。
  在PC機(jī)上對(duì)的源程序匯編時(shí),既可以在DOS條件下,也可以在Windows條件下進(jìn)行。以下將介紹Windows下源程序匯編的方法和步驟。
  1Windows下PIC集成開(kāi)發(fā)軟件MPLAB
  MPLAB是Microchip公司為PIC產(chǎn)品提供的適用于PC機(jī)Windows的集成開(kāi)發(fā)軟件。MPLAB的版本從早期到現(xiàn)在已發(fā)展到多種:如MPLAB V301版、V302版、V40版、V499和V50版等。各版本之間向下兼容,所以盡管品種如此之多,用戶只需選擇相應(yīng)版本的MPLAB集成開(kāi)發(fā)軟件,均可達(dá)到開(kāi)發(fā)目的。
  (1)MPLAB的特性和安裝
  MPLAB是一種易學(xué)易用的PIC單片機(jī)產(chǎn)品的集成開(kāi)發(fā)工具軟件。該軟件由MPLAB編輯程序、MPLAB項(xiàng)目管理程序(Project manager)、MPASM匯編程序(Windows版)和MPLAB-SIM模擬調(diào)試程序等工具軟件組成。MPLAB能幫你調(diào)試源代碼,觀察程序流程、調(diào)試以及優(yōu)化固件生產(chǎn)設(shè)計(jì)的PIC單片機(jī)應(yīng)用程序。上述的各種軟件將在本報(bào)下幾期通過(guò)實(shí)例介紹其功能和用法。
  MPLAB集成開(kāi)發(fā)軟件對(duì)計(jì)算機(jī)系統(tǒng)的硬件與軟件配置要求如下:Microsoft Windows 3.X版、95版和98版均可;標(biāo)準(zhǔn)鍵盤(pán)和鼠標(biāo);4MB(最好是16MB以上)的內(nèi)存和VGA以上顯示器等。MPLAB的安裝簡(jiǎn)單,只要熟悉PC機(jī)的用戶均可利用磁盤(pán)或光盤(pán)CD-ROM中MPLAB的SETUPEXE文件和相關(guān)的提示語(yǔ)句進(jìn)行安裝。若是初學(xué)者,可請(qǐng)電腦行家進(jìn)行安裝。安裝MPLAB軟件時(shí),最好在顯示屏上粘貼Microchip/MPLAB的快捷圖標(biāo),以使操作方便。
  (2)MPLAB的桌面系統(tǒng)
  Windows操作系統(tǒng)與DOS操作系統(tǒng)的最大區(qū)別就是廣泛使用了圖形化操作界面,因此對(duì)話框是用戶在操作Windows過(guò)程中最經(jīng)常接觸的東西。MPLAB的所有功能都可通過(guò)MPLAB桌面(對(duì)話框)中的菜單命令來(lái)操作。
  當(dāng)你的PC機(jī)上安裝了MPLAB集成開(kāi)發(fā)軟件之后,打開(kāi)PC機(jī),用鼠標(biāo)點(diǎn)擊顯示器上的快捷圖標(biāo)Microchip即可在顯示器上看到MPLAB的桌面,如附圖所示(V499版)。該桌面是一個(gè)大小可變的窗口。MPLAB桌面頂部的左邊字符為標(biāo)題欄(MPLAB);標(biāo)題欄的下面為菜單欄(MENU),菜單欄的下面為工具欄,底部為狀態(tài)欄。桌面窗口中的菜單欄是下拉式的。
  MPLAB共有多個(gè)菜單選項(xiàng)(V322、V499有9個(gè),V301是8個(gè))。所有的MPLAB功能均可通過(guò)下拉式菜單來(lái)訪問(wèn),菜單中加有下劃線的字符表示加速鍵(Key Accelerators),在菜單下拉時(shí),用鼠標(biāo)點(diǎn)擊該字符鍵可立即執(zhí)行該項(xiàng)功能。
  MPLAB的各種菜單的功能,筆者將會(huì)通過(guò)具體的程序匯編應(yīng)用實(shí)例加以詳細(xì)說(shuō)明?! ~?P align=right>成都 丁錦源

  知識(shí)競(jìng)賽試題:
  26給單片機(jī)PIC16C54單片機(jī)的工作寄存器W送數(shù)0x08,請(qǐng)寫(xiě)出相應(yīng)的源程序清單。

2 在MPLAB中建立PIC單片機(jī)源程序
  筆者將以附圖的PIC16C55單片機(jī)脈沖計(jì)數(shù)試驗(yàn)電路(計(jì)數(shù)時(shí),RA1口為十進(jìn)制碼輸入,RB口為二進(jìn)制碼輸出)的源程序PIC count.ASM為例,介紹在MPLAB集成開(kāi)發(fā)環(huán)境下編輯(建立)PIC單片機(jī)源程序的方法。其操作步驟如下。
  (1)打開(kāi)MPLAB桌面(窗口)和空白編輯窗口 開(kāi)啟PC機(jī),啟動(dòng)運(yùn)行Windows,在Windows的管理程序下,用鼠標(biāo)點(diǎn)擊顯示屏上的圖標(biāo)Microchip(快捷),即可啟動(dòng)運(yùn)行MPLAB集成開(kāi)發(fā)軟件,此時(shí)屏幕上將顯示MPLAB的桌面(見(jiàn)今年第25期本版的《源程序的匯編和固化(一)》文中的附圖)。從已打開(kāi)的MPLAB的桌面(窗口)上,用鼠標(biāo)點(diǎn)擊MPLAB菜單欄中最左邊的File(文件),即可打開(kāi)File的下拉菜單,再用鼠標(biāo)點(diǎn)擊下拉菜單中的命令New Source(新建源程序),即可打開(kāi)一個(gè)空白的編輯窗口,在此窗口中用鍵盤(pán)鍵入PIC 16C55 COUNTASM源程序再對(duì)其進(jìn)行編輯(以MPLAB V301版為例):
    LIST P=16C55
   ?。NCLUDE P16C5XINC
    COUNT EQU 1EH
    ORG     0
START
    MOVLW 0
    MOVWF PORTB;設(shè)置B口為輸出
    TRISPORTB
    CLRFCOUNT;置計(jì)數(shù)器COUNT為零
LOOP
    BTFSSPORTA,1;判斷開(kāi)關(guān)K按下否?
    GOTOINCOUNT;按下開(kāi)關(guān)K,跳轉(zhuǎn)執(zhí)行IN-
            ;COUNT
ENDLOOP
    GOTO LOOP  ;開(kāi)關(guān)未按下,繼續(xù)循環(huán)
             ;判斷
INCOUNT
    INCF COUNT,1  ;計(jì)數(shù)器COUNT+1
    MOVF COUNT,W
    MOVWF PORTB;從B口輸出計(jì)數(shù)值
DEBOUNCE
    BTFSS PORTA,1;判斷開(kāi)關(guān)K釋放否?
    GOTO DEBOUNCE ;沒(méi)有釋放繼續(xù)判斷
      GOTO LOOP?。婚_(kāi)關(guān)K釋放重新開(kāi)始
      ORG0x1FF   ;復(fù)位向量
      GOTO START
      END
  說(shuō)明:在MPLAB集成開(kāi)發(fā)環(huán)境下建立源程序時(shí),其源程序文件的開(kāi)始應(yīng)使用偽指令List(列表選擇指令)指示符,指定處理的類型(對(duì)象)。所以,上述的源程序的開(kāi)始處為L(zhǎng)ist P=16C55。其中的“P=”是處理類型,代表設(shè)置微控制器為16C55(芯片)。接著又用了偽指令#include P16C5XINC,代表MPLAB應(yīng)把要處理(類型)的微控器F16C55的所有已設(shè)置的文件,在需要時(shí)就讀入這里的源程序中。這條偽指令就為源程序中的代碼設(shè)置大為簡(jiǎn)化,例如PORTB、TRIS以及其它特殊功能寄存器,就不再用EQU偽指令給它們賦值了。
  源程序中緊接著上面的偽指令為ORG,代表存放程序的起始地址。所以在一個(gè)源程序中,可以根據(jù)需要多次使用ORG偽指令定位。在上述的源程序中,使用了兩次ORG 。值得注意,在PIC系列單片機(jī)中,對(duì)初級(jí)產(chǎn)品PIC16C54/55的復(fù)位向量為1FFH;PIC16C56為3FFH;PIC16C57/58為7FF;對(duì)中級(jí)和高級(jí)產(chǎn)品的復(fù)位向量為000H和0000H。由此可見(jiàn)在建立PIC單片機(jī)源程序時(shí),使用一些偽指令是很有必要的,用它可以為建立源程序完成一些特定功能,使編制的源程序大大簡(jiǎn)化。源程序后面的各條指令功能均已在注釋中給了說(shuō)明,這里不再?gòu)?fù)述。3 MPLAB中源程序文件被存入到指定的目錄和裝載
  在PC機(jī)屏幕上,當(dāng)用鍵盤(pán)鍵入并編輯了源程序(COUNTASM)之后,再用鼠標(biāo)鍵打開(kāi)File下拉菜單,選擇Save(保存)命令,用鼠標(biāo)鍵點(diǎn)擊Save,即可打開(kāi)圖1(目錄路徑為C:PROGRA~1MPLAB)的窗口。在該窗口的File Name(文件名)欄中(標(biāo)題——Save File As),選擇好路徑,用鍵盤(pán)輸入文件名PIC COUNTASM(用戶自定義名),再用鼠標(biāo)鍵點(diǎn)擊OK,即可將源程序文件以指定的文件名PIC COUNTASM存入到指定的目錄中。這一過(guò)程通常稱為對(duì)PIC單片機(jī)(微控制器)源程序(COUNTASM)的存盤(pán)。
  在MPLAB集成開(kāi)發(fā)環(huán)境下,在MPLAB的桌面上,用鼠標(biāo)鍵點(diǎn)擊File下拉菜單,在該菜單中,選擇Open Source(打開(kāi)源文件)命令,再用鼠標(biāo)鍵點(diǎn)擊OPEN SOURCE,又可打開(kāi)圖2的對(duì)話框(窗口),在此對(duì)話框中選擇好目錄路徑(與前面相同)。在窗口的“列出文件類型欄”中,選擇Source File(源文件),再用鼠標(biāo)鍵多次點(diǎn)擊文件名窗口右側(cè)滾動(dòng)槽上的箭頭按鈕(也可拖動(dòng)槽上的滾動(dòng)塊),把已建立的源程序PIC COUNTASM轉(zhuǎn)移到文件名的窗口中。然后用鼠標(biāo)鍵點(diǎn)擊源程序名PIC COUNTASM,則可把該文件名點(diǎn)擊到文件名欄中。到此源程序裝載完成,用鼠標(biāo)鍵點(diǎn)擊確定(OK),則可在PC機(jī)顯示屏的MPLAB桌面上看到已選定路徑和文件名(C:PROGRA~1MPLABPIC COUNT.ASM)的標(biāo)題欄中再次出現(xiàn)源程序文件如圖3所示。編程者即可確認(rèn)源程序確已完成存盤(pán)和裝載。
  由上述介紹的PIC單片機(jī)在MPLAB集成開(kāi)發(fā)軟件中的源程序COUNTASM建立、編輯、存盤(pán)和裝載等軟件操作過(guò)程中可見(jiàn),要在MPLAB中將源程序COUNTASM匯編,還需在PC機(jī)上進(jìn)行多種操作,才有可能達(dá)到對(duì)源程序匯編目的(該裝載步驟可以略去)。
  為了使PIC單片機(jī)初學(xué)者快速掌握源程序匯編方法,筆者建議初學(xué)者應(yīng)在PIC單片機(jī)上多動(dòng)手操作,反復(fù)練習(xí)PIC單片機(jī)源程序的建立編輯—存盤(pán)—裝載等匯編前期操作過(guò)程,以便在學(xué)習(xí)即將介紹的匯編方法時(shí)盡可能少出錯(cuò)誤,增強(qiáng)學(xué)會(huì)PIC單片機(jī)源程序匯編的信心。為此筆者再推薦一種下面最簡(jiǎn)的PIC單片機(jī)試驗(yàn)源程序,以便初學(xué)者多次反復(fù)練習(xí)。
  LIST    P=PIC16C84
 ?。NCLUDE P16C84INC
  ORG    0
START
  MOVLW   0x04
  GOTO    START
  END

  成都 丁錦源

  知識(shí)競(jìng)賽試題:
  28上文的文尾指令MOVLW中,給W送數(shù)的取值范圍(0x?)是多少?



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉