Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Bascom AVR vs Bascom 51 - czy mają podobne polecenia?

pidpawel 14 May 2006 12:25 3164 10
  • #1
    pidpawel
    Level 26  
    Witam!
    Dostałem programator do 89c52, więc kupiłem książkę "mikrokontrolery dla początkujących". Tyle, że jest ona do AVR!! (zauważyłem to dopiero gdy książka przyszła do domu :cry: ) I mam pytanie Czy można przy użyciu BASCOMA dla 51 programować tego mikro i czy w BASCOMIE AVR i 51 są podobne polecenia??

    ______________
    jeśli można to niech ktoś odpowie na moje pytania, bądź rzuci chociaż jakieś listingi programów.. może ja coś zauważę i się nauczę...
  • #3
    pidpawel
    Level 26  
    a jeśłi chodzi o bascomy to na podst. podanej wyżej książki mogę pisać pod mojego prcka tylko w bascom51??
  • Helpful post
    #4
    Zaquadnik
    Level 27  
    Cóż, zależy jakie to są programy. Bo widzisz, AVR i 8051 są zupełnie różne wewnętrznie. Nie wiem czy znasz dobrze angielski i na ile orientujesz się w technice mikroprocesorowej, ale polecam Ci poczytanie not katalogowych na stronce Atmela. Jeśli chodzi o 8051 to gorąco polecam książkę Andrzeja Rydzewskiego p.t. "Mikrokomputery jednoukładowe rodziny MCS - 51" jest ona cokolwiek stara, ale zawiera wszystkie niezbędne i podstawowe informacje o 8051. Wracając do BASCOMa to powiem Tobie tyle, procedury takie jak obsługa UART czy LCD pewnie nie będą się różniły, ale proste wystawienie danych na port będzie robiło się inaczej. Podczas gdy w 8051 wystarczy jedynie wystawić daną na port, to w AVR trzeba nadać najpierw portowi niejako kierunek (jest to spowodowane odmienną konstrukcją portów w 8051 i AVR). Ogólnie to polecałbym Tobie zakupić sobie ATmegę8, programator ISP i pobawić się też AVR. Mają wiele ciekawych możliwości no i jest to prężnie rozwijająca się rodzina uC. Osobiście mało pisałem w BASCOMie, bo wolę asemblera. Dopiero wtedy można nauczyć się architektury uC.
  • #5
    pidpawel
    Level 26  
    a podalibyście jakieś przykładowe programy na 51 i avr np pełniące tę samą funkcję?? Albo pokażcie na jakimś przykładzie jak się ustawia porty w 51... z góry dzięki
  • #7
    pidpawel
    Level 26  
    dzięki piękne... może wrzuczcie programy pod bascoma napisane przez Was...
  • Helpful post
    #8
    Zaquadnik
    Level 27  
    Tu raczej średnio na jeża pomogę, bo nie lubię wynalazków takich jak BASCOM. Piszę głównie w asemblerze i trochę w C. Jedyne co zrobiłem, to bardzo niedokładny zegar na AVRki (taki test LCD ;) - nudziło mi się kiedyś :] Oto kod:
    Code:

    $crystal = 8000000

    Dim Godziny As Byte
    Dim Minuty As Byte
    Dim Sekundy As Byte

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
    Cursor Off
    Do
    Cls
    Lcd Godziny
    Lcd ":"
    Lcd Minuty
    Lcd ":"
    Lcd Sekundy
    Waitms 972
    Sekundy = Sekundy + 1
    If Sekundy = 60 Then
       Sekundy = 0
       Minuty = Minuty + 1
       If Minuty = 60 Then
          Minuty = 0
          Godziny = Godziny + 1
          If Godziny = 24 Then
             Godziny = 0
          End If
       End If
    End If
    Loop

    Może do czegoś się przyda ;) Ogólnie poczytaj sobie :] Aha, ten zegar zadziałać powinien w BASCOMie '51, ale musisz w dyrektywie zmienic częstotliwość oscylatora i powinien być OK. Nie jest on napisany po ludzku (czyli na przerwaniach timera), tylko łopatologicznie, więc czas się rozjeżdża :P Ale zabawka śmieszna :] I byłbym zapomniał, ze względu na małą ilość RAMu (w porywach do 256 B <tak tak, bajtów>) w PODSTAWOWYM '51 źle on znosi BASCOMa, to znaczy, szybko kończy się pamięć na zmienne ;)
    Pozdrawiam :]
  • #9
    pidpawel
    Level 26  
    a coś typowo na 51...
  • #10
    Zaquadnik
    Level 27  
    To pójdzie na '51, tylko zapis taki jak portb.x zamieniasz sobie na P1.x (na przykład ) ;) Ogólnie tylko piny, do których podłączony jest LCD musisz zmienić i $crystal ustawić na wartość kwarcu, który masz w układzie :] I powinno śmigać ;)
    Pozdrawiam :)
  • #11
    pidpawel
    Level 26  
    Temat umarł... :( Za informacje dziękuję.
    Temat zamykam.