program w Asemblerze do '51 kto pomoże ??

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Hacker
-
Posty: 9
Rejestracja: 28 paź 2006, 15:24
Lokalizacja: Polska

Post autor: Hacker » 05 lis 2006, 16:16

Witam !!
widze, że trwa zaciekła dyskusja na temat DSM-51.
Co do nauki programowania to najpierw chcem skończyć tą szkołe i zdac egzamin zawodowy. Dopiero potem bede sie douczac m.in. nauczyc sie w koncu programować, ale faktycznie lepiej w C a nie asembler.
pozdrawiam...

Gonzales
-
Posty: 23
Rejestracja: 03 lis 2005, 12:17
Lokalizacja: wieś

Post autor: Gonzales » 06 lis 2006, 15:48

alaris pisze:Jak mozna nauczyc kogos dzialania mikrokontrolera, kiedy trzeba mu tlumaczyc dzialanie dekodera adresow, ukladow GAL i takie tam? To nie jest dobra makieta. Co powiesz takiemu czlowiekowi? Wpisz kod znaku do akumulatora, zeby go wyswietlic na LCD? Niech sam napisze program obslugi LCD, to chociaz bedzie wiedzial jak dziala. Prosciej jest wytlumaszyc protokol sterownika HD44780 niz przegryzac sie przez "dekoder adresow" i nie wiadomo co... Nigdy nie uda Ci sie napisac programu, jezeli nie bedziesz wiedzial jak dziala opoznienie, tu wait_100ms nie pomoze.
Racja. Ja na lekcji zamiast uzywac podprogramow do obslugi lcd wolalem od podstaw naspisac program obslugi wyswietlacza a dopiero potem, jak juz wiedzialem co i jak, stworzyc do tego podprogram, aby nie powtarzac ciagle tych samych sekwencji przy kolejnym wysylaniu danych do lcd. Na szczescie posiadam zestaw AVT2250 i w domu na spokojnie moglem sie tego nauczyc. W szkole byloby to nie mozliwe.
alaris pisze:Po drugie pokaz mi system mikroprocesorowy, w ktorym stosuje sie uklady 80c31 (sic!) i ZEWNETRZNA pamiec EPROM, gdzie? Dzisiejsze mikrokontrolery maja do 512KB pamieci programu typu flash i nikt juz nigdy nie wstawi zewnetrzej pamieci w takim systemie (chyba, ze projektujesz uklad FPGA albo system DSP, ale to inna bajka).
Po trzecie uwazam, ze assembler to relikt przeszlosci.
Z tym akurat na pewno nie moge sie zgodzic. Oczywiscie istnieje dzis duzo nowszych mikrokontrolerow zawierajacych m.in. wewnetrzna pamiec programu, ale nie oznacza to, ze z 8051 nalezy w ogole zrezygnowac. I to, ze asembler to przezytek to tez przesada. Ja generalnie dopiero dzieki asemblerowi zaczalem rozumiec o co chodzi i jak dziala procesor.A zewnetrzna pamiec programu nie jest jeszcze taka straszna.Jak sie nie ma programatora procesorow to uklad taki na poczatek wystarcza. Bascom takiej mozliwosci nie daje. zupelnie nie wiadomo co sie dzieje z procesorem i jak dokladnie dziala. Przykladem niech bedzie polecenie do wysylania tekstu naz lcd. Tu jest podobnie jak z systemem dsm. Tam tez nie wiadomo jak to sie wszystko dzieje. A piszac program w asemblerze, mozna przy okazji dokladnie nauczyc sie obslugi modulu lcd.

alaris
Użytkownik
Posty: 531
Rejestracja: 21 lut 2006, 14:56
Lokalizacja: Gorzow/Poznan

Post autor: alaris » 06 lis 2006, 17:43

Pozwol, Gonzales, ze ustosunkuje sie do ostatniej czesci Twojej wypowiedzi. Nadal twierdze, ze o 8051 nalezy zapomniec i to szybko, tak samo jak o 80C31. Zauwaz, ze mi nie chodzilo o rdzen '51 do ktorego nic nie mam, ale o konkretny uklad. Sprawdz co siedzi w Twoim zestawie AVT2250, nie chce mi sie szukac, ale ide o zaklad, ze nie jest to 8051. Moze to byc 89c2051 czy podony procek ATMELa, pamietaj jednak, ze on ma wewnetrzna pamiec i szereg innych udogodnien nieosiagalnych dla 8051.
Dalej. Bascoma rowniez nie lubie, wlasnie za to, ze nie wiadomo co sie dzieje z procesorem jak i za mala czytelnosc kodu. Poza tym brakuje mu wielu wygonych konstrukcji z jezyka C (np. wskazniki).
I ostatnie: assembler. Byc moze sie zapedzilem i rzeczywiscie jest to doby jezyk nauki, ale tylko na poczatek i pod warunkiem, ze nie uczysz sie pseudoassemblera DSM-51. Zauwaz, ze w tej makiecie Twoj argument nie ma racji bytu, nie polapiesz sie w dzialaniu procesora, gdy trzeba wysterowac pamiec zewnetrzna, dekoder adresow i Bog wie co jeszcze... Z drugiej strony kto Ci powiedzial, ze jezyk C nie daje Ci pelnej kontroli nad sprzetem? Masz bezposredni dostep do rejestrow, ale nie musisz sie zajmowac takimi rzeczami jak petle (wygodne petle w C), mnozenie, dodawanie, obsluga pamieci RAM i szereg innych. Te rzeczy sa juz zrobione i nie ryzykujesz popelnienia bledu w trakcie ich implementacji we wlasnym ukladzie. Moim zdaniem powinienies "wyczuc" mikrokontrolery na poziomie assemblera i szybko przesiasc sie na C (np. SDCC, darmowy kompilator C dla '51).
Pozwol, ze zadam Ci jeszcze jedno pytanie: czy chcialbys napisac jakikolwiek program dla komputera PC w assemblerze? Otoz stopien komplikacji mikrokontrolerow zwieksza sie coraZ bardziej i sytuacja staje sie w nich podobna...

Awatar użytkownika
marcing
Użytkownik
Posty: 868
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 06 lis 2006, 19:48

Hacker pisze:najpierw chcem skończyć tą szkołe i zdac egzamin zawodowy. Dopiero potem bede sie douczac m.in. nauczyc sie w koncu programować, ale faktycznie lepiej w C a nie asembler.
No, z tym "chcem" to tylko gratulować... :(

Życzę jednak, by nie opuściły Ciebie chęci na naukę.

Gonzales
-
Posty: 23
Rejestracja: 03 lis 2005, 12:17
Lokalizacja: wieś

Post autor: Gonzales » 07 lis 2006, 13:34

alaris pisze:Pozwol, Gonzales, ze ustosunkuje sie do ostatniej czesci Twojej wypowiedzi. Nadal twierdze, ze o 8051 nalezy zapomniec i to szybko, tak samo jak o 80C31. Zauwaz, ze mi nie chodzilo o rdzen '51 do ktorego nic nie mam, ale o konkretny uklad. Sprawdz co siedzi w Twoim zestawie AVT2250, nie chce mi sie szukac, ale ide o zaklad, ze nie jest to 8051. Moze to byc 89c2051 czy podony procek ATMELa, pamietaj jednak, ze on ma wewnetrzna pamiec i szereg innych udogodnien nieosiagalnych dla 8051.
Dalej. Bascoma rowniez nie lubie, wlasnie za to, ze nie wiadomo co sie dzieje z procesorem jak i za mala czytelnosc kodu. Poza tym brakuje mu wielu wygonych konstrukcji z jezyka C (np. wskazniki).
I ostatnie: assembler. Byc moze sie zapedzilem i rzeczywiscie jest to doby jezyk nauki, ale tylko na poczatek i pod warunkiem, ze nie uczysz sie pseudoassemblera DSM-51. Zauwaz, ze w tej makiecie Twoj argument nie ma racji bytu, nie polapiesz sie w dzialaniu procesora, gdy trzeba wysterowac pamiec zewnetrzna, dekoder adresow i Bog wie co jeszcze... Z drugiej strony kto Ci powiedzial, ze jezyk C nie daje Ci pelnej kontroli nad sprzetem? Masz bezposredni dostep do rejestrow, ale nie musisz sie zajmowac takimi rzeczami jak petle (wygodne petle w C), mnozenie, dodawanie, obsluga pamieci RAM i szereg innych. Te rzeczy sa juz zrobione i nie ryzykujesz popelnienia bledu w trakcie ich implementacji we wlasnym ukladzie. Moim zdaniem powinienies "wyczuc" mikrokontrolery na poziomie assemblera i szybko przesiasc sie na C (np. SDCC, darmowy kompilator C dla '51).
Pozwol, ze zadam Ci jeszcze jedno pytanie: czy chcialbys napisac jakikolwiek program dla komputera PC w assemblerze? Otoz stopien komplikacji mikrokontrolerow zwieksza sie coraZ bardziej i sytuacja staje sie w nich podobna...
Jesli chodzi o "pseudoassembler" dsm, to ja nie mam z nim nic do czynienia. Na razie zajmuje sie asemblerem dolaczonym do AVT2250 (pasm51.exe). A co do C to ja nic na ten temat nie pisalem. Wiem, ze ma duze mozliwosci, ale przynajmniej na razie zostane przy asemblerze. A poza tym porownanie programowania komputera do mikroprocesora w asemblerze jest nie na miejscu. Komputerow nikt nie programuje w asemblerze, a mikroprocesor jest na tyle prosty, ze bez trudu mozna opanowac programowanie w asemblerze.

ODPOWIEDZ