程式指點...
|
||||
---|---|---|---|---|
中級會員
|
大家好 我照著書上範例測試 可以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
|
|||
|