• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 程式指點...
#2
資深會員
資深會員


查看用戶資訊
PCL --> PROGRAM COUNTER 的 LOW BYTE
執行第 ( 幾 ) 個指令的參考值
本來是執行一個指令 便加一
但 ADDWF PCL ,F 會再加上放在 W 的值
所以便會跳過 W個 指令
例如 W = 0 則 會執行 第一個 (沒跳) 指令
retlw b'00000001'

例如 W = 5 則 會執行 第六個 (跳五個) 指令
retlw b'00000100'

RETLW 返回時 會將一個值 放在 W 內( 如 b'00000001' )
所以這種程式寫法 通常都叫做查表法


發表於: 2005/7/5 3:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


程式指點...
#1
中級會員
中級會員


查看用戶資訊
大家好 我照著書上範例測試 可以work 但是我不明白
addwf PCL,f 是要幹麻ㄉ 請指點 謝謝

list p=16F873a
#include <p16f873a.inc> ; Include file locate at defult directory

w_temp equ 0x20
STATUS_temp equ 0x21
scaler equ 0x22
blankcnt equ 0x23
maxcount equ 0x32

;********************************************

;*********************************************
org 0x00
nop
goto Main
org 0x04
goto IntServ

IntServ
movwf w_temp
swapf STATUS_temp,w
movwf STATUS_temp
btfsc PIR1,TMR1IF
call Timer1
swapf STATUS_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie

Timer1
banksel PIR1
bcf PIR1,TMR1IF
decf scaler,f
clrf TMR1L
movlw 0xf8
movwf TMR1H
movlw 0x2f
movwf TMR1L
return
;----------------------main----------------------------------------------------------
Main
call initial
loop
call Blink
call looptime
goto loop

;-------------------------------------------------------------------------------------
initial
banksel maxcount
movlw maxcount
movwf blankcnt
movlw b'11111111'
movwf PORTB
movlw 0x04
movwf scaler
banksel TRISB
clrf TRISB
banksel T1CON
clrf T1CON

clrf TMR1H
clrf TMR1L
clrf INTCON
bsf INTCON,PEIE
banksel PIE1
clrf PIE1
bsf PIE1,TMR1IE
banksel PIR1
clrf PIR1
banksel TMR1L
clrf TMR1L
movlw 0xf8
movwf TMR1H
movlw 0x2f
movwf TMR1L
bsf T1CON,TMR1ON
banksel INTCON
bsf INTCON,GIE
return
;----------------Blink--------------------------------------------------------------------------
Blink
decfsz blankcnt,f
goto blinkend
movlw maxcount
movwf blankcnt
call blinktable
xorwf PORTB,f
blinkend
return
;----------------table--------------------------------------------------------------------------
blinktable
movf PORTB,w
andlw b'00000111'
addwf PCL,f
retlw b'00000001'
retlw b'00000011'
retlw b'00000110'
retlw b'00000010'
retlw b'00000101'
retlw b'00000100'
retlw b'00000111'
retlw b'00000110'
;---------------------looptime-----------------------------------------------------------------
looptime
btfss scaler,7
goto looptime
movlw 5
addwf scaler,f
return
;------------------------
end

發表於: 2005/7/4 22:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------