PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)四_第1頁
PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)四_第2頁
PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)四_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、PIC 系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)四當(dāng)芯片上電 RESET后, F4 的 bit6,bit5是隨機(jī)的,非上電的RESET則保持原先狀態(tài)不變。下面的例子對(duì) BANK1和 BANK2的 30H及 50H寄存器寫入數(shù)據(jù)。例 1(設(shè)目前體選為BANK0)BSF4 ,5;置位 bit5=1, 選擇 BANK1MOVLW DATAMOVWF 10H; DATA30HBCF4 ,5BSF4,6; bit6=1,bit5=0選擇BANK2MOVWF 10H;DATA50H從上例中我們看到,對(duì)某一體(BANK)中的寄存器進(jìn)行讀寫,首先要先對(duì)F4 中的體尋址位進(jìn)行操作。實(shí)際應(yīng)用中一般上電復(fù)位后先清F4 的 bit6和

2、 bit5為 0,使之指向 BANK0,以后再根據(jù)需要使其指向相應(yīng)的體。注意,在例子中對(duì) 30H寄存器( BANK1)和 50H寄存器( BANK2)寫數(shù)時(shí),用的指令“ MOVWF 10H”中寄存器地址寫的都是“ 10H”,而不是讀者預(yù)期的 “MOVWF 30H”和“ MOVWF 50H”,為什么?讓我們回顧一下指令表。在 PIC16C5X的所有有關(guān)寄存器的指令碼中,寄存尋址位都只占 5 個(gè)位:fffff ,只能尋址 32 個(gè)(00H 1FH)寄存器。所以要選址 80 個(gè)寄存器,還要再用二位體選址位 PA1和 PA0。當(dāng)我們?cè)O(shè)置好體尋址位 PA1和 PA0,使之指向一個(gè) BANK,那么指令“

3、MOVWF10H”就是將 W內(nèi)容置入這個(gè) BANK 中的相應(yīng)寄存器內(nèi)( 10H,30H, 50H,或 70H)。有些設(shè)計(jì)者第一次接觸體選址的概念, 難免理解上有出入,下面是一個(gè)例子:例 2:(設(shè)目前體選為 BANK0)MOVLW 55HMOVWF 30H;欲把 55H30H 寄存器MOVLW 66HMOVWF 50H;欲把 66H50H 寄存器以為“ MOVWF30H”一定能把 W置入 30H,“MOVWF50H”一定能把 W置入 50H,這是錯(cuò)誤的。因?yàn)檫@兩條指令的實(shí)際效果是“ MOVWF 10H”,原因上面已經(jīng)說明過了。所以例 2 這段程序最后結(jié)果是 F10H=66H,而真正的 F30H和

4、 F50H并沒有被操作到。建議:為使體選址的程序清晰明了,建議多用名稱定義符來寫程序,則不易混淆。例 3:假設(shè)在程序中用到BANK0,BANK1,BANK2的幾個(gè)寄存器如下:BANK0地址BANK1地址BANK2地址BANK3地址A10HB30HC50H70HAEQU10H;BANK0BEQU10H;BANK1CEQU10H;BANK2FSREQU4Bit6EQU6Bit5EQU5DATAEQU55HMOVLW DATAMOVWF ABSFFSR,Bit5MOVWF B;DATAF30HBCFFSR,Bit5BSFFSR,Bit6MOVWF C;DATAF50H程序這樣書寫,相信體選址就不容易

5、錯(cuò)了。13) PIC 單片機(jī)程序跨頁面跳轉(zhuǎn)和調(diào)用下面介紹 PIC16C5X單片機(jī)的程序存儲(chǔ)區(qū)的頁面概念和 F3寄存器中的頁面選址位 PA1和 PA0兩位應(yīng)用的實(shí)例。(1)“ GOTO”跨頁面例:設(shè)目前程序在0 頁面( PAGE0),欲用“ GOTO”跳轉(zhuǎn)到 1 頁面的某個(gè)地方KEY( PAGE1)。STATUSEQU3PA1EQU6PA0EQU5BSFGOTOSTATUS,PA0KEY;PA0=1,選擇;跨頁跳轉(zhuǎn)到PAGE頁面1 頁面的 KEYKEYNOP;1 頁面的程序(2)PIC 單片機(jī)“ CALL”跨頁面例:設(shè)目前程序在0 頁面( PAGE0),現(xiàn)在要調(diào)用放在1 頁面( PAGE1)的子

6、程序DELAY。BSFCALLBCFSTATUS,PA0DELAYSTATUS,PA0; PA0=1,選擇 PAGE1頁面;跨頁調(diào)用;恢復(fù) 0 頁面地址DELAY NOP; 1 頁面的子程序注意:程序?yàn)榭珥?CALL而設(shè)了頁面地址,從子程序返回后一定要恢復(fù)原來的頁面地址。(3)PIC 單片機(jī)程序跨頁跳轉(zhuǎn)和調(diào)用的編寫讀者看到這里,一定要問:我寫源程序( .ASM)時(shí),并不去注意每條指令的存放地址,我怎么知道這個(gè) GOTO是要跨頁面的,那個(gè) CALL是需跨頁面的?的確,開始寫源程序時(shí)并知道何時(shí)會(huì)發(fā)生跨頁面跳轉(zhuǎn)或調(diào)用,不過當(dāng)你將源程序匯編時(shí),就會(huì)自動(dòng)給出。當(dāng)匯編結(jié)果顯示出:X X X (地址)“ GOTO out of RangeX X X (地址)“ CALL out of Range這表明你的程序發(fā)生了跨頁面的跳轉(zhuǎn)和調(diào)用,而你的程序中在這些跨頁GOTO和 CALL之前還未設(shè)置好相應(yīng)的頁面地址。這時(shí)應(yīng)該查看匯編生成的.LST文件,找到這些 GOTO和 CALL,并查看它們要跳轉(zhuǎn)去的地址處在什么頁面,然后再回到源程序(.ASM)做必要的修改。 一直到你的源程序匯編通過 (0 ErrorsandWarnnings)。(4)PIC 單片機(jī)程序頁面的連接程序 4 個(gè)頁面連接處應(yīng)該做一些處理。 一般

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論