Dr.Noob
31.01.2006, 14:28
Hi,
hat mir jemand ein TUT für das Prog?
habe mir ein fertiges Projekt bei sprut.de ( lauflicht ) herruntergeladen
will das ganze auf den PIC16F630 brennen.
doch beim build tauchen error meldungen auf ERROR 113 und 117
list p=16f630
;************************************************* *************
;*
;* Pinbelegung
;* ----------------------------------
;* PORTA: 0
;* 1
;* 2
;* 3
;* 4
;* PORTB: 0 LED
;* 1 LED
;* 2 LED
;* 3 LED
;* 4 LED
;* 5 LED
;* 6 LED
;* 7 LED
;*
;************************************************* *************
;
; sprut (zero) Bredendiek 05/2000 (mod. am 16.01.2002)
;
; Lauflicht am Port B
;
; Taktquelle: 4MHz
;
;************************************************* *************
; Includedatei für den 16F630 einbinden
;
#include <P16f630.INC>
;
; Configuration festlegen
;
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;
; ab 4 MHz: Power on Timer, kein Watchdog, HS-Oscillator
; __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC
;
;************************************************* *************
; Variablennamen vergeben
;
loops Equ 0x22 ; Zähler für Warteschleife
loops2 Equ 0x23 ; Zähler für Warteschleife
;************************************************* *************
; los gehts mit dem Programm
; Port B auf Ausgabe stellen
Init
bsf STATUS, RP0 ; auf Bank 1 umschalten ;Der Befehl setzt das Bit Nummer RP0 in dem angegebenen Register.
movlw 0h ; PortB alle output ;W-Register mit einer Konstanten laden
movwf TRISB ;W-Register nach Register kopieren
bcf STATUS, RP0 ; auf Bank 0 zurückschalten ;lösche Bit des Registers
clrf PORTB ; alle LEDs ausschalten ;Register löschen
; 1. LED einschalten
bsf PORTB,0 ; LED an RB0 einschalten
; Lauflicht
Loop
call Wait ; Wartezeit
rlf PORTB,f ; laufen zur nächsten LED
goto Loop
;************************************************* *********
; Warteschleife 250 ms
Wait
movlw D'250' ; 250 ms Pause
movwf loops
Wai
movlw .110 ; Zeitkonstante für 1ms
movwf loops2
Wai2 nop ;
nop
nop
nop
nop
nop
decfsz loops2, F ; 1 ms vorbei?
goto Wai2 ; nein, noch nicht
;
decfsz loops, F ; 250 ms vorbei?
goto Wai ; nein, noch nicht
retlw 0 ; das Warten hat ein Ende
end
Danke
hat mir jemand ein TUT für das Prog?
habe mir ein fertiges Projekt bei sprut.de ( lauflicht ) herruntergeladen
will das ganze auf den PIC16F630 brennen.
doch beim build tauchen error meldungen auf ERROR 113 und 117
list p=16f630
;************************************************* *************
;*
;* Pinbelegung
;* ----------------------------------
;* PORTA: 0
;* 1
;* 2
;* 3
;* 4
;* PORTB: 0 LED
;* 1 LED
;* 2 LED
;* 3 LED
;* 4 LED
;* 5 LED
;* 6 LED
;* 7 LED
;*
;************************************************* *************
;
; sprut (zero) Bredendiek 05/2000 (mod. am 16.01.2002)
;
; Lauflicht am Port B
;
; Taktquelle: 4MHz
;
;************************************************* *************
; Includedatei für den 16F630 einbinden
;
#include <P16f630.INC>
;
; Configuration festlegen
;
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;
; ab 4 MHz: Power on Timer, kein Watchdog, HS-Oscillator
; __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC
;
;************************************************* *************
; Variablennamen vergeben
;
loops Equ 0x22 ; Zähler für Warteschleife
loops2 Equ 0x23 ; Zähler für Warteschleife
;************************************************* *************
; los gehts mit dem Programm
; Port B auf Ausgabe stellen
Init
bsf STATUS, RP0 ; auf Bank 1 umschalten ;Der Befehl setzt das Bit Nummer RP0 in dem angegebenen Register.
movlw 0h ; PortB alle output ;W-Register mit einer Konstanten laden
movwf TRISB ;W-Register nach Register kopieren
bcf STATUS, RP0 ; auf Bank 0 zurückschalten ;lösche Bit des Registers
clrf PORTB ; alle LEDs ausschalten ;Register löschen
; 1. LED einschalten
bsf PORTB,0 ; LED an RB0 einschalten
; Lauflicht
Loop
call Wait ; Wartezeit
rlf PORTB,f ; laufen zur nächsten LED
goto Loop
;************************************************* *********
; Warteschleife 250 ms
Wait
movlw D'250' ; 250 ms Pause
movwf loops
Wai
movlw .110 ; Zeitkonstante für 1ms
movwf loops2
Wai2 nop ;
nop
nop
nop
nop
nop
decfsz loops2, F ; 1 ms vorbei?
goto Wai2 ; nein, noch nicht
;
decfsz loops, F ; 250 ms vorbei?
goto Wai ; nein, noch nicht
retlw 0 ; das Warten hat ein Ende
end
Danke