programowanie 89c2051 - poczatki

Nov 28, 2006 7 Replies

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


Dodaj opó¼nienie, bo nie zauwa¿ysz zapalania i gaszenia diodki :)

PacMan snipped-for-privacy@TNIJ.poczta.onet.pl> napisa³(a):

Tak jak napisa³ Piotr brak opó¼nienia - chyba, ¿e ma szybko mrygaæ ;) 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

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.

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

PacMan snipped-for-privacy@TNIJ.poczta.onet.pl> napisa³(a):

no to u¿yj poleceñ debounce i toggle

JJJK

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" snipped-for-privacy@TNIJ.poczta.onet.pl> napisa³ w wiadomo¶ci news:ekh1g2$m30$ snipped-for-privacy@news.onet.pl...

wlasnie nie ma polecenia toggle w bascomie 51...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required