您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
PIC單片機(jī)的指令和源程序
來源: 日期:2013-11-16 22:08:24 人氣:標(biāo)簽:
說明:
(1)movlw即為助記符指令,k稱為操作數(shù)。因w是8位的,所以立即數(shù)的取值為0≤k≤255。
(2)上述指令的功能是k送w(3)實(shí)例1:movlw。;把0→+w。
實(shí)例2:movlwb00011111’;把二進(jìn)制數(shù)的000送w的高三位,1111:1送到w的低五位。
2.特殊功能寄程器trisb、portb、trisa、porta和w的內(nèi)容送寄存器f指令。
pic單片機(jī)端口a、b(或c、d……)在匯編語言中的表達(dá)式分別為porta、portb,對pic16f84,porta是一個(gè)五位的i/o(雙向)寄存器;portb是一個(gè)8位i/o寄存器;pic16f627的porta、portb均是8位寄存器。若要求a或b口為輸入(in)或輸出(out),必須給端口的控制寄存器tris(a或b)送相應(yīng)的數(shù)。i/o端口控制寄存器trisx(x可代表a、b、c、d……)是一個(gè)特殊功能只寫寄存器,其功能是直接控制pic單片機(jī)的各端口為輸入或輸出。當(dāng)寫入trisx寄存器的位(可以是1~8位)為1時(shí),則x口被設(shè)置成輸入口;為0時(shí),x口被設(shè)置成輸出口。寫入trisx數(shù)的方法,由工作寄存器w完成。為此特介紹一條w內(nèi)容(常數(shù)k)送寄存器f的指令:
說明:(1)上述指令功能是把w的內(nèi)容(可以是常數(shù)k)傳送至寄存器f,f可以是一種ram,也可以是特殊功能寄存器。
3.狀態(tài)寄存器status和寄存器體選bank0、bank1……的方法
pic單片機(jī)內(nèi)部的狀態(tài)寄存器status也是一種特殊功能寄存器。狀態(tài)寄存器可作任何指令的操作數(shù)(被寫對象),以完成status的多種控制功能。不同型號的pic單片機(jī)其對應(yīng)的狀態(tài)寄存器略有不同,差別很小。下圖是pic16cxx(包括pic16f84)的狀態(tài)寄存器每位的專用功能符號,且每位的符號均有一定的控制功能。這里主要介紹rp1、rp0(第6、5位)的功能。
pic16f84芯片內(nèi)部有些特殊功能寄存器是處于存儲體bank1中,如trisa、trisb,在建立源程序它們被派上用場時(shí),必須首先利用指令選擇它們的所在的存儲體(尋址),此時(shí)需要設(shè)置狀態(tài)寄存器status的rp1、rp0(第6、5位)的兩位狀態(tài)置,即可完成指定寄存器的體選功能。選擇的方法如下圖所示。為此介紹兩條pic單片機(jī)面向位的指令
說明:上述指令功能是寄存器f可代表特殊功能寄存器)位的清零指令,其中b是寄存器(8位的)的位地址,b取值為0≤b≤7
說明:上述指令功能是寄存器f位的置1指令,b的意義同上。
實(shí)例:當(dāng)pic16f84的控制寄存器trisa、trisb被派上用場時(shí),因控制寄存器tris在pic16f84內(nèi)部硬件資源的存儲體bank1中,所以在建立相關(guān)的源程序時(shí),應(yīng)進(jìn)行體選,即有下述一組選體指令:
說明:上述的指令組合完成了兩個(gè)功能,(1)對狀態(tài)寄存器第5、6位的置數(shù),達(dá)到了選取控制寄存器tris所在的存儲體bank1(尋址);(2)設(shè)定了pic16f84的b口為輸出、a口為輸入。
4.建立pic16f84可執(zhí)行的源程序?qū)嵗@脗沃噶詈椭浄噶畹幕局R,即可建立pic16f84單片機(jī)具有簡單功能的源程序:
說明
(1)上述pic16f84源程序是可執(zhí)行的。所謂可執(zhí)行是指:當(dāng)把該源程序在pc機(jī)上編輯(用鍵盤敲入源程序字符)再命名和選擇了盤符路徑后,即可在mplab集成開發(fā)軟件中進(jìn)行匯編,匯編生成目標(biāo)碼hex文件,即可在pic編程器中將源程序固化,再用實(shí)驗(yàn)板做相應(yīng)的實(shí)驗(yàn)。
(2)該源程序的功能是設(shè)置pic16f84的b口輸出相間的高電平。若用實(shí)驗(yàn)編程器的實(shí)驗(yàn)板做實(shí)驗(yàn),一旦在實(shí)驗(yàn)板的插座上插入pic16f84芯片,再插入適配器電源,實(shí)驗(yàn)板上的8只led(b口接的),則會間亮。讀者還可將源程序中movlw b’l0101010’的二進(jìn)制數(shù)任意改寫,可使b口外接的led按你需要點(diǎn)亮。
(3)從上述源程序中可以看出,pic單片機(jī)源程序的格式為:
標(biāo)號助記符指令操作數(shù);注釋其中標(biāo)號代表指令的符號地址,可表示轉(zhuǎn)移指令(如goto)中轉(zhuǎn)移的地址。在實(shí)際的源程序中,不一定每條指令都需加標(biāo)號,只有在需要時(shí),才需加上標(biāo)號。標(biāo)號可用英語字符組成(自定義)。
(4)源程序中的注釋,是不參與匯編的,主要供編程者便于查看。所以注釋應(yīng)簡短,說明問題即可。注釋應(yīng)以該條指令在源程序中的功能為主,而不是指指令本身的功能。注釋之前定加“;”分號。此外,書寫指令時(shí),標(biāo)號、助記符指令、操作數(shù)、注釋之間至少應(yīng)有一空格。若一行語句無標(biāo)號,則助記符指令前至少應(yīng)留一個(gè)空格。注意:源程序的書寫 好排列整齊,以便閱讀。
(5)書寫源程序時(shí),若操作數(shù)為特殊功能寄存器,應(yīng)用大寫英語字母,否則匯編不會成功。所以為了書寫方便,建議在書寫源程序時(shí),所有的英語符號(包括助記符指令)均用大寫為好。
(6)在源程序中常用了各種語句的符號如“,”“,”“;”“’”等,不同的指令語句,其符號不同,切勿錯(cuò)用,否則匯編不會成功。
(7)源程序建立完后,還需命名。源程序名由主文件名和擴(kuò)展名組成。主文件名可自定義,擴(kuò)展名定義為.asm。
【看看這篇文章在百度的收錄情況】
相關(guān)文章
- 上一篇: 建立PIC單片機(jī)源程序必備的基本知識
- 下一篇: 光電二極管的工作原理