PIC程式碼的意思 晶片16F877 Microchip軟體撰寫 |
缺席
|
dou
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2008-06-05 發送簡訊給我 |
不好意思來請教各位
下列這段程式碼是Microchip MATLAB IDE撰寫的 目前不接任何硬體只有單純的監控及模擬..... 我先解說一下 黑色部份為程式碼 紅色部份為程式碼意思註解(有可能會不對) 藍色部份為程式意思,但我不太瞭解意思 我想請各位幫我看一下 :PS:我有把書看過 第一次看這程式想瞭其中的意思跟觀念 未知);----LED Output control to PORTD-------------( 利用clrf PORTD來Initialize PORTD ------(;-----by clearing output data latch-----------( ( ;PIC 表逃檔或定義檔)org 0x00位址2進位)[0000 0000 ] 程式起始位址 MAIN: ; 清除STATUS,PRO位元) 選擇分頁0)bcf STATUS,RP1( bsc:位元清除(最右邊向左邊依序清bit)位元清為0 clrf PORTD(;Initialize PORTD by clearing(? 輸出資料栓鎖) 位元設定為1) 選擇分頁1) (( 未知) 把暫存器內的值移到ROM位址W-F關係,TRISD是暫存器) ;set PORTD as output 設定PORTD為輸出) ( 選擇分頁0) 把常數0x01存入暫存器[TRISD]K-W關係) 把暫存器內的值移到ROM位址W-F關係,PROTD是暫存器) ( |
sansam
高階會員 ![]() ![]() ![]() ![]() 發表:4 回覆:141 積分:164 註冊:2007-08-20 發送簡訊給我 |
那是設定PORT的程序
TRISD是設定PORTD輸出入方向 如TRISD為0時 是為輸出 為1時 是為輸入 movwf PORTD =>是把工作站存器W的內容丟給PORTD作為輸出狀態 CC5X語法如下: TRISD=0x00; ; 設定PORTD為輸出 PORTD=0b11000011; ; 1為hight 0為low PORTD.6=0; ; 設定PORTD第六腳為Low 我的部落格整理好後將會有完整的CC5X語法說明,請參觀 http://tw.myblog.yahoo.com/jw!AAYcxeeBERmYSYUKUEqzAgU-/ 一般C語言是不用考慮換bank的步驟 編譯時會自動切換 其它如CCSC等語法,可以參考 一開始學組合語言會建立很好觀念,不過很累 |
kagaya
中階會員 ![]() ![]() ![]() 發表:74 回覆:175 積分:59 註冊:2002-12-28 發送簡訊給我 |
;----I/O Port Application-------------------- (未知) ;----LED Output control to PORTD------------- (未知) ;----利用clrf PORTD來Initialize PORTD ------ (未知) ;-----by clearing output data latch----------- (未知) ;後面接的是註解 bcf STATUS,RP0 (清除STATUS,PRO位元) ;Bank0 (選擇分頁0) bcf STATUS,RP1 (清除STATUS,PR1位元) bsc:位元清除(最右邊向左邊依序清bit)位元清為0 這兩個指令就等同於 banksel PORTD movlw 0x00 (把常數0x00存入暫存器K-W關係) ;value used to initialize data (未知) movwf TRISD (把暫存器內的值移到ROM位址W-F關係,TRISD是暫存器) 讓PORTD都是Output movlw 0x01 (把常數0x01存入暫存器[TRISD]K-W關係) movwf PORTD (把暫存器內的值移到ROM位址W-F關係,PROTD是暫存器) 點亮位於RD0的LED
------
KUSO 無處不在
編輯記錄
kagaya 重新編輯於 2008-06-06 14:34:43, 註解 無‧
|
dou
一般會員 ![]() ![]() 發表:1 回覆:1 積分:0 註冊:2008-06-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |