單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc

單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc

ID:27863319

大小:84.50 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2018-12-06

單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc_第1頁(yè)
單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc_第2頁(yè)
單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc_第3頁(yè)
單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc_第4頁(yè)
單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc_第5頁(yè)
資源描述:

《單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、單片機(jī)編程之匯編語(yǔ)言基礎(chǔ)-PIC單片機(jī)匯編指令    1、程序的基本格式  先介紹二條偽指令:  EQU——標(biāo)號(hào)賦值偽指令  ORG——地址定義偽指令  PIC16C5X在RESET后指令計(jì)算器PC被置為全“1”,所以PIC16C5X幾種型號(hào)芯片的復(fù)位地址為:  PIC16C54/55:1FFH  PIC16C56:3FFH  PIC16C57/58:7FFH  一般來(lái)說(shuō),PIC的源程序并沒(méi)有要求統(tǒng)一的格式,大家可以根據(jù)自己的風(fēng)格來(lái)編寫(xiě)。但這里我們推薦一種清晰明了的格式供參考?! ITLETh

2、isis……;程序標(biāo)題  ;--------------------------------------  ;名稱定義和變量定義  ;--------------------------------------  F0   EQU 0  RTCC  EQU 1  PC   EQU 2  STATUS EQU 3  FSR   EQU 4  RA   EQU 5  RB   EQU 6  RC   EQU 7  ┋  PIC16C54EQU1FFH;芯片復(fù)位地址  PIC16C56EQU3FFH 

3、 PIC16C57EQU7FFH  ;-----------------------------------------  ORGPIC16C54GOTOMAIN  ;在復(fù)位地址處轉(zhuǎn)入主程序  ORG 0   ;在0000H開(kāi)始存放程序  ;-----------------------------------------  ;子程序區(qū)  ;-----------------------------------------  DELAYMOVLW255  ┋  RETLW0  ;--------

4、----------------------------------  ;主程序區(qū)  ;------------------------------------------  MAIN  MOVLWB‘00000000’  TRISRB  ;RB已由偽指令定義為6,即B口  ┋  LOOP  BSFRB,7CALLDELAY  BCFRB,7CALLDELAY  ┋  GOTOLOOP  ;-------------------------------------------  END  ;程序

5、結(jié)束  注:MAIN標(biāo)號(hào)一定要處在0頁(yè)面內(nèi)。  2、程序設(shè)計(jì)基礎(chǔ)  1)設(shè)置I/O口的輸入/輸出方向  PIC16C5X的I/O口皆為雙向可編程,即每一根I/O端線都可分別單獨(dú)地由程序設(shè)置為輸入或輸出。這個(gè)過(guò)程由寫(xiě)I/O控制寄存器TRISf來(lái)實(shí)現(xiàn),寫(xiě)入值為“1”,則為輸入;寫(xiě)入值為“0”,則為輸出。  MOVLW0FH ;00001111(0FH)  輸入輸出  TRIS6   ;將W中的0FH寫(xiě)入B口控制器,  ;B口高4位為輸出,低4位為輸入?! OVLW0C0H;11000000(0C0

6、H)  RB4,RB5輸出0RB6,RB7輸出1  2)檢查寄存器是否為零  如果要判斷一個(gè)寄存器內(nèi)容是否為零,很簡(jiǎn)單,現(xiàn)以寄存器F10為例:  MOVF10,1   ;F10→F10,結(jié)果影響零標(biāo)記狀態(tài)位Z  BTFSSSTATUS,Z   ;F10為零則跳  GOTONZ   ;Z=0即F10不為零轉(zhuǎn)入標(biāo)號(hào)NZ處程序  ┋   ;Z=1即F10=0處理程序  3)比較二個(gè)寄存器的大小  要比較二個(gè)寄存器的大小,可以將它們做減法運(yùn)算,然后根據(jù)狀態(tài)位C來(lái)判斷。注意,相減的結(jié)果放入W,則不會(huì)影響二

7、寄存器原有的值。  例如F8和F9二個(gè)寄存器要比較大?。骸 OVF8,0  ;F8→W  SUBWF9,0   ;F9—W(F8)→W  BTFSCSTATUS,Z   ;判斷F8=F9否  GOTOF8=F9  BTFSCSTATUS,C   ;C=0則跳  GOTOF9>F8  ;C=1相減結(jié)果為正,F(xiàn)9>F8  GOTOF9<  F9  ;C=0相減結(jié)果為負(fù),F(xiàn)9  ┋  4)循環(huán)n次的程序  如果要使某段程序循環(huán)執(zhí)行n次,可以用一個(gè)寄存器作計(jì)數(shù)器。下例以F10做計(jì)數(shù)器,使程序循環(huán)8次。

8、  COUNTEQU10  ;定義F10名稱為COUNT(計(jì)數(shù)器)  ┋  MOVLW8  MOVWFCOUNTLOOP  ;循環(huán)體  LOOP  ┋  DECFSZCOUNT,1   ;COUNT減1,結(jié)果為零則跳  GOTOLOOP  ;結(jié)果不為零,繼續(xù)循環(huán)  ┋  ;結(jié)果為零,跳出循環(huán)  5)“IF……THEN……”格式的程序  下面以“IFX=YTHENGOTONEXT”格式為例?! OVFX,0   ;X→W  SUBWFY,0  ;Y—W(X)→W  BTFSCSTATUS,Z  

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。