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

Gra Arkanoid oparta o mikrokontroler Atmela '51 oraz wyświetlacz Nokia 3310

LightOfWinter 22 Gru 2017 13:10 5376 14
  • Witam.

    Gra Arkanoid oparta o mikrokontroler Atmela '51 oraz wyświetlacz Nokia 3310Gra Arkanoid oparta o mikrokontroler Atmela '51 oraz wyświetlacz Nokia 3310

    Dziś chciałem zaprezentować projekt prostej gry Arkanoid.
    Projekt został zrealizowany w oparciu o mikrokontroler Atmela '51, wyświetlacz z telefonu Nokia 3310 oraz statyczną pamięć RAM.
    Całość zbudowana jest na płytce uniwersalnej.
    W pamięci RAM przechowywana jest cała zawartość wyświetlacza.
    Kod programu został napisany w Asemblerze.

    Kosztów nie pamiętam, bo minęło już kilka lat od momentu budowy.

    Poniżej zamieszczam film do materiału wideo prezentującego projekt.


    Link

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Computer Controls
  • #2
    BANANvanDYK
    Poziom 38  
    Pochwaliłbyś się jak wyglądał kod w ASM i ile linijek wyszło.
  • Computer Controls
  • #3
    LightOfWinter
    Poziom 29  
    Witam

    Postaram się go poszukać.
    Liczę że gdzieś mam kopię nagraną na płytę.
    Dodam tylko że wtedy stworzyłem kod oraz narzędzie pod Delphi (Pascal obiektowy) które ułatwiło mi wygenerowanie tablic ze znakami ASCII. Pewnie można to zrobić prościej, ale wtedy miałem taki pomysł.
  • #4
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #6
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #7
    LightOfWinter
    Poziom 29  
    Witam

    Zbudowałem tą grę dość dawno temu ok 2004 roku :) Przypomniałem sobie o niej bo znajomy poprosił żebym przyniósł pokazać.

    Gdy pracowałem nad tym projektem nie miałem emulatora.
    Nawet dobrego debuger-a. Nie wspominając o oscyloskopie, czy analizatorze logicznym.

    Miałem do dyspozycji przedstawioną płytkę i programator po SPI na LPT.
    Ale za to miałem sporo czasu na studiach. Pamiętam że najwięcej zajęło mi uruchomienie komunikacji z wyświetlaczem. Spędziłem też kilka godzin usuwając błędy z programu.
  • #8
    LightOfWinter
    Poziom 29  
    BANANvanDYK napisał:
    Pochwaliłbyś się jak wyglądał kod w ASM i ile linijek wyszło.


    Witam

    Trochę to trwało zanim odkopałem pliki tego projektu.
    Proszę w załączniku plik *.hex, plik z kodem w asemblerze oraz tzw. "listing object file".
  • #10
    Darek0026
    Poziom 16  
    Fajne ;) Kod wygląda bardzo elegancko ;)
  • #11
    dj_john
    Poziom 14  
    Witam kolegów, ostatnio zainteresowałem się takimi już "retro" mikro kontrolerami - tym bardziej podoba mi się projekt autora. Aby emulować pamięć EPROM dla klasycznej 51 - zakładam że dzisiaj najprościej użyć AVR lub podobny który obsługiwał będzie transmisję PC<->SRAM poprzez port szeregowy. Podstawowe pytanie czy podczas działania systemu 51 dane adresowe i z pamięci są ciągle przekazywane przez mikrokontroler emulatora ? Zapewne musi być szybszy niż 51 :) Rozwiązaniem mogą być też bufory trój stanowe aby oddzielić SRAM po wgraniu softu.. Pytanie do kolegi R-MIK czy mógłby podzielić się szczegółami, dokumentacją swojego emulatora?
  • #12
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #13
    dj_john
    Poziom 14  
    Oczywiście że technicznie nie ma sensu budować emulatora skoro są 51 programowane po SPI. Po prostu chciałem się pobawić oryginalnymi kościami które mam zachomikowane z rodzaj 8031 - ale nie mam ani programatora epromów ani kasowarki UV. Oczywiście mogę pisać i debugować program używając np 89s8253 które również posiadam ale nie w tym rzecz.
  • #14
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #15
    acctr
    Poziom 15  
    dj_john napisał:
    Witam kolegów, ostatnio zainteresowałem się takimi już "retro" mikro kontrolerami - tym bardziej podoba mi się projekt autora. Aby emulować pamięć EPROM dla klasycznej 51 - zakładam że dzisiaj najprościej użyć AVR lub podobny który obsługiwał będzie transmisję PC<->SRAM poprzez port szeregowy.

    Był całkiem zgrabny projekt kiedyś w Elektorze. Emuluje tylko pamięci 27C256, ale może być bazą dla innych. Zamiast 89C2051 można przepisać kod na tiny2313. Są dostępne źródła na PC i uC
    http://www.pablo.lapeno.ayz.pl/pliki/e011036.PDF
    https://www.elektormagazine.com/files/magazine/2002/dolo/024107-11.zip