Relay problem

S

sush

Guest
hej,

Jeg er næsten ny til mikro-controllere.Jeg lavede denne lille projekt til at tænde og ned af en
relæ ved hjælp 89C51, og Push-knappen.Jeg har installeret både tænder og relæ på port0.
og også tilføjet pullup modstande.Det system fungerer fint, men mit problem er,
når jeg tænder for systemet relæet tænder og slukker for en brøkdel af et
andet, hvordan kan jeg fjerne denne ene gang snakkende af relæ?Jeg forsøgte at tilføje en
Condensor ved foden af transistoren, den snakkende stopd men når jeg nødt til at skubbe
overgangen til om ordningen relæet tager tid at tænde.Jeg sender både diagram og kode, kan du hjælpe!

enhver hjælp ville være appriciated, Tak.

Kode:;************************************************* **************************# Include "8051EQU.INC"; omfatter foruddefinerede konstanter

;

;************************************************* *************************; RESET, nulstilles rutine. ORG 0H; lokalisere rutine på 00h

AJMP START; springe til START

;

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

;

; Afbryder (ikke anvendt); sted interrupt rutiner på passende

; hukommelsespladser

. ORG 03h; ekstern afbryder 0

RETI

. ORG 0BH; timer 0 afbryder

RETI

. ORG 13H; ekstern afbryder 1

RETI

. ORG 1BH; timer 1 afbryder

RETI

. ORG 23h; seriel port afbryder

RETI

. ORG 25H; finde begyndelsen af resten af programmet

;

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

;

INITIALIZE:; nedsat kontrol registre

;

MOV TCON, # 00h

MOV TMOD, # 00h

MOV PSW, # 00h

MOV IE, # 00h; disable interrupts

RET

;

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

;

START:

ACALL INITIALIZE

LOOP:

JB P0.1, LOOP

HER:

JNB P0.1, HER, VENT KEY RELEASE

CPL P0.2

AJMP LOOP

. SLUT

 
Du har måske skifte bounce problemer ..
Prøv at tilføje forsinkelser til begge sløjfer:

Loop:
JB P0.1, Loop
CALL Delay (≈ 50-100ms)
JB P0.1, Loop

Her:
JNB P0.1, Her
CALL Delay (≈ 50-100ms)
JNB P0.1, Her

CPL P0.2
SJMP LoopOgså, slutte 100ľF 100 nF bypass kondensatorer mellem 5 V og 0V, tilføje 10nF-100nF kondensator betwwen P0.1 og GND ..og prøv igen ..Hilsen,
IanP

PS, hvis du har brug for en DELAY subrutine her er et eksempel:

For det første erstatter:
MOV TMOD, # 11H; begge timere i 16-bit tilstand
MOV TCON, # 00h; stoppe begge timere
i INITIALIZE ..

;------------------------------------------------- -----------------------
; 0,1 sekund DELAY RUTINE AT 12 MHz SPPED
; (TR0 (50ms) TR1 (50ms)) x R7 (01) = 0,1 sekund forsinkelse
;------------------------------------------------- -----------------------
DELAY:
MOV R7, # COUNT; belastning R7 for loop gentage counter

DLOOP:
MOV TL0, # LOW (halvtreds); belastning lav byte til 50ms
MOV TH0, # HIGH (halvtreds); belastning høje byte
MOV TL1, # LOW (halvtreds); belastning lav byte til 50ms
MOV Th1, # HIGH (halvtreds); belastning høje byte

SETB TR0; starte timeren TR0 50 millisekunder
JNB TF0, $; vente TRO flag er sat
CLR TR0; stoppe timeren TR0
CLR TF0; klar TR0 flag smule

SETB TR1; starte timeren TR0 50 millisekunder
JNB TF1, $; vente TRO flag er sat
CLR TR1; stoppe timeren TR0
CLR TR0; klar TR0 flag smule
DJNZ R7, DLOOP, formindske og kontrollere R7 for loop gentage

RET

 
Jeg virkelig appritiate bestræbelserne u tog til at svare på mit spørgsmål.Først og fremmest er der ingen problemer med centrale Debounce.mit problem er, når jeg tænder for systemet (mikro-controller) relæet aktiveres for en anden og derefter slukker, hjælp mig for det.

og også jeg forsøgt at tilføje en 100UF 100 nF kondensator, jeg selv forsøgt at tilføje 10UF tantal
kondensator, en 100NF meget tæt på pin 40 i 89C51 ...... men ingen af dem arbejdede ud.

 
Husk på, at den power-on (reset) alle havne er fyldt med "FFh" hvad betyder det, at relæet vil blive fyldt med energi, så snart du anvende magt til mikro ..
Som den allerførste undervisning i din kode prøve:

CLR P0.2 ..

Hilsen,
IanP

 
Jeg kan ikke kontrollere, om det er et software-problem.Men, du bruger en BC547 transistor, og du behøver ikke sige noget om, hvilken slags relæ du brugte.BC546/BC547/BC548 transistorer gevinst (hfe) er afhængige af, hvor meget strøm falder fra kollektor til emiter.For det første skal basere resistor være lavere 1K eller mindre.Jeg anbefaler, at ændre transistor til en BC337 er mere stabil gevinsten ved høj strøm (op til 800mA).<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" />
 
I dont know PIC, i andre mciros havne er tristate på POR.Hvis sagde, er sandt (havn, er indstillet til 0xff i havn) problem kan løses som:
- Skille circuitity tilsluttet P0.2
- Brug PNP BJT transistoren som - udleder forbundet til 5 V
kollektor til relay, base til P0.2 gennem 4,7 K. En anden ende af relæ forbundet til jorden med parallelle diode (katod til jorden)
- Ændringer i software som - output logisk 0 til at skifte relæ ON i programmethvis havne er indstillet til tristate på POR skal du:
- Cut 10 kOhm tilsluttet mellem P0.2 og 5 V
- Kontakt 10 kOhm til BC547's base og anden ende af modstand til jorden.

Også din nulstille forsinkelse er for lang - t ~ 100 msek.Dont kende hvad der anbefales for PIC, men du kunne falde kondensator værdi til et acceptabelt nulstille forsinkelse.

 
Det er problemet med higgh spænding opført på havnen i 8051.it er bedre at komplimentere ur ud sættes logik.
prøv det,
wth Gluck sabu

 
Check den vedhæftede fil.Dette er det perfekte resultat for dig.Jeg er helt enig med hvad "Artem" sagde.Højre "Ianp"???
Beklager, men du skal logge ind for at se denne vedhæftede fil

 
Hi sush:

Hvor er din afkobling kondensator?

Hope this helps.

 
Tak Pont de Pedra for besvarelse.Jeg prøvede det.ringe værdi kondensator har ikke hjulpet, og hvis jeg bruger en højere værdi, der kommer op en forsinkelse i tænd / sluk af relæ.

 
Jeg mener en 100nF (for eksempel) mellem jorden og Vcc tæt på uControler ben.
Det er (i DIL pakke) pin 20 (-) og ben 40 ( ), ikke i produktion ben.

Regardds.

 

Welcome to EDABoard.com

Sponsor

Back
Top