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 pisać programy w Bascomie dla mikrokontrolera 89S52?

Sylwekmaniio 07 Lut 2005 12:48 3047 15
REKLAMA
  • #1 1206226
    Sylwekmaniio
    Poziom 2  
    Posty: 3
    Witam!

    pytanie do szanownych ;) forumowiczów mam takie:

    mam Bascoma 8051 i chcialbym w nim pisac program do 89S52 ale z tego co zauwazylem nie ma takiego .dat i nie wiem czy sie da, "a szkoda by procek sie przegrzal ;)" wiec pomyslalem ze Państwo mi pomożecie i wytłumaczycie co zrobic zeby sie pobawic w BASCOM tym mikrokontrolerem...

    drugi problem to taki ze nie za bardzo wiem jak go zaprogramowac, gdyż jestem poczatkujacym programista, do tej pory pisalem pod 89C52 (programowalem za pomoca PROGAT), ale chcialem sie zaczac bawic w programowanie ISP

    Za wszelkie rady z góry dziękuje :)

    PS. przepraszam jak zanirzylem poziom elektrody ;)
  • REKLAMA
  • #2 1206275
    macias21
    Poziom 14  
    Posty: 147
    Pomógł: 10
    Ocena: 2
    Jesli chodzi o bascoma to sie nie wypowiadam poniewaz programuje w C.

    Tez mam taki uC i programuje go przez ISP wykorzystujas do tego STK200 i programik Adama Dybkowsiego ISP Programmer.
    W sieci zanajdziesz wielie schematow STK200.Polecam rowniez stronke z ISP Programmerem tam tez jest cos podobnego do STK200 tyle ze prostrze rozwiazanie. :

    http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html

    Zalaczam tez schcemat mojeg programatorka STK200.POLEGCAM!
    Po stronie ukladu przy zlaczu do programowania dodalem jeszcze diodke LED ktora jest zasilana poprzez rezystor 620 Ohm.
    Załączniki:
    • Jak pisać programy w Bascomie dla mikrokontrolera 89S52? moje-STK200.jpg (36.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 1206300
    Sylwekmaniio
    Poziom 2  
    Posty: 3
    a mam jeszcze pytanko, posiadasz moze wzór tej plytki w PCB ?
  • Pomocny post
    #4 1206306
    macias21
    Poziom 14  
    Posty: 147
    Pomógł: 10
    Ocena: 2
    Nie poniewaz ukladzik zmontowalem na plytce uniwersalnej.

    Ale sam widzisz ze to sa tylko 4 elementy wiec nawet na upartego mozna to zmontowac "na pajaka" ;-).

    Polecam stk200 w porownaniu z tym prostszym poniewaz testowalem obydwa rozwiazania i z STK200 nie mam zadnych problemow.

    POZDRAWIAM:-)

    P.S. koszt poszczegolnych elementow jest niewielki:

    74HC244 ok 1zl
    dioda 1N4148 0,20zl
    kondensator i rezystor 0,3zl wiec sam widzisz.
  • #5 1206457
    Kuba_eM
    Poziom 24  
    Posty: 654
    Pomógł: 36
    Ocena: 77
    Heja!
    Przykład płytki:

    Pozdrawiam,
    Kuba
    Załączniki:
    • Jak pisać programy w Bascomie dla mikrokontrolera 89S52? ISProg.jpg (34.79 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #6 1209241
    aristot
    Poziom 14  
    Posty: 149
    Pomógł: 10
    Ocena: 4
    a ja mam pytanko czy programując tym programatorem konieczne jest podłączenie do układu kwarcu czy nie jest to konieczne.
    Drugie pytanie to czy układ trzeba zasilać z jakiegoś wyzszego napięcia czy wystarczy 5V
  • #7 1209308
    Sylwekmaniio
    Poziom 2  
    Posty: 3
    to programator juz mam :) teraz jeszcze potrzebuje informacji, czy mozna ten procek w BASCOM 8051 zaprogramowac :(

    czekam na informacje, a na razie dziekuje i pozdrawiam
  • REKLAMA
  • #8 1209402
    macias21
    Poziom 14  
    Posty: 147
    Pomógł: 10
    Ocena: 2
    Ariston oczywiscie ze trzeba podlaczyc kwarc poniewaz nie zaprogamujesz tego procaka bez tego.Nawet Ci go nie rozpozna bo przeciez czyms musisz go taktowac.Jesli codzi o zasilanie do podlacz go pod 5V.Z tego co sie orientuje to wyzszych napiec (12V)stosuje sie do programowania rownoleglego.
  • REKLAMA
  • #9 1214053
    aristot
    Poziom 14  
    Posty: 149
    Pomógł: 10
    Ocena: 4
    dzięki wielkie macias21 nie byłem tego pewien więc wolałem sie zapytać :)
  • #10 1322669
    Szopler
    Poziom 21  
    Posty: 570
    Pomógł: 7
    Ocena: 12
    Sylwekmaniio napisał:
    to programator juz mam :) teraz jeszcze potrzebuje informacji, czy mozna ten procek w BASCOM 8051 zaprogramowac :(

    czekam na informacje, a na razie dziekuje i pozdrawiam


    No i minął miesiąc i nikt nie odpowiedział...
    ja narazie stosuję 8952.dat ale są problemy... procek nie widzi podprogramów - chyba gdzie indziej je zapisuje - po dojsciu do skoku do podprogramu sie zawiesza...

    Pomóżcie!
  • #11 1324320
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Witam.
    Ja używam pliku 8052.dat , procka 89s52 i programatora STK200.
    Bascomowe programy działają , więc nie wiem w czym masz problem.
    Wrzuć źródło(*.bas) , wynik kompilacji(*.hex lub *.bin) i ustawienia (*.prj) niedziałającego programu na forum , to się sprawdzi i znajdzie jakieś rozwiązanie.

    Piotrek
  • #12 1324760
    Dareks
    Poziom 20  
    Posty: 289
    Pomógł: 30
    Ocena: 29
    Musi być coś nie tak w programie-sam używam tego procesora + STK200+Basco8051
  • #13 1325301
    Szopler
    Poziom 21  
    Posty: 570
    Pomógł: 7
    Ocena: 12
    Napisałem inny program o dziwo działa...
    Nie wiem natomiast dlaczego ten bardziej złożony - od NE135-k nie działa (ani orginał HEX, ani ten po zmianach i kompilacji).

    Gdy wytnę z niego fragment czyszczący RAM (24c16) i zrobię z tego oddzielny program, to spokojnie dochodzi do 2047 komórki pamięci, ale gdy załaduję cały oryginalny to staje na 1002.
    Nie mam pojęcia co może być nie tak...

    Dodam, że w układzie oryginalnie był przewidziany 89C52, ale ja stosuję 89S52 ze względu na łatwość programowania...
    Załączniki:
    • Dziwne.rar (14.2 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #14 1326950
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Szopler napisał:

    ...
    Gdy wytnę z niego fragment czyszczący RAM (24c16) i zrobię z tego oddzielny program, to spokojnie dochodzi do 2047 komórki pamięci, ale gdy załaduję cały oryginalny to staje na 1002.
    Nie mam pojęcia co może być nie tak...
    ...


    Obawiam się , że kolega Szopler nie czytał dokumentacji AT24C16(A) :(

    
    Sub Zapis(adres As Integer , Wartosc As Byte)
        I2cstart       'start I2C
        I2cwbyte Adres_upz       'adres urzadzenia podporzadkowanego do zapisu
        I2cwbyte Adres       'adres komorki
    ' I tu jest pies pogrzebany.Co z tego że adres jest 16-to bitowy , skoro transmitowany jest tylko młodszy bajt adresu.
        I2cwbyte Wartosc       'bajt do zapisu
        I2cstop       'stop I2C
        Waitms 50       'oczekiwanie na pamiec 10ms
    End Sub
    

    Nie wiem jaką pamięć posiadasz (at24c16 czy at24c16A). Przejrzyj odpowiednią dokumentację i zobacz , że adresowanie pamięci nie jest takie proste (trudne też nie jest).

    Piotrek
  • #15 1326991
    Szopler
    Poziom 21  
    Posty: 570
    Pomógł: 7
    Ocena: 12
    Posiadam AT24C16A...

    i właśnie przeglądam dokumentację...
  • #16 4573933
    Spięcie
    Poziom 12  
    Posty: 88
    Pomógł: 2
    Ocena: 1
    Temat jeszcze nie został zamknięty więc pokusiłem się o odpowiedz :D

    Niedawno sam przerabiałem ten problem jak w Bascom 51 programować kontroler 89s52 , tak jak ktoś powyżej proponował można skorzystać z 80c52
    , ale można sobie uprościć życie wystarczy w edytować plik 80c52.dat , to znaczy dodać dodatkowe funkcje jakie posiada nasz 89s52 i zapisać go pod nową nazwą nie 80c52 tylko właśnie 89S52
    niżej zamieszczam zawartość pliku w postaci text. a na koniec w załączniku gotowy plik do dodania do programu Bascom

    [BIT]
    ACC = E0 , 00
    B = F0 , 00
    IE = A8 , 00
    IP = B8 , 00
    P0 = 80 , FF
    P1 = 90 , FF
    P2 = A0 , FF
    P3 = B0 , FF
    PSW = D0 , 00
    SCON = 98 , 00
    TCON = 88 , 00
    T2CON = C8 , 00

    [BYTE]
    SP = 81 , 07
    DPL = 82 , 00
    DPH = 83 , 00
    PCON = 87 , 00
    TMOD = 89 , 00
    TL0 = 8A , 00
    TL1 = 8B , 00
    TH0 = 8C , 00
    TH1 = 8D , 00
    SBUF = 99 , 00
    T2MOD = C9 , 00
    TL2 = CC , 00
    TH2 = CD , 00
    RCAP2L = CA , 00
    RCAP2H = CB , 00
    WDTRST = A6 , 00
    AUXR = 8E , 00
    AUXR1 = A2 , 00

    [MISC]
    I_TIMER2 = 2B
    up = 89S52
    IRAM = 256
    org = 2E
    clockdiv=12
    Załączniki:
    • 89s52.rar (339 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Dyskusja dotyczy programowania mikrokontrolera AT89S52 w środowisku Bascom 8051. Użytkownicy wskazują, że Bascom nie posiada dedykowanego pliku .dat dla 89S52, jednak można używać pliku 8052.dat lub 80c52.dat z modyfikacjami, aby uwzględnić specyficzne funkcje 89S52. Problemem są błędy w działaniu programów, m.in. zawieszanie się przy wywołaniach podprogramów, co może wynikać z błędów w kodzie lub nieprawidłowego adresowania pamięci, zwłaszcza przy obsłudze pamięci EEPROM AT24C16A przez I2C. Wskazano konieczność podłączenia kwarcu do mikrokontrolera podczas programowania ISP oraz zasilania 5V, a wyższe napięcia (np. 12V) stosuje się przy programowaniu równoległym. Do programowania ISP polecany jest programator STK200 wraz z oprogramowaniem ISP Programmer Adama Dybkowskiego. Użytkownicy dzielą się schematami i doświadczeniami z budową programatora, podkreślając prostotę konstrukcji i niskie koszty elementów. Jeden z użytkowników udostępnił zmodyfikowany plik .dat dla 89S52, zawierający rozszerzone funkcje, co ułatwia programowanie w Bascomie. Problemy z programowaniem wynikają głównie z nieznajomości specyfiki mikrokontrolera i błędów w kodzie, a nie z ograniczeń Bascoma czy sprzętu programującego.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA