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

Definicje stałych dla AT89C2051 w assemblerze - gdzie znaleźć?

wasi 27 Lut 2007 20:58 1872 12
REKLAMA
  • #1 3625127
    wasi
    Poziom 12  
    Posty: 75
    Ocena: 5
    Witam,
    Wiem, że 89C2051 to już staroć i nikt już go nie pamięta ale czy nie macie w archiwach definicji wszystkich stałych dla assemblera dla tego układu (ACC, B, IE, P1,PSW,...). Rozumiem że nie problem takie coś sobie samemu sklecić ale wolę się zapytać. Do tej pory używałem Bascoma i on miał takie rzeczy. Teraz chciałem przejść całkowicie na assemblera (asm w bascomie mi się znudził). Ściągnąłem ze strony atmela ASM51.exe tyle że w nim są same stare układy. A jak sam taki plik sklecę to pewnie spędzę tydzień na zastanawianiu się dlaczego programy mi nie działają.
    Dodatkowo też chciałem zapytać jakich asemblerów darmowych używacie(liście) do programowania tego układu. W plikach elektrody jest tylko 'ASEM-51 V1.2' z inkludem dla 89C1051. Pytanie też czy wszystkie '51 mają takie same mnemoniki mimo uaktualniania wersji przez atmela ?
  • REKLAMA
  • Pomocny post
    #2 3625241
    pepson
    Poziom 18  
    Posty: 171
    Pomógł: 26
    Ocena: 30
    
    ;   AT89C2051 processor definition file
    ;   ===================================
    
    SP	DATA	081H
    DPL	DATA	082H
    DPH	DATA	083H
    PCON	DATA	087H
    TCON	DATA	088H
    TMOD	DATA	089H
    TL0	DATA	08AH
    TL1	DATA	08BH
    TH0	DATA	08CH
    TH1	DATA	08DH
    P1	DATA	090H
    SCON	DATA	098H
    SBUF	DATA	099H
    IE	DATA	0A8H
    P3	DATA	0B0H
    IP	DATA	0B8H
    PSW	DATA	0D0H
    ACC	DATA	0E0H
    B	DATA	0F0H
    
    IT0	BIT	088H
    IE0	BIT	089H
    IT1	BIT	08AH
    IE1	BIT	08BH
    TR0	BIT	08CH
    TF0	BIT	08DH
    TR1	BIT	08EH
    TF1	BIT	08FH
    AIN0	BIT	090H
    AIN1	BIT	091H
    RI	BIT	098H
    TI	BIT	099H
    RB8	BIT	09AH
    TB8	BIT	09BH
    REN	BIT	09CH
    SM2	BIT	09DH
    SM1	BIT	09EH
    SM0	BIT	09FH
    EX0	BIT	0A8H
    ET0	BIT	0A9H
    EX1	BIT	0AAH
    ET1	BIT	0ABH
    ES	BIT	0ACH
    EA	BIT	0AFH
    RXD	BIT	0B0H
    TXD	BIT	0B1H
    INT0	BIT	0B2H
    INT1	BIT	0B3H
    T0	BIT	0B4H
    T1	BIT	0B5H
    PX0	BIT	0B8H
    PT0	BIT	0B9H
    PX1	BIT	0BAH
    PT1	BIT	0BBH
    PS	BIT	0BCH
    P	BIT	0D0H
    OV	BIT	0D2H
    RS0	BIT	0D3H
    RS1	BIT	0D4H
    F0	BIT	0D5H
    AC	BIT	0D6H
    CY	BIT	0D7H
    
    RESET	CODE	000H
    EXTI0	CODE	003H
    TIMER0	CODE	00BH
    EXTI1	CODE	013H
    TIMER1	CODE	01BH
    SINT	CODE	023H
    
  • REKLAMA
  • #3 3625285
    bolo44
    Poziom 11  
    Posty: 22
    Ja użwyam środowiska RIDE IDE kompletny pakiet ze sporymi możliwościami testowymi do ściągnięcia z ftp://212.234.185.250/demo/51/kit51_743_.exe chyba jest ogranicznie do 2KB kodu ale to zazwyczaj nie problem.
    Układy programu programatorem z AVT ZL 7PRG
    http://www.sklep.avt.com.pl/go/_info/?id=46720
  • #5 3626920
    wasi
    Poziom 12  
    Posty: 75
    Ocena: 5
    O to właśnie mi chodziło. Ktoś już się na elektrodzie chwalił MIDE ale nie umiałem tego znaleźć. On jak widzę ma już wszystko czego potrzeba.
    Jeszcze tylko jedno moje pytanie pozostało bez odpowiedzi. Czy generowane mnemoniki przez asemblera są zawsze poprawne dla wszystkich kostek. Co się dzieje jeśli użyję DJNZ, które nie istnieje dla 89C2051 ?
  • #6 3627039
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Cytat:
    Co się dzieje jeśli użyję DJNZ, które nie istnieje dla 89C2051 ?

    A gdzie jest to napisane , że nie istnieje??
  • REKLAMA
  • #7 3627096
    wasi
    Poziom 12  
    Posty: 75
    Ocena: 5
    Przepraszam. Sprawdziłem. Chyba sobie wmówiłem, że tej instrukcji nie ma bo rzeczywiście jest :)
    Ale teoretycznie jest przecież możliwe że nowsze procesory mają pewne instrukcje, których nie mają starsze. Czy nie ? Czy 51 to 51 i koniec ?
  • #8 3627178
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    51 to 51 i koniec :) Asembler jest taki sam (tzn. instrukcje dla procesora) Trzeba tylko uważać na to żeby wykorzystywać tylko te rejestry i adresowalny obszar pamięci jaki jest dostępny w danym typie uP. W AT89C2051 jest 2KB pamięci programu więc 16-bitowe rozkazy skoków tracą sens :), 128bajtów RAM powoduje że zapis lub odczyt z pamięci IDATA (np:mov A,@R0) nie ma sensu bo tej pamięci fizycznie nie ma :) itd.
  • #9 3627194
    wasi
    Poziom 12  
    Posty: 75
    Ocena: 5
    rozumiem, więcej pytań nie mam. Temat uważam za zamknięty. Dziękuję za pomoc.
  • #10 3627197
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Wszystkie 51-ki mają takią samą listę rozkazów, od tych najwcześniejszych do obecnie produkowanych. I jeszcze jedno, bzdurą jest twierdzenie o schyłku rodziny 51. Jest nadal rozwijana, pojawiają sie nowe odmiany i stosowana jest dalej z powodzeniem w wielu aplikacjach.
  • REKLAMA
  • #11 3627216
    wasi
    Poziom 12  
    Posty: 75
    Ocena: 5
    Ja pisałem o 89C2051. Na stronach Atmela niewiele jest na ich temat (tak mi się wydaje) najwięcej jest wszystkiego dla AVR i tych z ISP (S2051). Także na elektrodzie raczej C2051 oprócz tematów szkolnych zaczyna odchodzić w przeszłość.
  • #12 3627710
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Cytat:
    Na stronach Atmela niewiele jest na ich temat
    :)
    '51 robi nie tylko Atmel :)
    Proponuję zajrzeć jaka jest różnorodność '51 (choć dane nie są najnowsze).
    http://www.8052.com/chips.phtml
    Cytat:
    I jeszcze jedno, bzdurą jest twierdzenie o schyłku rodziny 51.

    Bzdurą, bzdurą bo sam Atmel (jedyny producent AVR'ów) rozwija '51 który ma na pewno mniejsze dochody z jego sprzedaży w porównaniu z AVR'ami. :)
  • #13 3628256
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    wasi napisał:
    Ja pisałem o 89C2051. Na stronach Atmela niewiele jest na ich temat (tak mi się wydaje) najwięcej jest wszystkiego dla AVR i tych z ISP (S2051). Także na elektrodzie raczej C2051 oprócz tematów szkolnych zaczyna odchodzić w przeszłość.


    Na stronach Atmela jest wszystko co trzeba żeby poznać '51 i są wszystkie narzędzia potrzebne do pisania w ASM.


    Podręczniki użytkownika

    Narzędzia & programy

    Opis instrukcji mikrokontrolerów 8051

    Opis architektury mikrokontrolerów 8051

    A w typ PDFie są tylko różnice i rozszerzenia które odnoszą się do AT89C2051 w stosunku do standardowego 8051


    Jeśli chodzi o instrukcje to możesz używać wszystkich oprócz instrukcji od dostępu do zewnętrznej pamięci i trzeba uważnie stosować instrukcje skoku.

Podsumowanie tematu

✨ Dyskusja dotyczy dostępności definicji stałych rejestrów i bitów dla mikrokontrolera AT89C2051 w assemblerze oraz wyboru darmowych środowisk programistycznych. Udostępniono przykładowy plik definicji rejestrów i bitów (m.in. ACC, B, IE, P1, PSW) w asemblerze dla AT89C2051. Wskazano na środowiska takie jak RIDE IDE oraz MIDE-51 jako polecane narzędzia do programowania układów 8051, z uwzględnieniem ograniczeń pamięciowych AT89C2051 (2KB pamięci programu, 128 bajtów RAM). Omówiono kompatybilność instrukcji asemblera w rodzinie 8051 – mnemoniki są takie same dla wszystkich modeli, jednak należy uważać na dostępność pamięci i rejestrów specyficznych dla danego układu. Potwierdzono, że instrukcje takie jak DJNZ są dostępne w AT89C2051. Podkreślono, że rodzina 8051 jest nadal rozwijana i stosowana, mimo że AT89C2051 jest starszym modelem, a dokumentacja Atmela zawiera wszystkie niezbędne informacje oraz narzędzia do programowania w ASM, z uwzględnieniem różnic i rozszerzeń dla AT89C2051 względem standardowego 8051.
Wygenerowane przez model językowy.
REKLAMA