會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





102ASP PIC18F系列基礎課程 (原W400)中的直接定址範例
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 53
等級: 6; EXP: 12
HP : 0 / 128
MP : 17 / 1117
離線
各位好,小弟看了這個範例後有幾個問題與延伸出來的問題想要請教各位大大。範例如附圖1所示。

直接定址中,Highbyte的4個bit分別代表bank0~bank15;後8個bit則是直接代表位址,比如1111 1111就代表255(FFh)。所以以這題的例題來講,應該是把位址選擇到Bank1的第32個位址上。如果假定沒錯的話,Effective Address = 120指的應該是 Bank1的20h

以上是小弟的認知(如果有錯請指正)

MyReg equ 0x120      // 請問這行是指令嗎? 如果是,是什麼意思?
movlw b'11110000'      // 看了16F4520的spec(如圖二),movlw指的是把Literal移到W。 我知道W是working register,是ALU用來處理Data時所用到的暫存器。想請問:
               1.Literal是什麼?純粹指的是一個Value嗎?
               2.一定要打b''嗎?如果要輸入二進制能不能用別的方式?比如0bXXXXXXXX或者是直接打上數字(movlw xxxxxxxx)
movwf TRISB, a       // spec指出這指令的定義(如圖三)是 MOVWF f{,a}。 想請教一下:
               1.這邊的範例並沒有標示a為1或是0,為什麼? 這邊的TRISB是在是在SFR裡,所以a應該要為0嗎?
               2.這邊的運算元f(file register)指的應該是全部的data memory吧?
               3.在圖三的例題, MOVWF REG,0。 我在SFR裡面沒有找到REG名稱的變數,所以這個REG應該是放在GPR裡面使用者自定義的變數吧?
               4.這邊的a是0,代表選擇的bank是Access Bank,但我看了Access Bank的定義分別為Access RAM跟SFR,並不是GPR啊?那為什麼例題有辦法在Access Bank裡面自定義REG這個變數呢?
bsf PORTB, 0, a      // 看不太懂spec上的解釋(如圖四)。 想請問:
               1.Bit set indexed是什麼意思?
               2.Indexed Literal Offset mode是什麼模式?
               3.description的解釋中文大致上是:register的Bit b被File Select Register2指出來,被value 'k' offset(位移?) 想請問什麼是register的Bit b;被指出來是什麼意思?
movlb 0x01 ;      // 終於遇到一個看得懂的指令了,但還是想請教一下, 為什麼這邊才開始有分號?其他的指令都沒有分號?
movlw 0xAA      // 這行看得懂
movwf MyReg ; @120h // MyReg應該是自定義的變數,想請教用movwf指令時,為什麼後面可以加 ; @120h?

***********************我是分隔線*************************
movlw b'11110000'
movwf TRISB, a

(請配合圖五)這兩行我能理解為這樣嗎?:如果要讓TRISB裡面有值的話(在Data memory裡面),必須要先把值移到working register裡,再把working register裡的值移到file register(data memory)。
也就是說當CPU擷取到指令時,必須透過Program Bus(16bit)把其中的8bit指令傳到Table latch(不知道傳到這裡要幹嘛)與全部的16bit傳到Instruction register,然後instruction register會依指令的格式,把其中一部份的12bit傳給Address<12>,讓CPU知道TRISB在F93h的位址;另一部份再透過12bit的Bus把資料傳到BIT OP(不知道幹嘛的)與WREG(這個應該就是working register),再經過8bit的Bus匯流排傳到DATA memory。以上的結果就是在F93h的register裡面有F0這個值。 所以做完這兩行指令後,TRISB裡面的值為F0。

問題:
1.為什麼圖五的diagram的內部構造與圖六的不同?
2.Table latch是什麼功用?
3.Instruction register是什麼功用?
4.Address<12>是什麼功用?
5.BIT OP是什麼功用?
6.WREG是什麼功用? 為什麼會跟BITOP連在一起?
7.從Program memory出來是16bit寬度的大小,其中的8bit進入table latch,16bit全部進入instruction register,為什麼出來後剩下12bit寬度大小?

接著繼續看範例的指令
bsf PORTB, 0, a
做完這個指令為什麼PORTB變成FE?

請各位前輩一定要幫幫小弟我,小弟我是真的想要了解PIC的架構,也想知道細部的動作該怎麼執行,如果覺得小弟發問的問題太多,也拜託請您提供小弟資訊的來源,可以讓小弟自行研讀,謝謝。

附加檔案:



jpg  圖1.JPG (138.48 KB)
45509_59631b5fe2143.jpg 1062X795 px

jpg  圖2.JPG (53.55 KB)
45509_59631b63f054c.jpg 576X597 px

jpg  圖3.JPG (70.32 KB)
45509_59631fa803fff.jpg 452X790 px

jpg  圖4.JPG (84.36 KB)
45509_5963222840b58.jpg 634X870 px

jpg  圖5.JPG (160.12 KB)
45509_5963272b86837.jpg 1061X796 px

jpg  圖6.JPG (150.47 KB)
45509_59632a49628d5.jpg 912X871 px

7月10日 15:26:44

firststop0 於 2017年07月10日 15:58:41
firststop0 於 2017年07月10日 16:00:45
firststop0 於 2017年07月10日 16:05:29
轉換PDF檔 列印


Re: 102ASP PIC18F系列基礎課程 (原W400)中的直接定址範例
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 53
等級: 6; EXP: 12
HP : 0 / 128
MP : 17 / 1117
離線
先跟各位說聲不好意思,我實在是想要把排版編輯的好一點,讓各位方便閱讀,不要整段都黏在一起,但是我真的不會使用這些編排的功能,不好意思讓大家傷眼了。

7月10日 15:32:19
轉換PDF檔 列印


Re: 102ASP PIC18F系列基礎課程 (原W400)中的直接定址範例
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 937
等級: 27; EXP: 24
HP : 0 / 656
MP : 312 / 19746
離線
簡單的說...不要太急燥

台語:吃快弄破碗...
國語:欲速則不達...

先說說 你之前有什麼計算機(CPU)經驗...
例:x86, 8051, ARM,...
學校學些什麼,有什麼實習/工作
跟MCU(單晶片)經驗...等等

=================================================
照理來說,已經兩三年了,不應該 有基本問題才對...

哈囉~我想請問一下
曾百由老師書中第十一章第一個例題與第二個例題的差別
第一個例題是用手動觸發轉換(SSRC = 000)
第二個例題是用自動觸發轉換(SSRC = 111)
...
2014/12/08 17:47
---------------------------------------------
我說的 基本問題...
; 分號 是 組合語言的註解

註:後來我在想,你都用// 可能是用C,來看ASM搞不懂...

movlb 0x01 ;      // 終於遇到一個看得懂的指令了,但還是想請教一下, 為什麼這邊才開始有分號?其他的指令都沒有分號?
movwf MyReg ; @120h // MyReg應該是自定義的變數,想請教用movwf指令時,為什麼後面可以加 ; @120h?

-------------------------------------------------
其他問題,先暫時不討論,因為你一下太深入細節,
但你本身對於架構還沒完全了解...

解決問題方法:
1. RTC 教育訓練(右手邊)
看你去那最方便,就去那上課
例: 台北 RTC 網站

2. 你有書(曾百由老師書)
前面MCU架構,回頭仔細再多讀幾遍...

3. 做一些小練習
做一些小練習,增加經驗,慢慢你就會更了解
MCU,更了解架構,更了解問題,...
----------------------------------------------

就跟開車一樣, 大部份的人 去考駕照,對車子的了解
就是 油門,剎車,排檔桿,方向盤,引擎(蓋),油箱,...
然後 方向燈,大燈,冷氣,音響,...
慢慢了解.....
由主要架構而後慢慢了解細節....
如果一開始什麼都不懂就開始討論引擎原理
(進氣/壓縮/點火/爆發/排氣....)
這樣可能一年後,都還沒拿鑰匙發動引擎
學開車考駕照遙遙無期....

----------------------------------------------
另外,很多東西,很難一下就可講的完...
去上上課(RTC)吧....
或者也可以直接來信: jason680 <at> gmail <dot> com

7月10日 17:46:57
_________________
程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

先有需求規格 後有解決方案
轉換PDF檔 列印


Re: 102ASP PIC18F系列基礎課程 (原W400)中的直接定址範例
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 53
等級: 6; EXP: 12
HP : 0 / 128
MP : 17 / 1117
離線
To Jason:
已寄信到您信箱。

7月11日 13:54:39
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project