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

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

Post autor: Hacker » 03 lis 2006, 14:52

Witam !
Mam do napisania program w Asemblerze dla mikrokontrolera 8051, który znajduje sie w zestawie do ćwiczeń DSM-51.
Program ma działać w następujący sposób:
1 zapala diodę na 5 sekund
2 gasi diodę
3 włącza brzęczyk na 1 sekunde
4 wyłącza brzęczyk
Program ma działać w pętli i narysować algorytm działania tego programu.
Bardzo proszę o pomoc i czekam na odpowiedzi.
Pozdrawiam...

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

Post autor: alaris » 03 lis 2006, 15:44

Polecam P&P Galka, specjalny podrecznik dla tego zestawu. Wszystko tam jest, trzeba tylko poczytac, pomyslec i zrobic... Ja wiem, ze DSM-51 to poroniona makieta, glupia, beznadziejna itp... dlatego nie masz co liczyc, ze KTOS to zrobi...
Problem, ktory stawiasz nalezy do podstawowych...

Awatar użytkownika
brzozi
Użytkownik
Posty: 297
Rejestracja: 02 sie 2005, 22:11
Lokalizacja: Trzebinia
Kontakt:

Post autor: brzozi » 03 lis 2006, 16:15

Na marginesie nie wiem czy w tej książce nie ma przypadkiem niemal gotowego rozwiązania. Co do opinii o DSM to się zgadzam w 100%

Hacker
-
Posty: 9
Rejestracja: 28 paź 2006, 15:24
Lokalizacja: Polska

Post autor: Hacker » 03 lis 2006, 16:22

Tylko jest mały problem bo zestaw jest w szkole a program mam napisac w domu i nie mam tej ksiazki...pozdrawiam...

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

Post autor: alaris » 03 lis 2006, 16:26

Ja tez nie mam DSM-51 w domu (ponad 3000 pln wyrzucic w bloto? Nieeeeeee!). Wczytaj sie w podrecznik (biblioteka, pozyczyc od kolegi, ksero), napisz na brudno, przetestuj na poczatku lekcji i nanies ewentualne poprawki. Inne rozwiazanie to robic cwiczenia szybko i sprawnie, a pozostaly czas z lekcji wykorzystac na robienie pracy domowej. Jezeli masz ambicje nauczyc sie programowania '51 to zainwestuj w jakas ksiazke z BTC. Praktyka czyni mistrza...
Poza tym sa, prawdopodobnie, do znalezienia w internecie symulatory tego eksponatu, yyy, tej makiety :)

Awatar użytkownika
brzozi
Użytkownik
Posty: 297
Rejestracja: 02 sie 2005, 22:11
Lokalizacja: Trzebinia
Kontakt:

Post autor: brzozi » 03 lis 2006, 16:48

Nie ma problemu jest emulator Jagoda daj adres na pw to podeślę.

Hacker
-
Posty: 9
Rejestracja: 28 paź 2006, 15:24
Lokalizacja: Polska

Post autor: Hacker » 03 lis 2006, 17:04

Potrzebuje to miec napisane na wtorek, a kasiazki szukac nie mam czasu niestety.
pozdrawiam...

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

Post autor: alaris » 03 lis 2006, 19:54

No coz... Na brak checi nic juz nie poradze. Prawda jest taka, ze prawdopodobienstwo znalezienia czlowieka zakochanego w DSM-51, ktory z radoscia napisze za Ciebie program jest znikome. Jezeli chcesz miec to zadanie, to niestety musisz sie za nie zabrac sam, najlepiej jak najszybciej, bo im mniej czasu zostaje, tym trudniej jest napisac cokolwiek (ach ta presja czasu...).
Na zachete podpowiem Ci MNIEJ WIECEJ jak sie za to zabrac. DSMa zaliczylem z dwa, trzy lata temu, wiec moge sie nieco rozmijac z prawda... Dalej czytasz na wlasne ryzyko. :)
Po pierwsze diode TEST zapala sie poprzez wystawienie stanu niskiego na port (w podreczniku znajdz wlasciwy port). Do zapalania sluza rozkazy SETB i CLR. Jest tez instrukcja generujaca opoznienie, wystarczy podac jego dlugosc.
Wlaczenie brzeczyka i jego wylaczenie to tez kwestia jednego portu. Czyli program powienien miec postac:

Kod: Zaznacz cały

ETYKIETA:
CLR PX.X
wait 5 sekund
SETB PX.X
CLR PX.X
wait 1 sekunda
SETB PX.X
ajmp ETYKIETA
Zostalo Ci praktycznie sprawdzic jakie do jakich portow podlaczono te urzadzenia, zweryfikowac poprawnosc rozkazu WAIT i zobaczyc jak sie dodaje etykiety.

Awatar użytkownika
brzozi
Użytkownik
Posty: 297
Rejestracja: 02 sie 2005, 22:11
Lokalizacja: Trzebinia
Kontakt:

Post autor: brzozi » 04 lis 2006, 8:32

Ale tam zakochany od razu :) CPL, DELAY_100ms i dowolny sposób ustawiania lini bodaj 5 i 7 na porcie działające w pętli tyle roboty. Do tego standardowy dla DSM51 początek. Na marginesie chodzą plotki że tegoroczny egzamin w zawodzie technik elektronik bedzie sie opierał na DSM przykre prawda ?

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

Post autor: alaris » 04 lis 2006, 11:57

brzozi pisze:Na marginesie chodzą plotki że tegoroczny egzamin w zawodzie technik elektronik bedzie sie opierał na DSM przykre prawda ?
Skoro szkoly kupily kilka tych makiet i kazda z nich kosztuje ponad 3000 pln to byloby glupio, zeby ich nie bylo na egzaminie. Masz racje, to bardzo smutne. Za te 3000 pln mozna kupic oscyloskop, generator i bardzo dobra makiete w BTC np. dla ARM (ktore sa aktualnie trendem rynkowym). Nie podejrzewam nauczycieli o rownie glupie marnotrawienie pieniedzy, ale Ci na gorze powinni sie opamietac :sad:

Awatar użytkownika
brzozi
Użytkownik
Posty: 297
Rejestracja: 02 sie 2005, 22:11
Lokalizacja: Trzebinia
Kontakt:

Post autor: brzozi » 04 lis 2006, 12:49

Tylko 2000zł :), co do reszty się zgadzam. Dużo lepsze są zestawy z AVT gdzie można łączyc poszczególne bloki funkcyjne. Jedynym plusem DSM i jednocześnie wadą jest to że jest dobry do uczenia podstaw- są tam gotowe podprogramy, wszystkie urządzenia wejścia/wyjścia a i tak są duże problemy w tłumaczeniu jak to działa.

Hacker
-
Posty: 9
Rejestracja: 28 paź 2006, 15:24
Lokalizacja: Polska

Post autor: Hacker » 04 lis 2006, 14:56

Witam !!
Na początek bardzo Wam dziękuje za zainteresowanie moim problemem :grin:
Szczeże mówiąc to chciałbym sie tego nauczyć, ale jest tyle spraw na głowie, że nie ma kiedy do tego porządnie przysiąść.
Jeżeli chodzi i program to tak:
do dyspozycji są 4 ośmiobitowe porty tj. P0 P1 P2 i P3.
w tym systemie DSM-51 do sterowania są porty P1 i kilka linii portu P3
dioda jest podłączona do 7 linii w porcie P1, także brzęczyk może być podłączony do portu P3.
Dzięki Wam program ten juz mniej więcej załapałem i wydaje mnie się, że jest bardzo prosty. Zauważyłem, że wpisuje się dane polecenie i numer portu, także nic skomplikowanego :mrgreen:
pozdrawiam...

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

Post autor: alaris » 05 lis 2006, 0:48

brzozi pisze:Jedynym plusem DSM i jednocześnie wadą jest to że jest dobry do uczenia podstaw- są tam gotowe podprogramy(...)
Nie zgadzam sie w calej rozciaglosci! :???: 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.
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. Mozna czasem stosowac wstawki assemblera, ale nauka programowania powinna zaczynac sie od C albo Bascoma (nie lubie tego ostatniego). Dopiero gdy budujesz cos wyjatkowego mozesz siegac po assembler. Nie buduje sie dzis programow z assemblerem, bo jest duzo pamieci programu i zlozonosc oprogramowania ma taka skale, ze napisanie czegos sensownego w assemblerze jest niemozliwe. A nawet gdybysmy uparli sie uczyc assemblera to nie w DSM-51, tam nie mozna sie tego nauczyc bez zaglebiania sie w abstrakcyjnosc budowy tego eksponatu.
Nie atakuje Ciebie, tylko dobitnie wyrazam swoja niechec do czegos, co wciskaja nam ludzie nieodpowiedzialni i idacy na latwizne. Ja wiem, masz tu ksiazke i sie ucz... To takie proste...

PS. Powiadasz 2000, tak? Zapytam: kiedy on tyle kosztowal? Wedlug moich informacji (nauczyciel z mojego bylego technikum) kosztuje ponad 3000 i zakupila go "unia" :roll:

PPS. Hacker, jak chcesz sie nauczyc Programowac, a nie programowac, to rob to, czego chce od Ciebie na zajeciach, ale nie poprzestawaj na tym. Na poczatke SAM zaprojektuj urzadzenie do sterowania np. 10 LEDami - na zasadzie wlacz, wylacz. Wybierz jakis mikrokontroler (np. 89C2051, 89S2051, ATtiny2313) i napisz pare efektow dla tych diod, na poczatek miganie. To trudne zadanie na poczatek, ale gdy je wykonasz otworza Ci sie oczy i drzwi do swiata mikrokontrolerow. Gdybys mial jakies konkretne problemy moge Ci pomoc, ale nie na zasadzie "zrob za mnie". (Program dla DSM bedzie prosty :))

Awatar użytkownika
brzozi
Użytkownik
Posty: 297
Rejestracja: 02 sie 2005, 22:11
Lokalizacja: Trzebinia
Kontakt:

Post autor: brzozi » 05 lis 2006, 8:34

Od końca cena:
DSM-51 Dydaktyczny System Mikroprocesorowy + zasilacz TATAREK 6WZS 9/500 1952,00zł ze strony producenta http://www.micromade.pl/?p=cennik. Moduł DSM51 pozwala na prowadzenie zajęć z pracowni elektroniczneuj w szkole zgodnie z podstawą programową czyli pozwala opanować zakres materiału określony przez ministerstwo. Na marginesie głównym celem tej zabawy jest nauczenie podstaw asemblera z naciskiem na słowo podstawy, budowania algorytmów i pokazania możliwości systemu mikroprocesorowego, na ten zakrest materiału jest przeznaczana część zajęć w klasie 4 więc coś koło 70h więc trudno sie nastawiać na ambitne zagadnienia zakładając że większość osób nie ruszy tematu nawet o 5 minut do przodu samodzielnie w domu. Uczymy pewnych zasad pozwalających potem samodzielnie zająć sie sprawami o których piszesz, inaczej trzeba ułatwić dalsze samodzielne uczenie się.
Zawsze niezależnie od tego na jakim układzie byłyby prowadzone zajęcia będzie można powiedzieć że istnieje inny lepszy układ czy model. Szkoła nie powinna uczyć obsługi tylko jednego sprzętu.
Co do reszty uwag to sie zgadzam, dlatego u nas dokładamy Atmele, pokazuję Bascoma o dziwo mamy pełne wersje są zestawy kitów gdzie buduje sie system uP samodzielnie a potem pisze na nie programy itd. Tak jak mówię DSM tylko do absolutnych podstaw nic więcej. Inna sprawa że jeżeli będzie on na egzaminie zawodowym to trzeba będzie więcej czasu na nim poćwiczyć. Absurd ? Oczywiście ale w tym przypadku ważniejsze jest zdanie egzaminu niż asembler, a te ciekawsze sprawy "przewędrują" na zajęcia dodatkowe dla chętnych i tyle. W przypadku szkoły nie zawsze należy szukać sensu :)

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

Post autor: alaris » 05 lis 2006, 14:56

Co do ceny: nie wiem z czego wynikala ta roznica... Moze firma sprzedala w "specjalnej promocji" te makiety ministerstwu...
Z mojej strony moge tylko pogratulowac checi. Dobrze wiedziec, ze nie wszyscy poprzestaja na nauce jedynego poprawnego DSM-51, ale pokazuja jeszczed rozwiazania alternatywne. Mimo to nie przekonuje mnie argumenctacja, ze makieta ta uczy podstaw programowania mikrokontrolerow. W moim przypadku byla to nauka wklepywania programu, a nie programowania.
Jedyny argument, ktory jest sensowny i nie do odparcia (co nie zmienia faktu, ze zarazem przerazajacy i przygnebiajacy) to wymaganie znajomosci DSM-51 na egzaminie. Tego sie nie da obejsc, bo co z tego, ze ktos potrafi programowac bardzo dobrze, jak nie moze zdac egzaminu? Marzy mi sie edukacja indywidualna na zasadzie: pokaz czego sie nauczyles i ktos zrobi ekstra wzmiacniacz, ktos opracuje uklad z uK, ktos zademonstruje wykorzystanie CPLD itd... Juz zschodze na ziemie...
W przypadku szkoly nie zawsze nalezy szukac logiki? Taaa, szczegolnie na studiach... Zwlaszcza gdy przychodzi liczyc zadanie z transformatorem idealnym zdolnym przenosic, uwaga, napiecia STALE! To nie zart, tak bylo. Ciekawe gdzie to mozna kupic? :roll: Czekam, az ktos mi da zadanie praktyczne w podobnym tonie: majac baterie 9V zbuduj zrodlo pradowe o wartosci 1mA i wstaw rezystor 1M, aby uzyskac napiecie 1000V... Ciekawe...

ODPOWIEDZ