Please hjælp mig .....

T

Thayas

Guest
Hej alle,
Jeg fik en kode til at rotere 6 wire unipolar stepper motor fra internettet ..
Det fungerer fint i Proteus Simulator (Alle fire (RBO, RB1, RB2, RB3) stifter giver output)
Når jeg prøvet det i brød board.Only to knappenåle (RB0, RB1) give ud put.I ikke fik nogen signaler fra RB2, RB3.
kodning

LISTE p = 16F84; PIC16F844 er målet processor
#
include "P16F84.INC" Inkluder header fil
CBLOCK 0x10; Midlertidig oplagring
pos
dc1
dc2
ENDC
LISTE p = 16F84; PIC16F844 er målet processor

#
include "P16F84.INC" Inkluder header fil

CBLOCK 0x10; Midlertidig oplagring
ENDC

ORG 0
entrypoint goto start

ORG 4
intvector goto intvector

start
clrw; Zero.
movwf PORTB; Sikre PORTB er nul, før vi gør det i stand.
BSF STATUS, RP0; Vælg Bank 1
movlw 0xF0; Indstil port B bits 0-3 som output
movwf TRISB; Indstil TRISB register.
BCF STATUS, RP0; Vælg Bank 0
movlw 3; Initialiser motordrevne holdning
movwf
PO'ernemovwf PORTB
opkald forsinkelse
clrf PORTB; Motor køre off
; RETURN

PUSH BTFSC PORTA, 0
CALL STOP
BTFSC PORTA, 1
CALL stepcw
CALL stepccw
RETURN
; Roter et skridt med uret

stepcw
BCF STATUS, C; Ryd bære flag
btfsc PO'er, 3; Indstil bære hvis denne bit sæt
BSF STATUS, C
rlf PO'er, W; Afhentning og rotere motoren's nuværende position
andlw 0x0F; Mask til lavere gnaske
movwf
PO'ernemovwf PORTB; Drive udgangene
opkald forsinkelse; Vent
clrf PORTB
opkald forsinkelse
CALL forsinkelse
; Ryd output

CALL PUSH
tilbagevenden

STOP CLRF PORTB
GOTO PUSH; Roter et skridt mod uret
stepccw
BCF STATUS, C; Ryd bære flag
btfsc PO'er, 0
BSF PO'er, 4
rrf PO'er, W; Afhentning og rotere motoren's nuværende position
andlw 0x0F; Mask til lavere gnaske
movwf
PO'ernemovwf PORTB; Drive udgangene
opkald forsinkelse; Vent
clrf PORTB; Ryd output
opkald forsinkelse
CALL forsinkelse
goto PUSH

; Dette rutinemæssigt gennemfører forsinkelse mellem trin,
, Og dermed styrer motordrevne hastighed.
forsinkelse movlw 18; Outer loop iterationsprocedure count
movwf dc1
dl1 clrf dc2; Initialisere indvendige loop
DL2 NOP
NOP
decfsz dc2, F
goto DL2
decfsz dc1, F
goto dl1
tilbagevenden

SLUT

Plc nogen hjælpe mig snart ..........

 
PIC kan ikke køre bil de stepper motor direkte, du har brug for en chauffør ligesom ULN2803.
Skriv din skematisk.

 
eller du kan bruge en simpel transistor kredsløb til at køre.

 
Ja, Thats korrekte.
Jeg brugte ULN2003A IC.
Mit problem er "PIC ikke give nogen output fra RB1, RB2.
Kun RB0 og RB1 giver output.
Hvad er fejl i kodningen ..
Men det arbejder proberly i Proteus simulator.
Tak

Hilsen
Thaya

 
Din kode har ingen config specs.I Proteus simulation eksempel du henviser til, konfig Ordet er indstillet med WDT er slukket, LP OSC og PWRTE aktiveret (ikke standardindstillingerne).Hvis Watchdog er om du vil se, nulstilles under programmet udførelse, som vil forårsage funnies.

Der er dog ingen grund til, at du ikke bør være i stand til at køre bil PORTB <2:3>, medmindre du har en blindgænger PIC.Er du sikker på * * det er, hvad sker der?

Iain.

 
Også er der ikke sådan noget som en 16F844, og hvorfor har du angive en 16F84 men kommentere 16F844?

Hvad er målet chip?

 
din kode er noget rod ...og dont glemmer at klare de WDTEN

i starten rutine du vender tilbage !!!!!Hvad er det???og stepcw & stepccw ende forskellige ....Jeg tror du bruger RA0 pin til at afgøre, om det vil gå ur-klogt eller counter clock_wise ...så stepcw & stepccw bør slutte med goto push

Jeg tror, at det bør være

 

Welcome to EDABoard.com

Sponsor

Back
Top