Windows下PIC8位單片機(jī)源程序匯編和固化(一)
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ā)PIC單片機(jī)的工具不僅十分成熟也是多種多樣的。
在PC機(jī)上對(duì)PIC單片機(jī)的源程序匯編時(shí),既可以在DOS條件下,也可以在Windows條件下進(jìn)行。以下將介紹Windows下源程序匯編的方法和步驟。
1Windows下PIC集成開(kāi)發(fā)軟件MPLAB
MPLAB是Microchip公司為PIC單片機(jī)開(kāi)發(fā)產(chǎn)品提供的適用于PC機(jī)Windows的集成開(kāi)發(fā)軟件。MPLAB的版本從早期到現(xiàn)在已發(fā)展到多種:如MPLAB V301版、V302版、V40版、V499和V50版等。各版本之間向下兼容,所以盡管PIC單片機(jī)品種如此之多,用戶只需選擇相應(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)鍵盤和鼠標(biāo);4MB(最好是16MB以上)的內(nèi)存和VGA以上顯示器等。MPLAB的安裝簡(jiǎn)單,只要熟悉PC機(jī)的用戶均可利用磁盤或光盤CD-ROM中MPLAB的SETUPEXE文件和相關(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的桌面,如附圖所示(V499版)。該桌面是一個(gè)大小可變的窗口。MPLAB桌面頂部的左邊字符為標(biāo)題欄(MPLAB);標(biāo)題欄的下面為菜單欄(MENU),菜單欄的下面為工具欄,底部為狀態(tài)欄。桌面窗口中的菜單欄是下拉式的。
MPLAB共有多個(gè)菜單選項(xiàng)(V322、V499有9個(gè),V301是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)寫出相應(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è)空白的編輯窗口,在此窗口中用鍵盤鍵入PIC 16C55 COUNTASM源程序再對(duì)其進(jìn)行編輯(以MPLAB V301版為例):
LIST P=16C55
?。NCLUDE P16C5XINC
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 P16C5XINC,代表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)用鍵盤鍵入并編輯了源程序(COUNTASM)之后,再用鼠標(biāo)鍵打開(kāi)File下拉菜單,選擇Save(保存)命令,用鼠標(biāo)鍵點(diǎn)擊Save,即可打開(kāi)圖1(目錄路徑為C:PROGRA~1MPLAB)的窗口。在該窗口的File Name(文件名)欄中(標(biāo)題——Save File As),選擇好路徑,用鍵盤輸入文件名PIC COUNTASM(用戶自定義名),再用鼠標(biāo)鍵點(diǎn)擊OK,即可將源程序文件以指定的文件名PIC COUNTASM存入到指定的目錄中。這一過(guò)程通常稱為對(duì)PIC單片機(jī)(微控制器)源程序(COUNTASM)的存盤。
在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 COUNTASM轉(zhuǎn)移到文件名的窗口中。然后用鼠標(biāo)鍵點(diǎn)擊源程序名PIC COUNTASM,則可把該文件名點(diǎn)擊到文件名欄中。到此源程序裝載完成,用鼠標(biāo)鍵點(diǎn)擊確定(OK),則可在PC機(jī)顯示屏的MPLAB桌面上看到已選定路徑和文件名(C:PROGRA~1MPLABPIC COUNT.ASM)的標(biāo)題欄中再次出現(xiàn)源程序文件如圖3所示。編程者即可確認(rèn)源程序確已完成存盤和裝載。
由上述介紹的PIC單片機(jī)在MPLAB集成開(kāi)發(fā)軟件中的源程序COUNTASM建立、編輯、存盤和裝載等軟件操作過(guò)程中可見(jiàn),要在MPLAB中將源程序COUNTASM匯編,還需在PC機(jī)上進(jìn)行多種操作,才有可能達(dá)到對(duì)源程序匯編目的(該裝載步驟可以略去)。
為了使PIC單片機(jī)初學(xué)者快速掌握源程序匯編方法,筆者建議初學(xué)者應(yīng)在PIC單片機(jī)上多動(dòng)手操作,反復(fù)練習(xí)PIC單片機(jī)源程序的建立編輯—存盤—裝載等匯編前期操作過(guò)程,以便在學(xué)習(xí)即將介紹的匯編方法時(shí)盡可能少出錯(cuò)誤,增強(qiáng)學(xué)會(huì)PIC單片機(jī)源程序匯編的信心。為此筆者再推薦一種下面最簡(jiǎn)的PIC單片機(jī)試驗(yàn)源程序,以便初學(xué)者多次反復(fù)練習(xí)。
LIST P=PIC16C84
?。NCLUDE P16C84INC
ORG 0
START
MOVLW 0x04
GOTO START
END
成都 丁錦源
知識(shí)競(jìng)賽試題:
28上文的文尾指令MOVLW中,給W送數(shù)的取值范圍(0x?)是多少?
評(píng)論