RTV forum PL | NewsGroups PL

Sprawdzenie działania programu na 89C2051 do włączania/wyłączania diody LED

programowanie 89c2051 - poczatki

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Sprawdzenie działania programu na 89C2051 do włączania/wyłączania diody LED

PacMan
Guest

Tue Nov 28, 2006 11:02 am   



Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.

P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0

Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End

Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam

JJJK
Guest

Tue Nov 28, 2006 12:56 pm   



PacMan <kamilgrodz@TNIJ.poczta.onet.pl> napisał(a):
Quote:
Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End
Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam

Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać Wink
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK

PacMan
Guest

Tue Nov 28, 2006 1:24 pm   



Quote:

Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać Wink
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK
przepraszam, moj blad w opisie - chodzilo mi o to aby ta diodke zapalac i

gasic jednym przyciskiem podlaczonym do portu P3.0, tzn raz wcisne przycisk
i diodka sie zapali, drugi raz przycisne - diodka zgasnie.

Darek
Guest

Tue Nov 28, 2006 2:15 pm   



Quote:
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End

W momencie załączenia przycisku powstają odbicia
na przełączniku, co powoduje zinterpretowanie
przez uC wielu załączeń. Coś takiego bardzo ładnie można
odfiltrować również pętlą opóźniającą, może nie koniecznie 250ms
a powiedzmy 20ms.

Pozdrawiam
Darek

JJJK
Guest

Tue Nov 28, 2006 2:35 pm   



PacMan <kamilgrodz@TNIJ.poczta.onet.pl> napisał(a):
Quote:
Tak jak napisał Piotr brak opóźnienia - chyba, że ma szybko mrygać Wink
Ale brakuje też jednego end if.
Pewnie dlatego, że napisałeś ten kod nieczytelnie.
Napisz to lepiej w takiej formie:
P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0
Do
waitms 250 '>>>>> przykładowe opóźnienie
If P3.0 = 1 Then
If P1.0 = 0 Then
P1.0 = 1
Else
P1.0 = 0
EndIf '>>>>> brakujący EndIf
End If
Loop
End
---
JJJK
przepraszam, moj blad w opisie - chodzilo mi o to aby ta diodke zapalac i
gasic jednym przyciskiem podlaczonym do portu P3.0, tzn raz wcisne
przycisk i diodka sie zapali, drugi raz przycisne - diodka zgasnie.

no to użyj poleceń debounce i toggle

JJJK

AlexY
Guest

Wed Nov 29, 2006 10:58 pm   



Użytkownik Robgold napisał:

Quote:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc

port ktory ma byc wejsciem musi miec stan wysoki


--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/

pawelo
Guest

Wed Nov 29, 2006 11:27 pm   



witam moje propozycje :
1)
Led1 Alias P1.0
S1 Alias P1.1
Do
Debounce S1 , 0 , Pr1
Loop

Pr1:
P1.0 = Not P1.0
Return


2)
Led2 Alias P1.2
S2 Alias P1.3

Set Led2
If S2 = 0 Then
Waitms 25
If S1 = 0 Then
Led2 = Not Led2
Bitwait S2 , Set
End If
End If


Użytkownik "PacMan" <kamilgrodz@TNIJ.poczta.onet.pl> napisał w wiadomości
news:ekh1g2$m30$1@news.onet.pl...
Quote:
Witam, czy taki programik zadziala na 89c2051? Chodzi o prosty programik
zapalajacy i gaszacy diodke ewentualnie wl/wyl jakies urzadzenie.

P1 = &B11111111
P1 = 0
P3 = &B11111100
P3 = 0

Do
If P3.0 = 1 Then
If P1.0 = 0 Then P1.0 = 1 Else P1.0 = 0
End If
Loop
End

Prosze o wszelkie uwagi.
Dzieki
Pozdrawiam


PacMan
Guest

Thu Nov 30, 2006 7:32 am   



Quote:

Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja
wtedy pullup do Vcc

Nie jestem tylko pewny czy w Bascomie dla 51 jest polecenie toggle,
napewno jest w AVR
Jesli nie zadziala to wstaw zamiast toggle
P1.0= not P1.0 w ten sposob P1.0 zawsze zmieni stan na przeciwny.



wlasnie nie ma polecenia toggle w bascomie 51...


Robgold
Guest

Thu Nov 30, 2006 1:25 pm   



Użytkownik "AlexY" <alexy@irc.-cut_this-.pl> napisał w wiadomości news:ekkvqe$m4q$1@atlantis.news.tpi.pl...
Quote:
Użytkownik Robgold napisał:

Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc

port ktory ma byc wejsciem musi miec stan wysoki

Wlasnie to mu napisalem Smile

Sprawdza sie stan dla Px.x=0

AlexY
Guest

Thu Nov 30, 2006 11:16 pm   



Użytkownik Robgold napisał:

Quote:
Jesli uzywasz jakiegos portu jako wejscie to rob dla Px.x =0 bo porty maja wtedy pullup do Vcc

port ktory ma byc wejsciem musi miec stan wysoki


Wlasnie to mu napisalem Smile
Sprawdza sie stan dla Px.x=0

zatem nie rozumiem tego zapisu
po mojemu jest to
clr px.x
:)

--
AlexY
http://yisse.neostrada.pl/spam.txt
http://ldhp715.immt.pwr.wroc.pl/~sapi/sieci/netykieta/

elektroda NewsGroups Forum Index - Elektronika Polska - Sprawdzenie działania programu na 89C2051 do włączania/wyłączania diody LED

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map