Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Sklep ElwronSklep Elwron
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AT89c51

09 Cze 2004 19:00 2477 22
  • Poziom 22  
    czy moze mi ktos udostepnic schemat swojego zestawu testowego i powiedziec jakiego kompilatora uzywa i czy w ogole jezyk c nadaje sie do programowania tych procesorów bo juz nie mam sily do tego. nie moge uruchomic przerwan ani na procku at89c51 ani at89c4051 chodzi mi oczywiscie o jezyk C. do tej pory probowalem na keil C i przerwania nie chodza mi. moze C lepiej chodzi na lepszych prockach. prosze a konkretna odpowidz. moj mail to krzysiek400(malpa)op.pl
  • Sklep ElwronSklep Elwron
  • Poziom 27  
    Keil jest bardzo dobrym środowiskiem. A jesli chodzi o zestaw testowy, to wystarczy na jeden port klawiaturka, na drugi diodki. Do poważniejszych zastosowań można podpiąć EEPROM i MAX232 do RS232.
    Dużo ludzi korzysta z wyświetlaczy LCD. Jeśli Ci to potrzebne, to też podepnij. Wszysto zależy od tego, co potrzebujesz.
  • Sklep ElwronSklep Elwron
  • Poziom 22  
    potrzebuje obslugi przerwan ale nie moge tego uruchomic i nie moge dojsc co jest grane. program jest wprzadku a i tek lipa nie mam juz do tego sily. moze moj programator jest jakis lewy. uzywam progata z praktycznego elektronika ktory miby ma weryfikacje bledow i jak cos jest nie tak to sie burzy.
  • Poziom 20  
    Ściągnij sobie symulator (których jest naprawde dużo w internecie),załaduj HEX-a do symulatora no i sprawdz co się dzieje . Moze coś przeoczyłeś???
  • Poziom 31  
    Moze sobie zdizasembluj kod w Keil-u i zobacz czy skok do obslugi przerwania jest tam gdzie powinien byc.To nie jest wina kompilatora, moze uzyles zlego numeru wektora przerwan.
  • Poziom 32  
    krzysiek40 napisał:
    potrzebuje obslugi przerwan ale nie moge tego uruchomic i nie moge dojsc co jest grane. program jest wprzadku a i tek lipa nie mam juz do tego sily. moze moj programator jest jakis lewy. uzywam progata z praktycznego elektronika ktory miby ma weryfikacje bledow i jak cos jest nie tak to się burzy.

    Skąd wiesz że twój program jest wpożądku skoro nie działa, czgoś trzeba być pewny. Przecież sprawdzenie programatora polega na zaprogramowaniu konkretnego pliku a potem weryfikacja, jeżeli jest taki sam to programator działa poprawnie, jeżeli nie to wiadomo o co chodzi.
  • Poziom 22  
    na symulatorze wszystko niby jest ok
    moglby mi ktos napisac prosty program ktory by obslugiwal przerwanie i podac wersje zkompilowana i zrodlowa. np zwiekszanie portu P1 przy wcisnieciu przycisku na P3.2
  • Poziom 32  
    Za mało danych. Do takiego programu nie potrzeba przerwań.
  • Poziom 22  
    chodzi mi o to aby wlasnie wykorzystac przerwania ktorych nie moge uruchomic ale malo tego np taki program

    #include <reg51.h>

    void main(void) {
    while(1) {
    P1=P3;}
    }

    na symulatorze keil dziala ale na procku juz nie :(

    nie mam pojecia o co chodzi bo taki

    #include <reg51.h>

    void main(void) {
    WORD i;
    while(1) {
    for(i=0;i<0xffff<;i++);
    P1++;}
    }

    juz dziala
  • Poziom 22  
    no dobrze poprzedni programik dziala ale w progacie pod dosem

    a czemu takie cos nie dziala


    #include <sfr51.h>

    void add(void);

    void main(void){

    EA=1;
    EX0=1;
    IT0=0;

    while(1);
    }

    void add(void) interrupt 0 using 1{
    P1++;
    }

    ani takie cos

    #include <reg51.h>

    void add(void) interrupt 0 using 1{
    P1++;
    }

    void main(void){

    EA=1;
    EX0=1;
    IT0=0;

    while(1);
    }

    void add(void) interrupt 0 using 1{
    P1++;
    }

    choc to wszystko na symulatorze dziala czy to moze byc wina programatora a moze programu obslugujacego ktory dziala zreszta jedynie pod dosem
  • Poziom 31  
    Jedyne co moge ci powiedziec to ze to NAPEWNO nie jest wina kompilatora.A to z kolei oznacza ze moze to byc problem twojego programatora.Jakiego uzywasz ? Moze sprobuj FLIP-a do tego procka.
  • Poziom 22  
    ale czy flipem sie zaprogramuje zwyklego AT89C4051 a jesli tak to jak to zrobic bo flipa mam.
  • Poziom 31  
    No pisales wczesniej ze to AT89C51, którego wersja RC2 ma mozliwosc wgrywania kodu za pomoca filp-a.A skoro tak to znaczy ze uzywasz programatora rownoleglego ktory w wypadku pracy pod windowsem moze sie nie wyrabiac z pewnymi rygorystycznymi czasami.W takim wypadku chyba najlepsze sa programatory oparte o sprzetowa generacje sygnalow zapisu pamieci (z uzyciem innego procesorka).Byc moze linux lepiej by sobie z tym poradzil ale pewnosci nie mam.
  • Poziom 22  
    no tak lae proce w wersji RC2 sa drogie!!!
  • Poziom 18  
    Jako ze na pierwsza prosbe autora tematu nie bylo zadnego odzewu to moze ja cos pomoge :)

    Narysowalem niedawno prosta plytke uruchomieniowa do duzych '51.
    Posiada wyprowadzenia na goldpiny dwoch portow (1,3) dwa pozostale sa "zmarnowane" na wyswietlacz i klawiature czteroprzyciskowa zrealizowana na przerwaniu int0. Posiada zlacze do programowania ISP, na plytce jest takze wsadzony prosty programator AEC_ISP(mozna go wylaczyc w razie potrzeby), zlacze do programowania prockow dallasa DS89C4xx (do tego potrzebna jeszcze druga plytka ktora jest takze w archiwum). Zaprojektowalem tez miejsce pod RTC DS1307. Sa goldpiny do magistrali i2c razem z +5v i GND wraz z rezystorami podciagajacymi do Vcc (aby mozna bylo podlaczac inne zewnetrzne urzadzenia pracujace na i2c). Prosty uklad resetu i dioda sygnalizujaca zasilanie to szczegoly ale warto wspomniec.
    Dodam ze wszystkie sciezki sa grubosci 25mils (procz odcinków 4 sciezek miedzy nogami ukladu) wiec wykonanie metoda "kredowa" nie stanowi problemu.
    Plytke jak i schemat robilem "dla siebie" wiec nie jest ona bardzo dobrze dopracowana pod wzgledem estetycznym ale swoje zadanie spelnia narazie bez zarzutow.
    Jesli ktos bedzie mial jakies pytania odnosnie calego projektu to prosze napisac na gg, pw albo tu na forum.

    Zapomanialem dodac ze jest takze plytka z MAX232 do transmisji po rs232 ktora mozna bez problemu "dokrecic" do plytki glownej i polaczyc 4 zylowym kabelkiem (staralem sie takze by zlacze na plytce rs232 i glownej bylo w dogodnej pozycji).

    A i jeszcze jedno (zawsze o czyms zapominam :oops: ) plytka byla rysowana w Eaglu.

    Mam nadzieje ze komus przyda sie moja praca.
    Pozdrawiam!

    P.S: przepraszam za edycje ale chcialem wniesc kilka poprawek coby sie przyjemniej czytalo :)
  • Poziom 22  
    a jak programujesz tu '51 jekims programem? jakim
  • Poziom 18  
    Domyslam sie ze chodzilo ci o at89C51 - programuje je w willemie a pozniej wkladam na plytke.
  • Poziom 22  
    musze wlasnie zrobic tego willema bo z progatem to mam same problemy
    moglby mi ktos podeslac dokumentacje wraz z programam obslugujacy do tedo willema? krzysiek400(malpa)op.pl
  • Poziom 22  
    a czy da sie programowac AT89C4051 w ISP
  • Poziom 18  
    Nie da sie. Nie ma takze (o ile wiem) malych '51 w wersji "S" programowanej przez ISP.
  • Poziom 22  
    a czy moglbu ktos zamiescic schemat programatora wraz z programem obslugujacy do AT89c4051 czy tez AT89c51 ktory by byl obslugiwany przez COM'a. w razie czego moj mail to krzysiek400(malpa)op.pl
  • Poziom 11  
    Co oznacza EA? Podobno odblokowanie/zablokowanie wszystkich przerwań. Weźmy przykład:
    Code:

    EX0 = 1;
    ES = 1;
    EA = 1;

    Czy wtedy będą odblokowane tylko przerwania od INT0 i portu szeregowego? Czy wszystkie przerwania?

    Drugie pytanie:
    Deklarując procedurę obsługi przerwania piszemy, np:
    Code:

    void przerwanie interrupt 1 using 1


    Co to jest using? Jaką rolę pełni liczba umieszczona po tym słowie?
  • Poziom 22  
    Witam
    Już nedługo powinny się pojawić procki z isp :-) . Atmel
    Pozdrawiam