logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zacząć naukę programowania mikrokontrolerów dla początkujących?

Ernik 02 Kwi 2003 21:11 6453 27
REKLAMA
  • #1 166139
    Ernik
    Poziom 11  
    Posty: 20
    Szukam pomocy w programowaniu mikrokontrolerów słabo znam ten temat, a chciałbym poznać go lepiej tylko niebardzo wiem od czego zacząć i gdzie szukać. :(
  • REKLAMA
  • #2 166174
    scrool
    Poziom 11  
    Posty: 15
    to zalezy do czego chcialbys wykorzystac mikrokontroler.na poczatek najlepszy bedzie uklad 8051 , posaida on 4 8-bitowe porty cyfrowe.kompilator assemblera do tego ukladu znajdziesz w internecie,na przyklad na mojej stronce www.iet.prv.pl . dobra rzecza jest tez symulator tego ukladu, bardzo przydaje sie do symulacji naszych programow zanim wgramy go do ukladu. taki tez mozna znalezc w internecie.

    powodzenia
  • REKLAMA
  • #3 166244
    dioda5
    Poziom 15  
    Posty: 215
    Ocena: 10
    Ja zaczynałem od 89Cxx51 i bascom'a. Kość tania, program z symulacją, programator też łatwo sobie samemu sklepać, a co do zastosowań to można wiele zdziałać, tylko pomysł i cierpliwość. Teraz uzywam 89C51-52-53-55 (DIP40), więcej mogą - cztery porty !!!, i tańsze niż takie same wersje w DIP20.

    Powodzenia.
  • #4 166386
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    A czy Ty kiedykolwiek pisałeś jakieś programy? Jeśli nie to po co zabierasz się za procesory. Taniej, łatwiej i szybciej nauczysz się programowania komputera PC. Jak coś zaczniesz już rozumieć to możesz się przenieść na procesory. Jeśli już umiesz programować to procesory niewiele się różnią od PC jeśli chodzi o samą idee programowania. Róźnią się tylko listą instrukcji i zasobami a to znajdziesz w książkach.
  • #5 166466
    Przemyslaw
    Poziom 28  
    Posty: 1510
    Pomógł: 43
    Ocena: 66
    Nie podoba mi sie elektryku, ze zniechecasz chlopaka do programowania procesorow. Nic nie napisal, ze nie programowal PCta czy Commodorka a Ty od razu: "Po co sie bierzesz"? Nawet jesli nie widzial kompa na oczy to moze czas zaczac? A procesorow i literatury jest full. Chocby internet. Ja zaczynam od PIC16C84.
  • #6 166475
    Konto nie istnieje
    Poziom 1  
  • #7 166478
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Bo, bez urazy dla nikogo taka jest prawda że ludzie zabierają się za programowanie nie mając zielonego pojęcia o pisaniu algorytmów.
    PS książka braci Gałków jest niezła z małą wadą że nie bierze pod uwage najnowszych odmian procesorów atmela a dokładnie ich budowy wewnętrznej, Książka opisuje wyłącznie 51 w całkowicie podstawowej postaci
  • #8 166644
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    Ja natomiast zaczynałem od c64( motorola ) , później było 68hc11, następnie '51 , później PIC, teraz AVR

    Jak na początek polacał bym '51 lub AVR

    51'
    Zalety

    łatwość programowania, duzo tematyki typu : kurs '51 , b.duzo prog. na ten procek

    Wady:

    WYMAGA SKOMPLIKOWANEGO* PROGRAMATORA
    Konstrukcja z początku lat '80, architektura jest juz stara istnieją co prawda lepsze odmiany tego procka typu 2*DPTR, EEPROM, A/D itp ale wtedy rośnie cena


    * trudnośc w stosunku do programatora AVR
    -------------
    AVR
    Zalety
    PROGRAMATOR OPARTY NA KABLU LPT koszt = 5zł ( w porywach ;) )
    Nowa konstrukcja z początku lat '90, dużo "urządzeń" wewnątrz za przyzwoitą cenę, darmowy soft

    Wady:
    Niewiele informacji na temat lekcji programowania w ASM


    Jeśli już podejmiesz decyzje który procek ja osobiści epolecam AVR ( choć by ze względu że do uruchominia prog. na procku wystarczy kabel LPT ), ściągnij dokumentację z netu np: www.atmel.com -> szukaj AVR :)

    znajdz pełną listę instrkcji AVR , jeśli jestes dobry z angielskiego to poczytaj , jeśli nie weź słownik i przetłumacz wszystkie instrukcje ( jak z którąś nie wyjdzie to napisz , tylko nie ze wszystkim musisz sam poracować ;) ) . Jak już przetłumaczysz to szukaj na tych samych stronach źródłowych kodów przyładowych prog. i analizuj je krok po kroku.

    Nie odłączne będzie b.dobra znajomośc sytemu binarnego, szesnastkowego, i przeliczń pomiędzy nimi ( zakładam że dzieśiętny znasz)

    Powodzenia
  • #9 166651
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    To na początek dobre. Zawsze trzeba od czegoś zacząć. Ty zaczynałeś od T89C51RD2?
    Rozwojowo polecam zapoznanie się z rodziną AVR lub PIC (choć PIC sobiście nie lubie).
  • #11 168108
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Mniej niż dal AVR?
    A co trzeba do AVR? One mają programowanie szergowe w systemie i programator w zasadzie ogranicza się do kabelka podłączonego do LPT, nie trzeba nawet tych tranzystorów i oporników z wymienieonej ztrony i można programować różne kontrolery, a nie tylko dwa typy ;-)
  • #12 168233
    Konto nie istnieje
    Poziom 1  
  • #13 168263
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Hmm, cena scalaka mówisz?
    Weź małego AVRa i też będzie niższa. Jeżeli idzie o proste programowanie to 51 z ISP też są choćby *8252 Atmla albo inne Philipsa ;-)
  • REKLAMA
  • #14 168297
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    Trzeba ukrucić ta dyskusję bo mi aż żal

    Najprostrzy progrmator '51 = kabel LPT + źródło 12.5 V

    Najprostrzy progamator AVR ( ISP ) = Tylko kabel LPT !!!!


    Pytanko czy kolega dgajew kiedy kolwiek robił kabelek na AVR bo jeśli nie to już czas !!! Nie oszukujmy się '51 to już przeżytek ludzie urzywają jej bo jest im łatwiej i wygodniej, ale czas iśc z postępem ludzie nowa technologia i to za dobrą cenę.
  • REKLAMA
  • #15 168609
    Konto nie istnieje
    Poziom 1  
  • #16 187896
    gogo4
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 34
    Ja stawiam swoje pierwsze kroki z AVR-ami i Bascomem AVR (zaczynałem kompletnie od zera) i radzę sobie wyśmienicie, nie uważam więc żeby trzeba było zaczynać od programowania kompa jak sugeruje kolega Elektryk (a tak przy okazji w "Elektronice dla Wszystkich" jest prowadzony kurs programowania AVR-ów "mikroprocesorowa ośla łączka" bardzo ciekawa żecz, sam tam często zagłądam). :wink: :wink:
  • #17 188000
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    gogo4 jeżeli Twoja stycznośc z uC ogranicza się do Bascoma to tak naprawdę niewiele wieszo uC, a to z tego powodu, że używając Bascoma taka wiedza nie jest potrzebna...
  • #18 189168
    gogo4
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 34
    Jeżeli chodzi o moją wiedzę na temat uC to nie jest ona oszałamiająca. A co do mojego poprzedniego postu to chciałem tylko zaznaczyć, że, mimo iż zgadzam się z elektrykiem co do tego, że łatwiej jest zacząć od programowania kompa a póżniej przenieść się na procki, to nie uważam jednak, że osoba, która nigdy nie programowała kompa nie może brać się za programowanie procków, a tak można odebrać stwierdzenie "po co się zabierasz za procesory". Moim zdaniem może to (jak juz wcześniej zaznaczył Przemysław) zniechęcić do programowania procesorów. Chciałbym również zaznaczyć, że nie zamierzam mojej "przygody" z prockami ograniczać do bascoma, ale uważam, że jest to dobry sposób na rozpoczęcie nauki programowania.

    Pozdrawiam :bye: :bye:
  • #19 189200
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Do programowania procesorów jednoukładowych konieczne jest odpowiedni sprzęt. Wiem że programator do almeli czy piców jest na kilku elementach ale zawsze trzeba go zbudować. Sam procesor nic nie da (może najwyżej pomigać diodą, albo popiszczeć brzęczykie, więc przydaje się dokupić chociaż jakiś LCD (bo na nim można wyświetlić dużo informacji). Samo podłączenie przycisków czy zewnętrznej pamięci może nastręczać dużo problemów początkującym. To wszystko kosztuje pieniądze i nerwy. Natomiast w PC masz wszystko, ekran na którym można zmieści duuuużo informacji, klawiature, to wszystko już obsłużone od strony sprzętowej, jeśli coś nie działa to tylko może nie działać program. Narzędzi do programowania są tysiące, nie ma potrzeby programowania procesora, można równolegle sledzić program. To znacznie ułatwia nauke, nie mówie że zaczynanie od procesorów jest złe, ale może powodować pewne urazy, że wszystko trzeba napisać od podstaw a jak nie działa to nie wiadomo czego szukać.
  • #20 189235
    sokol19
    Poziom 13  
    Posty: 115
    Ocena: 1
    hmm Ja programuje Atmela 89S8252, porzez Bascoma. Niestety jestem zmuszony sie nauczyc. Wymaga tego nauczyciel z mojej szkoly. Kazdy ma zbudowac jakis ukladzik na ocene. W sumie prosto napisac jakikolwiek program na Bascomie niewiele umiejac. I to jest chyba jego glowna zaleta :)

    PS:Trzeba rzeczywiscie zaczac nauke od "Oslej laczki", najlepiej od pierwszych numerow, ktore sa dostepne w sieci w pdf.
  • #21 189502
    gogo4
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 34
    Elektryk napisał:

    " Do programowania procesorów jednoukładowych konieczne jest odpowiedni sprzęt. Wiem że programator do almeli czy piców jest na kilku elementach ale zawsze trzeba go zbudować. Sam procesor nic nie da (może najwyżej pomigać diodą, albo popiszczeć brzęczykie, więc przydaje się dokupić chociaż jakiś LCD (bo na nim można wyświetlić dużo informacji). Samo podłączenie przycisków czy zewnętrznej pamięci może nastręczać dużo problemów początkującym. To wszystko kosztuje pieniądze i nerwy. Natomiast w PC masz wszystko, ekran na którym można zmieści duuuużo informacji, klawiature, to wszystko już obsłużone od strony sprzętowej, jeśli coś nie działa to tylko może nie działać program. Narzędzi do programowania są tysiące, nie ma potrzeby programowania procesora, można równolegle sledzić program. To znacznie ułatwia nauke, nie mówie że zaczynanie od procesorów jest złe, ale może powodować pewne urazy, że wszystko trzeba napisać od podstaw a jak nie działa to nie wiadomo czego szukać."

    Myślę, że to jest właśnie to czego szukał Ernik. :sm16: :sm16:
  • #22 190448
    Eagle
    Poziom 24  
    Posty: 536
    Pomógł: 57
    Ocena: 31
    elektryk <=> gogo4 ?

    plagiat czy de jeavu ( nie pamiętam jak się to pisze ;)
    ------------------

    A tak a propo gościu wyraźnie się pyta o mikrokontrolery a nie o programowanie PC jeśli chciał by sobie zbudować obrotomierz do auta to co ma wmontować całego PC, czy jeśli chce zbudować termometr to 24 h ma mieć włączonego PC, w sumie można by mu wytłumaczyć że to taki duży mikro / makrokontroler :) ale chyba nie o to chodzi !!!

    Po drugie jak gościu ma się nauczyć obsługiwać klawiaturę, matrycowanie itp. jak w PC dacie mu gotową procedurę zwracjającą gotowy kod ASCII, czy kiedy kowiek pozna co to multiplexowanie wyświetalczy LED ????


    Nie odbierajcie mu radości samodzielnego odkrywania świata mikrokontrolerów !!!

    Pozdrawiam xEagle
  • #23 190455
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Eagle napisał:
    elektryk <=> gogo4 ?
    plagiat czy de jeavu ( nie pamiętam jak się to pisze ;)

    Bardziej plagiat, bo de jeavu to znika po jakimś czasie.
    A co do tematu to Ernik nie przeglądał zalogowany jeszcze odpowiedzi, ani nie wypowiadał się co już umie, jaki ma sprzęt/narzędzia ani jakie preferencje (of course w wyborze procka). Może by tak przestać ciągnąć ten wątek?
  • #24 191069
    gogo4
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 34
    Eagle napisał:
    elektryk <=> gogo4 ?

    plagiat czy de jeavu ( nie pamiętam jak się to pisze ;)
    ------------------


    Dałem plamę, ale liczę na wyrozumiałość Elektryka. Dokonełem pewnych zmian i wygłąda to lepiej.

    Pozdrawiam i przepraszam :oops: :oops: :oops:
  • #25 191225
    gogo4
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 34
    elektryk napisał:
    Może by tak przestać ciągnąć ten wątek?


    Popieram, ale na koniec mam jeszcze prośbę: podpowiedzcie mi jak najprościej zacząć zabawę z programowaniem kompa (fajnie by było napisać jakiś programik na mój komputerek.

    Pozdrowionka :D
  • #26 192971
    dziur
    Poziom 32  
    Posty: 2360
    Pomógł: 49
    Ocena: 8
    kup sobie Programowanie pod windows Ch. Petzot, chyba tak sie pisze, fajna ksiazka, bo opisuje API windozy, jezyk c++ . Do tego załatw visual studio 6.0 i pociagnij z sieci inne opisy funkcji API, co do autora postu to zabawa polega na tym ze wiesz ci chcesz zrobic, wiec najpierw zaprojektuj sobie cos prostego z ledkami np na 90s8515 potem napisz jakis soft, bedziesz miał zabawe. \elektryk ma racje jesli chodzi o to ze na PC masz szybko wizualne efekty swojego działania, a na AVR no to napiszesz soft, zaprogramujesz układ i co? nic!
  • #27 198820
    Ernik
    Poziom 11  
    Posty: 20
    Witam wszystkich i pozdrawiam nistety nie mogę sobie pozwolić na częste zaglądanie tutaj bo jade na modemie. Powracając do tematu dziękuje wszystkim za informacje, obecnie "walcze" z AT89C2051 używam do programowania BASCOM-a pisałem różne proste programy i sprawdzałem je tylko w symulatorze z BASCOM-a działały poprawnie,a nie programowałem procka bo niemam programatora, teraz mam problem bo potrzebuje żeby mój PC nawiązał łączność z prockiem. Napisałem program i jak wcześniej sprawdzałem w symulatorze oczywiście program zachowywał się tak jak chciałem. Zaprogramowano mi procka ty programem i okazało się że nie odbiera żadnych sygnałów z portu RS 232 i niewiem dlaczego

    Dim X As Byte

    Do
    'jakaś pętelka w której się wszystko dzieje

    X= Inkey P3.0

    Select Case X
    Case 56 :
    Set P3.1
    Case 54 :
    Set P3.2
    End Select
    Loop
    End
    Chodzi oto żeby odebrał znaki z klawiatury i 8 z klawiatury to 56 i a 6 to 54 i przytym symulator działa
    I tak to w skrucie wygląda. Ale moja wiedza jest słaba więc licze się z tym że program jest zły, być może poprostu on niema prama działać?
  • #28 209000
    Ernik
    Poziom 11  
    Posty: 20
    Ceść dlaczego nikt nie pisze nic . Program który wyżejnapisałem działał cały czas w moim ma on sterować samochodem zdalnym ten u góry jest niekompletny bo niechciało mi się pisać i brak mu najważniejszych elementów takich jak baud,cristal . Podniosłem alarm dlatego że nie reagował wyświetlacz który jest podłączony i ma pokazywać działanie nadajnika, a dlatego nie reagował bo nie napisałem opóźnienia "waitms" wystarczy 25ms i działa poprawnie teraz pisze program do sterowania . Musze go sterować z komputera. Jak byście pisali program do sterowania samochodem chodzi mi o sam wygląd programubo co chodzi o takie żeczy to nie jestem malaż artysta :)

    Dziękuje wszystkim:::::::::::Ernik.

Podsumowanie tematu

✨ Dyskusja dotyczy rozpoczęcia nauki programowania mikrokontrolerów dla początkujących. Zalecane jest rozpoczęcie od popularnych i łatwo dostępnych układów, takich jak rodzina 8051 (np. AT89C51, AT89C2051) oraz mikrokontrolery AVR, które oferują prostsze programatory oparte na kablu LPT i darmowe oprogramowanie. Wskazano, że 8051 ma rozbudowaną literaturę i symulatory, ale wymaga bardziej skomplikowanego programatora, natomiast AVR jest nowocześniejszy, tańszy w programowaniu i posiada wbudowane peryferia. Wspomniano także o PIC jako alternatywie, choć mniej popularnej w dyskusji. Podkreślono znaczenie nauki algorytmiki i podstaw programowania, sugerując, że początkujący mogą zacząć od programowania PC, by zrozumieć podstawy, ale nie jest to konieczne. Wskazano na dostępność kursów i książek, np. "książka braci Gałków" o 8051 oraz kurs "mikroprocesorowa ośla łączka" w "Elektronice dla Wszystkich". Poruszono kwestie sprzętowe, takie jak konieczność budowy lub zakupu programatora, podłączenia wyświetlaczy LCD, przycisków i innych elementów peryferyjnych, co może być wyzwaniem dla początkujących. Autor tematu używa mikrokontrolera AT89C2051 i Bascoma do pisania programów, testując je w symulatorze, ale napotyka problemy z komunikacją przez port RS232, które wynikają m.in. z braku opóźnień w kodzie. Dyskusja zawiera także porady dotyczące prostych programów i projektów, które pomagają w nauce, np. sterowanie diodami LED czy budowa prostych układów. Wskazano na różnice w architekturze i programowaniu mikrokontrolerów oraz na dostępność dokumentacji i przykładów w internecie.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA