作者icetofux (豆腐)
看板ASM
標題[問題] 初學PIC系列單晶片
時間Wed Apr 30 09:04:19 2008
最近在閱讀PIC系列單晶片的DATA SHEET,有幾個小問題想不通,想請問:
1.以80C51來說,我們可以直接將常數值用立即定址的方式給輸出PORT,如:
MOV P1,
#10101010B
但是在PIC系列IC的標準指令集中,資料搬移指令細分為很多種,卻沒有一種可
以直接將常數丟往輸出PORT(根據使用手冊敘述,PORT似乎可以視為暫存器,但
仍然沒有一種資料搬移指令可以將常數丟往暫存器。),如果要達到上述功能,
僅能靠:
MOVLW B'10101010'
MOVWF PORTB
來實現,以執行所花費時間來看,的確不一定會比較久,但對於撰寫的過程中,
每次要操作輸出PORT(暫存器)都得經過W累加器感覺有點麻煩,想請問一下是不是
有更簡單或是更常用的方法呢?
2.以80C51來說,使用者很清楚基本的一般暫存器總共有8*4=32個(R0~R7*4組暫存
器庫),然而在PIC的架構中,暫存器確是一片記憶體"區塊",如果8-BIT劃成一個
的話應該有非常多暫存器可以用,但是縱使知道有很多記憶體空間可用,卻不知道
如何操作起,因為它們沒有像R0、R1這樣的"名字",想請問我該如何把這麼大一片
記憶體空間,規劃成暫存器呢(像是R0就是指XXX位址、R1就是指XXX位址這種感覺)
?
因為我目前唯一學習過的單晶片只有89C51,所以上面兩個小疑問都是以89C51為比
較,我了解兩者架構上有所不同,所以不見得能做到,但還是想釐清是否可行。
-
這篇本來是PO在電機電子版,但可能在使用PIC單晶片的版眾不多,忽然想起ASM版
範圍含跨單晶片,所以把跟晶片使用上比較有關的問題取出重貼於此,想跟大家請
教一下。
如果大家認為範圍還是脫離版上所規定的區塊,不好意思,我再來刪除。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.181.137
1F:推 ruemann:1. 沒辨法,不過可以用巨集來讓它看起來簡單一點 05/01 12:36
2F:→ ruemann:2. 位址也是可以取名字的,像8051一般的暫存區也是沒有特 05/01 12:36
3F:→ ruemann: 定名稱,要自己取名 05/01 12:37