Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Procek dla początkującego elektronika

Borys85 12 Jun 2004 13:04 5849 31
Texa Poland
  • #1
    Borys85
    Level 19  
    ]Hi! :D
    Chiałem się zaprać za jakiś mikrokontroler. Czy jako początkujący mogę się zabrać za jakiś produkt Atmela :?: (Przy okazji jaka jest różnica między 89Sxx, a 89Cxx). Czy można je programować w C++ :idea: :?: Bardzo by mi na tym zależało. :) Z góry dzięki za odp. Borys85[/color]
  • Texa Poland
  • #2
    h-doc
    Level 27  
    eh, ile razy można wałkować ten sam temat?
    C++ raczej odpada, większość producentów kompilatorów robi bardziej lub mniej zgodne z ANSI.
    Na początek seria AT89Cxx wystarczy - są w miarę tanie i dostępne. Zresztą jak chcesz programować w C, to raczej weź jakiegoś RISC-a, to chyba trochę bardziej przyszłościowe rozwiązanie.
  • #3
    noody2051
    Level 13  
    hehe
    ja polecam 90S2313 a to z tego wzgledu ze juz sam programtor jest latwiejszy w wykonaniu i tanszy a przeciez to maja byc pierwsze kroczki w elektronice :!: do tego bascom i kurs z edw programowanie ktory gdzies jest tu na elektrodzie i bedzie tak akurat :)
  • #4
    h-doc
    Level 27  
    Kolega raczej chce pracować w C a nie w Basicu. A może zestaw AVR + AVR Studio + AVR GCC + programator STK200?
    Oprogramowanie jest darmowe, a programator można zrobić na drutach.
  • #5
    Kelas
    Level 18  
    Ja skoro moge to odpowiem na jedno pytanie
    Roznica miedzy C51 a S51 jest mozliwosc programowania ISP (in system programing) w przypadku serii S. S ma chyba jeszcze dodanego Watchdoga ale nie jestem pewien. O innych roznicach nie wiem, niech mnie ktos uzupelni w razie czego :oops:

    Skoro kolega pytal o '51 wiec moge polecic 89S51, nie trzeba zadnych "duzych" rownoleglych programatorow. Wystarczy kilka elementow biernych i programator AEC do ISP gotowy. Do tego oczywiscie rezonator kwarcowy, kondensatory i to co mikrokontroler potrzebuje do prawidlowej pracy.

    Pozdrawiam!
  • #6
    h-doc
    Level 27  
    Zgadzam się, że nie warto już chyba inwestować w procki programowane równolegle. Chyba, że szykuje się większą produkcję (procki z ISP są zazwyczaj trochę droższe niż ich odpowiedniki bez tej możliwości). Zresztą ostatnio nie tylko w mikrokontrolerach, ale również np. w układach PLD również ISP staje się coraz bardziej popularne.

    Zanim wybierzesz już konkretną rodzinę, zorientuj się, jakie środowiska programistyczne będziesz miał do dyspozycji. Sam napalałem się już na różne proce, ale jak przychodziło do zorganizowania IDE, to sprawa już nie wyglądała tak różowo.
  • #7
    Borys85
    Level 19  
    Hmm... Z tą różnicą to chyba tak nie jest... Gdzies w katalogach znalazłem AT89C55: "zawiera 20 Kbyte ISp Flash-EPROM". Reasumując: nadal nie znam różnicy??? :x Ktoś wie??? 8)
  • #8
    GienekS
    Level 32  
    Ściągnij sobie parę *.pdf z Atmela i sam zobaczysz różnice w tych prockach. Nie musisz się zbytnio na początek zagłębiać w te pliki. Wszystko co najważniejsze jest na pierwszej stronie.
  • #9
    Borys85
    Level 19  
    Dzięki... Teraz mam pytanie: Mam dwa schematy programatora dla AT89Sxx: Jeden z PE 4/99 (w sumie 6 scalaków), drugi 8 rezystorów i ULN 2803 (darlinktony). Chciałbym poznać opinię osoby, która korzystała z obu (ewentualnie z jednego).
  • #10
    airnox
    Level 24  
    Witam! Jestem ciekaw jak można zrobić i z jakich części programator do '51. Prosiłbym o schemat.
  • Texa Poland
  • #11
    ACULA
    Level 34  
    Najpierw zacznij od szukaj bo z takim podejsciem to pewnie spalisz kilka procków i znajdziesz nowe hobby
    magiczne słowo: AEC
  • #12
    PJS
    Level 15  
    Najprostszy programator mozna zrobic dla Atmela 89S8252. "Na sieci" jest ich mnóstwo (darmowe oprogramowanie itp.) a sam programator składa sie w najprostszej wersji z wtyczki LPT, kwarcu, 2 kondnsatorow 33pF. kabelka i układu zasilania. Bardziej rozbudowana zawiera bufory zabezpieczajace port drukarki ;-)
    Aha, według mnie 89S8252 to jeden z najlepszych dla początkującego elektronika procków: 8k Flash'a, 2k wewn. EEPROMu, 256 RAM, 32 I/O i oczywiście możliwość programowania w układzie (ISP).
  • #13
    ACULA
    Level 34  
    PJS-> s51 kosztuje 7,5zł co w porównaniu z 8252 daje mu wielką przewagę dla pocżatkującego palacza procków ;)
  • #14
    airnox
    Level 24  
    A czy AT89C2051 jest dobry jak na początek??
  • #15
    ACULA
    Level 34  
    Tak, ale będziesz miał problemy z programowaniem przez LPT, chociaz niekoniecznie. Polecałbym dodać 2zł na s51.
  • #16
    airnox
    Level 24  
    To są dwa modele 89c2051 i 89s2051 ?? I czym się różnią 89c2051 od 89c51??
  • #17
    ACULA
    Level 34  
    hakerek1989 wrote:
    To są dwa modele 89c2051 i 89s2051 ?? I czym się różnią 89c2051 od 89c51??

    nie ma 89s2051 ;)
    2051 i 51 różnią się ilością portów i drobnymi szczegółami których nie wykorzystasz na początku, nawet nie zauważysz
    s różni sie od c tym że dodatkowo ma ISP-możliwość programowania w systemie bez potrzeby wyciągania procka
  • #18
    airnox
    Level 24  
    Mam jeszcze jedno pytanko. Czy s51 można zaprogramować programatorem który proponuje Nemo??
  • #19
    Kelas
    Level 18  
    Tamten programator jest chyba tylko do malych 89Cx051 o ile sie nie myle. Wiec 89S51 chyba nie programuje.
  • #20
    airnox
    Level 24  
    A w czym można programować s51??
    Chodzi mi o język ,program.
  • #21
    ACULA
    Level 34  
    C, asembler, bascom, każdy program który jest wymieniony w dziale uC
  • #22
    Borys85
    Level 19  
    1)Jeśli chodzi o C lub asembler to wiem. A czym charakteryzuje się bascom?

    2) Czy ktoś używa programatora Wille z adapterem. Chciałbym dowiedzieć sie czy są z nim problemy. Dzięki.
  • #23
    noody2051
    Level 13  
    bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem :roll: >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane komendy <basic :) > i program staje sie bardziej przejzysty i zrozumialy dla poczatkujacego
    np: <z polskiego helpa>

    Przykład:


    'Na początku musisz skonfigurować pracę licznika Timer0, by pracował
    'jako licznik lub czasomierz

    'Skonfigurujemy go sobie jako licznik. Na początek
    'Musisz także określić czy zmiana stanu licznika ma się odbywać po
    'stwierdzeniu narastającego lub opadającego zbocza

    Config Timer0 = Counter , Edge = Rising
    'Config Timer0 = Counter , Edge = falling
    'usuń komentarz w powyższej linii by zmianna następowała wraz z

    'opadającym zboczem.

    'By odczytać lub zapisać dane do licznika użyjemy specjalnej zmiennej
    'systemowej
    'najpierw ją zerujemy
    Tcnt0 = 0

    Do
    Print Tcnt0
    Loop Until Tcnt0 >= 10
    'po zliczeniu 10 impulsów program przestanie drukować stan licznika


    'Teraz skonfigurujmy go jako czasomierz

    'Sygnałem wejściowym w tym przypadku będzie przebieg zegarowy
    'podzielony w preskalerze przez 8,64,256 lub 1024

    'parametr Prescale akceptuje tylko poniższe dane: 1,8,64,256 lub 1024
    Config Timer0 = Timer , Prescale = 1

    'Licznik jest teraz uruchamiany automatycznie
    'możesz go jednak zatrzymać w dowolnej chwili, o tak:
    Stop Timer0

    'Teraz licznik jest zatrzymany
    'by wznowić działanie licznika użyjemy:
    Start Timer0

    'znowu możemy odczytywać zawartość licznika
    Print Tcnt0

    'kiedy licznik się przepełni, ustawiona zostanie flaga TOV0 w
    'rejestrze TIFR (będzie miała stan 1 logicznej)

    'Można użyć poniższej instrukcji do wywoływania procedury obsługi przerwania licznika.
    Set Tifr.1


    'Poniższy fragment pokaże jak używać licznika TIMER0 do generowania
    'przerwań zegarowych
    'Fragment ten jest umieszczony w bloku komentarza '( ')

    '(

    'konfigurujemy licznik by używał podzielnika 1024

    Config Timer0 = Timer , Prescale = 1024

    'Define the ISR handler
    On Ovf0 Tim0_Isr
    'możesz także użyć TIMER0 jako OVF0, jest to to samo

    Do
    'twój program będzie tutaj

    Loop

    'poniższy kod będzie wykonany gdy licznik się przepełni
    Tim0_Isr:
    Print "*";
    Return

    ')

    End
  • #24
    airnox
    Level 24  
    Ja wolę programować procka w C. Nie wiem jednak gdzie można znaleźć kursu programowania w C na '51.
  • #26
    h-doc
    Level 27  
    na przykład w Elektronice Praktycznej.
  • #27
    airnox
    Level 24  
    Z jakiego działu ściągnąć ten kurs??
  • #28
    airnox
    Level 24  
    Jak wgrywać program napisany w C do uP s51 :?: Chodzi o program.
  • #29
    ACULA
    Level 34  
    Najpierw musisz skompilować do pliku hex lub bin a dopiero potem wgrywać w procesor
  • #30
    airnox
    Level 24  
    Czy posiada ktoś plik *.dat do obsługi s51 do Bascoma :?: