Re: P18F4520用組語寫出現的問題
|
||||
---|---|---|---|---|
資深會員
|
感謝板主的回覆,小弟會看熟的!謝謝!
發表於: 2009/8/25 15:52
|
|||
|
Re: P18F4520用組語寫出現的問題
|
||||
---|---|---|---|---|
版主
|
PIC18 一般是使用Table Read 的指令作查表的動作,你可以參考 W100 (102_ASP) 教育訓練裡的練習五,裡面有查表的範例。
Attach file: Link only for registered users
發表於: 2009/8/25 15:26
|
|||
|
Re: P18F4520用組語寫出現的問題
|
||||
---|---|---|---|---|
資深會員
|
您這樣說我就了解了,原本看了Watch之後,並用STEP OVER執行後就發現好像是這樣,只是不確定是否如我所想,現在可以確定了!
感謝Beee大大的指教!
發表於: 2009/8/23 20:13
|
|||
|
P18F4520用組語寫出現的問題
|
||||
---|---|---|---|---|
資深會員
|
請各位大大指點一下?
小弟學Microchip以來用PIC18F4520,都用C來寫,因為對PIC的組語語法不熟,現在看一下指令其實跟以前學過的HOLTEK也沒差很多,因此用組語試試看簡單的練習,但出現一個問題是我的測試程式中為何CNT要設成20才能正確的將表查完,如果設為10會產生只查到B'00010000'這個部分,但我以前用HOLTEK的時候一樣的東西卻可以正確執行,是否是因為每執行下一行指令時PC都加2的原因嗎? LIST P=18F4520,R=DEC #include <P18F4520.INC> CBLOCK 0X20 D1,D2,D3 ONEIDX CNT ENDC ORG 0X0000 GOTO MAIN MAIN: CLRF ONEIDX CLRF TRISD CLRF PORTD MAIN_1: CLRF ONEIDX MOVLW 20 MOVWF CNT START: MOVF ONEIDX,W CALL TABLE MOVWF PORTD CALL DELAY INCF ONEIDX,F DECFSZ CNT,F GOTO START GOTO MAIN_1 ;**************************************** DELAY: MOVLW 03 MOVWF D1 D_1: MOVLW 10 MOVWF D2 D_2: MOVLW 110 MOVWF D3 D_3: DECFSZ D3 GOTO D_3 DECFSZ D2 GOTO D_2 DECFSZ D_1 GOTO D_1 RETURN ;***************************************** TABLE: ADDWF PCL,F RETLW B'00000001' RETLW B'00000010' RETLW B'00000100' RETLW B'00001000' RETLW B'00010000' RETLW B'00100000' RETLW B'01000000' RETLW B'10000000' RETLW B'00001111' RETLW B'11110000' ;***************************************** END
發表於: 2009/8/22 22:21
|
|||
|