Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Jak użyć dwóch portów???

rafuls2
-
-
Posty: 3
Rejestracja: 3 lis 2007, o 19:37
Lokalizacja: rzemień

Jak użyć dwóch portów???

Postautor: rafuls2 » 3 lis 2007, o 19:49

Jestem początkującym bascomowcem dlatego proszę o wyrozumiałość.W ramach ćwiczeń postanowiłem zbudować zegar nixii napisać do niego program. Sterowanie katod odbywa się bezpośrednio z portów procesora (oczywiście poprzez tranzystory) wykorzystuję do tego portc i porta w atmedze. i tu mój problem steruję portem c w celu wyświetlenia cyfr od 1 do 8 i dalej nie wiem jak napisać warunek aby teraz porta wyświetlił mi cyfry 9 i 0. Bardzo proszę o pomoc bo ja już nie mam pomysłu jak to zrobić. oto fragment programu:
kod:

Kod: Zaznacz cały

Incr Anoda If Anoda = 7 Then Anoda = 0 Portd = &B0000000 Select Case Anoda Case 0: 'sekundy Portc = Lookup(sek , Tabela) 'cyfry od 1 do 8 Portd.0 = 1 'anoda Case 1: Portc = Lookup(dzsek , Tabela) Portd.1 = 1 Case 2: Portc = Lookup(minuty , Tabela) Portd.2 = 1 Case 3: Portc = Lookup(dzmin , Tabela) Portd.3 = 1 Case 4: Portc = Lookup(godz , Tabela) Portd.4 = 1 Case 5: Portc = Lookup(dzgodz , Tabela) Portd.5 = 1 End Select Return Tabela: Data , 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 0
Edit: prosze uzywac znacznika

Kod: Zaznacz cały

[/color]
Ostatnio zmieniony 3 lis 2007, o 22:45 przez rafuls2, łącznie zmieniany 1 raz.

szymel
-
-
Posty: 212
Rejestracja: 16 sty 2005, o 16:42
Lokalizacja: Włocławek

Re: Jak użyć dwóch portów???

Postautor: szymel » 4 lis 2007, o 00:00

Jestem początkującym bascomowcem...
Ale jest Ci zapewne wiadomym , że mikrokontroler potrafi liczyć :?:
Gdybyś mógł zmienić połączenia , na takie jak w opisie , to program stanie sie śmiesznie prosty.

Kod: Zaznacz cały

Dim Sek As Byte , Dzsek As Byte , Minuty As Byte , Dzmin As Byte , Godz As Byte , Dzgodz As Byte , Anoda As Byte Dim Czas(6) As Byte At Sek Overlay Dim Cyfra As Byte Dim Porty As Word 'dane tymczasowe porta i portc 'Opis podłączeń 'Katody cyfr '0 - > Portc.0 '1 - > Portc.1 '2 - > Portc.2 '3 - > Portc.3 '4 - > Portc.4 '5 - > Portc.5 '6 - > Portc.6 '7 - > Portc.7 '8 - > Porta.0 '9 - > Porta.1 'Anody lamp 'Sek - > Porta.2 'Dzsek - > Porta.3 'Mimuty - > Porta.4 'Dzmin - > Porta.5 'Godz - > Porta.6 'Dzgodz - > Porta.7 'Dane testowe 'Sek = 9 'Dzsek = 5 'Minuty = 8 'Dzmin = 4 'Godz = 0 'Dzgodz = 1 'Anoda = 15 '... Incr Anoda If Anoda = 16 Then Anoda = 10 Porta = 0 Portc = 0 Porty = 0 Cyfra = Czas(anoda - 9) Set Porty.cyfra Set Porty.anoda Porta = High(porty) Portc = Low(porty) Return
Piotrek

rafuls2
-
-
Posty: 3
Rejestracja: 3 lis 2007, o 19:37
Lokalizacja: rzemień

Postautor: rafuls2 » 4 lis 2007, o 13:57

Bardzo dziękuję koledze że mnie naprowadził na właściwy tok myślenia. Pozdrawiam

gregoorr
-
-
Posty: 4
Rejestracja: 19 cze 2007, o 21:01
Lokalizacja: Brodnica

Postautor: gregoorr » 7 lut 2008, o 21:42

Jest to jakiś pomysł. A nie lepiej zastosować słynny 74141? Tych portów z czasem ci zabraknie. Zamiast 10 potrzeba 4, zawsze to jakaś oszczędność.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 31 gości