Nybörjarhjälp P12F683

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Nybörjarhjälp P12F683

Inlägg av bos »

Den här koden kompilerar utan problem för mig. Det som är ändrat är att skrota "org" i ersätta med "code" istället, för att få den relokerbar.

Kod: Markera allt

    list      p=12F683
	errorlevel  -302              ; suppress message 302 from list file

#include <p12F683.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _IESO_OFF & _FCMEN_OFF)
reset_v code 0
   goto Start

   code
Start:
   bsf    STATUS,RP0   ;banksel option_reg bättre?
   movlw   b'00000111'  ;init timer0 med max prescale
   movwf   OPTION_REG
   bcf      STATUS,RP0
   ;banksel   GPIO      
   clrf   GPIO      ;init GPIO
   movlw   b'111110'   ;0 analog/1-5 digi
   movwf   CMCON0
   banksel   ANSEL
   clrf   ANSEL      ;0 till analog fixa senare
   movlw    b'001001'    ;1245 ut, 3/mclr in, 0 analog in
   movwf   TRISIO   
      
Mainloop:
   call par12   ;kör led-par 12
   call par24   ;kör led-par 24
   call par45   ;osv..
   call par14
   call par25
   call par15   ;sista paret, byt håll
   call par25
   call par14
   call par45
   call par24
   goto Mainloop
;tri 0 och 3 alltid höga 001001, kom ihåg, ändra till 8bit
par12
   bsf      STATUS,RP0
   movlw    b'001111'    ;3210
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,1   ;fram
      bcf GPIO,2
   call delay1
      bcf GPIO,1   ;tillbaka
      bsf GPIO,2
   call delay1
    return
par24
   bsf      STATUS,RP0
   movlw    b'011101'    ;4320
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,2
      bcf GPIO,4
   call delay1
      bcf GPIO,2
      bsf GPIO,4
   call delay1   
    return
par45
   bsf      STATUS,RP0
   movlw    b'111001'    ;5430
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,4
      bcf GPIO,5
   call delay1
      bcf GPIO,4
      bsf GPIO,5
   call delay1   
    return
par14
   bsf      STATUS,RP0
   movlw    b'001111'    ;3210
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,1
      bcf GPIO,4
   call delay1
      bcf GPIO,1
      bsf GPIO,4
   call delay1   
    return
par25
   bsf      STATUS,RP0
   movlw    b'101101'    ;5320
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,2
      bcf GPIO,5
   call delay1
      bcf GPIO,2
      bsf GPIO,5
   call delay1
   return
par15
   bsf      STATUS,RP0
   movlw    b'101011'    ;3210
   movwf   TRISIO
   bcf      STATUS,RP0
      bsf GPIO,1
      bcf GPIO,5
   call delay1
      bcf GPIO,1
      bsf GPIO,5
   call delay1      
   return

delay1
   btfss   INTCON,T0IF
   goto    $-1
   bcf      INTCON,T0IF
   ;om gp3 hög kör delay2
   return

delay2
   btfss   INTCON,T0IF
   goto    $-1
   bcf      INTCON,T0IF
   return

     end
Skriv svar