Sisukord:

KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator: 13 sammu (koos piltidega)
KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator: 13 sammu (koos piltidega)

Video: KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator: 13 sammu (koos piltidega)

Video: KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator: 13 sammu (koos piltidega)
Video: Leap Motion SDK 2024, Juuni
Anonim
Image
Image
KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator
KIM Uno - 5 -eurone mikroprotsessori arendaja komplekti emulaator
KIM Uno - 5 -eurone mikroprotsessor Dev Kit -emulaator
KIM Uno - 5 -eurone mikroprotsessor Dev Kit -emulaator

KIM Uno on kaasaskantav tarkvara määratletud arenduskomplekt (retro) mikroprotsessoritele. Kuid lubage mul tutvustada selle ideed, minnes ajas tagasi:

Veel 2018. aasta lõpus tuli mulle meelde, et tahtsin ehitada väikese kaasaskantava mikroprotsessori arendajate komplekti, täpselt nagu kuulus KIM-1 ettevõttelt MOS Technology, Inc. ja mille on kujundanud Chuck Peddle, kes oli samuti seotud 6502 protsessori loomisega.

Kuid diskreetsete loogikakomponentidega "palja luuga" arendajate komplekti ehitamine ei olnud valik, kuna see vajas suurt toiteallikat (kuna need iidsed seadmed kipuvad tõsist voolu võtma) ja ka arendamine oleks väga aeganõudev. Ja ma tahan seda kohe!

Seetõttu kujundasin KIM Uno kaasaskantavaks seadmeks, mis mahub ühte kätte ja töötab kahe CR2032 patareiga. See kasutab soovitud protsessori jäljendamiseks (või simuleerimiseks) ATMega328p ("Arduino") mikrokontrollerit, mis töötab sagedusel 8 MHz. See arhitektuur tagab ka selle, et emuleeritud protsessorid on vahetatavad kõigega, mis sobib mikrokontrolleri välkmällu. Seega on see mitmeotstarbeline seade.

Juhuslikult vaatasin hiljem YouTube'is tõeliselt head juttu - nimega The Ultimate Apollo Guidance Computer Talk (34C3) -, kus mainitakse "One Instruction Set Computers" või OISC -sid. Ma ei teadnud neist ja leidsin, et see on ideaalne kandidaat selle rakendamiseks.

KIM Uno emuleerib protsessorit ainult ühe käsuga: subleq - lahutage ja haruge, kui see on nullist väiksem või sellega võrdne.

Kui järgite minuga seda juhendit, saate kiiresti luua oma KIM Uno. Ja parim osa - peale selle, et saate seda oma maitse järgi muuta - on see, et selle valmistamine maksab vaid 4,75 eurot (2018. aasta lõpu seisuga).

Üks vihje: on olemas Giti hoidla, mis sisaldab kõiki selle juhendi erinevate sammude pakutavaid faile. Kui soovite mõnda ressurssi muuta ja meiega jagada, saate teha PR -i. Kuid sealt saate alla laadida ka kõik failid korraga. Lihtsalt aadressile https://github.com/maxstrauch/kim-uno. Tänan!

On veel üks päris huvitav projekt, mida nimetatakse samaks (KIM Uno), mis teeb 6502 KIM Uno tõelise koopia. Vaadake seda siit. Looja müüb isegi komplekti. Nii et kui olete huvitatud 6502 -st ja teile meeldib see projekt, peaksite seda vaatama!

Samm: trükkplaadi hankimine

PCB hankimine
PCB hankimine
PCB hankimine
PCB hankimine

Nagu näete, kasutasin võimalust kujundada trükkplaat ja lasta sellel professionaalselt valmistada. Kuna selle tootmine väljastpoolt ja teile kohaletoimetamine võtab palju aega (sõltuvalt sellest, kus te maailmas asute;-)), on selle tellimine esimene samm. Seejärel võime jätkata teiste toimingutega, kuni trükkplaat on valmistatud ja teile tarnitud.

Tellisin oma PCBd Hiinas PCBWayst vaid 5 dollari eest. Ma ei saa mingit kasu PCBWay esitlemisest oma PCBde goto tootjana, lihtsalt see töötas minu jaoks hästi ja võib ka teie jaoks hästi toimida. Kuid saate neid tellida mujalt, näiteks JLCPCB, OSH Park või mõni kohalik PCB ettevõte.

Kui aga soovite neid tellida saidilt PCBWay, saate alla laadida lisatud ZIP-faili "kim-uno-rev1_2018-12-12_gerbers.zip" ja laadida selle ilma muudatusteta otse PCBWay-sse. See on originaalfail, mida kasutasin piltidel nähtavate trükkplaatide tellimiseks.

Kui tellite need teiselt tootjalt, peate võib-olla need uuesti eksportima KiCadi algsetest allikatest, sest ma koostasin need koos PCBWay spetsifikatsioonidega, mille leiate siit. KiCadi originaalallikate jaoks laadige alla "kim-uno-kicad-sources.zip" ja ekstraktige see.

Kuid on isegi teine viis: kui te ei soovi trükkplaati tellida, saate perfboardi või isegi leivaplaadi abil luua oma versiooni.

Igatahes: kuna trükkplaadid on nüüd teel, saame keskenduda teistele osadele! Tule, jälgi mind.

2. samm: komponentide hankimine

Komponentide hankimine
Komponentide hankimine
Komponentide hankimine
Komponentide hankimine
Komponentide hankimine
Komponentide hankimine

Nüüd peate komponendid hankima. Selle jaoks leiate ülevaate, mis sisaldab kõiki vajalikke komponente ja koguseid, mis on lisatud sellele sammule, samuti BOM -i (materjalide arve).

BOM sisaldab linke eBayle. Kuigi need pakkumised võivad seda lugedes suletud olla, saate seda lähtepunktina kasutada. Kasutatud komponendid on üsna standardsed.

Järgnevalt selgitan teile kõiki vajalikke komponente:

  • 7x 1 kΩ takistid seitsme segmendi kuvaritele. Saate nende väärtust vähendada (nt 470 Ω), et muuta need eredamaks, kuid mitte seda liiga palju, vastasel juhul surevad LED -id või aku tühjeneb väga kiiresti. Ma leidsin, et see väärtus töötab minu jaoks
  • 1x 10 kΩ tõmbetakistina mikrokontrolleri liini RESET jaoks
  • 1x 100 nF kondensaator pingepiikide tasandamiseks (mida ei tohiks juhtuda, kuna me kasutame patareisid, eks, aga hea mõõt …)
  • 1x ATMega328P DIP-28 pakendis (tavaliselt nimega ATMega328P-PU)
  • 1x peamine trükkplaat - vt eelmist sammu; kas tellitud või ise ehitatud
  • 2x CR2032 patareipesad
  • 1x SPDT (ühepooluseline, kahekordne viskamine) lüliti, millel on põhimõtteliselt kolm kontakti ja mis ühendab mõlemas olekus (kas sisse või välja) kaks kontakti
  • 20x kombatavad nupud klaviatuuri jaoks. PCB tagakülje kasutamiseks kasutasin SMD puutetundlikke nuppe (tavalised 6x6x6 mm nupud) - neid on üsna lihtne joota, nagu näete
  • VALIKULINE: 1x 1x6 kontaktiga päis programmeerija ühendamiseks, kuid see on valikuline, nagu näete hiljem
  • 1x seitsme segmendi 4 -kohaline ekraan ja 1x seitsme segmendi 2 -kohaline ekraan - plaat võtab ainult 9,14 mm (0,36 tolli) elemente, millel on ühine anoodjuhtmestik. Mõlemad nõuded on tööüksuse saamiseks olulised. Kuid ka seda tüüpi seitsme segmendi kuvarid on väga levinud

Selle sammu juurde on lisatud fail „komponent-datasheets.zip”, mis sisaldab täpsemat teavet kasutatud komponentide mõõtmete ja tüüpide kohta. Kuid enamik komponente on väga standardsed ja neid saab väikese raha eest hõlpsalt hankida.

Nüüd peate ootama, kuni kõik komponendid on jootmise jätkamiseks valmis. Selle aja jooksul saate juba lõpuni hüpata ja soovi korral natuke lugeda KIM Uno kasutamise kohta.

3. samm: jootetööriista ülevaade

Jootetööriista ülevaade
Jootetööriista ülevaade
Jootetööriista ülevaade
Jootetööriista ülevaade

KIM Uno jootmiseks ja ehitamiseks vajate piltidel näidatud tööriistu:

  • Traadilõikur (komponentjuhtmete otsa lõikamiseks)
  • Lamedad tangid
  • Paar pintsetti
  • (korralik) joodis, mis pole liiga paks - kasutan 0,56 mm jootet
  • Jootekolb - te ei vaja tipptasemel jootekolvi (sest me ei tegele ka siin raketiteadusega) - kasutan nüüd pikka aega Ersa FineTip 260 ja see on tõesti hea
  • Voolupliiats: voo lisamine komponentidele ja padjadele muudab nende jootmise palju lihtsamaks, kuna jootetoru voolab seejärel ise õigesse kohta*
  • Soovi korral: käsn (metallivillast) jootekolbile

KIM Uno hilisemaks programmeerimiseks vajate ka järgmist:

  • arvuti AVR-GCC tööriistaketiga ja püsivara üleslaadimiseks avrdude
  • Interneti -teenuse pakkuja (programmeerija) - nagu näete pildil, kasutan oma Arduino Unot Interneti -teenuse pakkujana koos spetsiaalse visandiga - seega pole vaja väljamõeldud riistvara osta

* vaja on inimeste juhiseid;-)

Oled sa valmis? Järgmise sammuna alustame KIM Uno kokkupanekut.

Samm: jootmine nr 1: takistite ja kondensaatorite lisamine

Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine
Jootmine nr 1: takistite ja kondensaatorite lisamine

Peaksite alati töötama kõige väiksematest (komponentide kõrguse osas) komponentidest kuni viimaste komponentideni. Seetõttu alustame takistite lisamisega ja tagaküljel jalgade kohale painutamisega, nii et takistid on kergesti jootetavad ja püsivad paigal. Seejärel lõigake pikad juhtmed.

Samuti, nagu piltidel pole näidatud, lisage väike 100 nF kondensaator samamoodi.

Üks näpunäide: hoidke neid traatjalgu väikeses mahutis, need tulevad mõnikord kasuks.

Samm: jootmine #2: klaviatuuri kokkupanek

Jootmine nr 2: klaviatuuri kokkupanek
Jootmine nr 2: klaviatuuri kokkupanek
Jootmine nr 2: klaviatuuri kokkupanek
Jootmine nr 2: klaviatuuri kokkupanek
Jootmine nr 2: klaviatuuri kokkupanek
Jootmine nr 2: klaviatuuri kokkupanek

Järgmine samm on 20 SMD puutetundliku lüliti jootmine. Kuna see töö on pisut vaevarikas, teeme seda nüüd, kui trükkplaat on töölaual tasane.

Töötame ülevalt alla (või vasakult paremale, kui trükkplaat on fotodel näidatud) ja alustame esimesest reast: valige iga lüliti jaoks üks neljast padjast ja tehke see flux -pliiatsiga märjaks.

Seejärel kasutage pintsettide abil lülitit ja haarake see ettevaatlikult neljale padjale. Seejärel jootke ainult selle lüliti jalg, mis asub teie valitud ja vooluga valmistatud padjal. Selleks peaksite enne alustamist rauaga jootma. Selle meetodi abil täitke kogu lülitite rida, jootke ainult üks jalg.

Pilt nooltega näitab suurendust, kuidas jootmine täpselt toimus.

Kui olete terve rea jootnud (ainult üks tihvt), saate väikeseid muudatusi teha, soojendades tihvti uuesti üles ja asetades lüliti ümber. Veenduge, et lülitid oleksid võimalikult hästi joondatud.

Kui olete joondusega rahul, võite kõik muud tihvtid flux -pliiatsiga märjaks teha ja seejärel jootma, puudutades seda jootekolbiga ja lisades veidi jootmist ka puudutades. Näete, et joodis imetakse otse padjale.

Pärast rea jootmist märkate, et saate sellest aru ja see pole nii raske, vaid korduv. Nii et tehke lihtsalt ülejäänud ja lõpuks saate valmis klaviatuuri.

6. samm: jootmine #3: seitsme segmendi kuva, lüliti ja tihvti päis

Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis
Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis
Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis
Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis
Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis
Jootmine nr 3: seitsme segmendi ekraan, lüliti ja tihvti päis

Nüüd saate lülitit ja tihvti päist (valikuline) lisada, hoides seda sõrmega ja jootes ühe tihvti, et seda PCB -ga kinni hoida, nii et saate teisi tihvte jootma ja lõpuks esialgset hoiustamisnõela puudutada.

Olge ettevaatlik, et te ei põleks ennast kuuma jootekolviga. Kui see teile ei meeldi, võite komponendi hoidmiseks kasutada natuke teipi (nt maalriteip). Nii on teil mõlemad käed liikumiseks vabad.

Seitsme segmendi kuvarid on joodetud samamoodi (vt pilti): paned selle sisse, hoiad käest või teibist kinni ja joodad kaks vastassuunalist tihvti, et seda paigal hoida, samal ajal kui teisi tihvte jootma saad.

Kuid olge ettevaatlik ja asetage seitsme segmendi ekraan õigesse suunda (kümnendkohtadega klaviatuuri poole). Muidu oled hädas…

Samm 7: jootmine #4: mikrokontrolleri jootmine

Jootmine nr 4: mikrokontrolleri jootmine
Jootmine nr 4: mikrokontrolleri jootmine

Nüüd, kui teil on palju harjutusi, võite minna ja panna mikrokontrolleri, mille ülaosa sälk (või esimene tihvt) on lüliti poole. Tasapinnaliste tangide abil saate mikrokontrolleri jalgu veidi veidi painutada, et need sobiksid trükkplaadil olevate aukudega.

Kuna see on tihedalt istuv, vajate mikrokontrolleri sisestamiseks teatud kontrollitud jõudu. Eeliseks on see, et see ei kuku välja. See tähendab, et võite võtta aega ja jootma selle tagant.

8. samm: jootmine #5: lisage akuhoidikud (viimane samm)

Jootmine #5: lisage akuhoidikud (viimane samm)
Jootmine #5: lisage akuhoidikud (viimane samm)
Jootmine #5: lisage akuhoidikud (viimane samm)
Jootmine #5: lisage akuhoidikud (viimane samm)
Jootmine #5: lisage akuhoidikud (viimane samm)
Jootmine #5: lisage akuhoidikud (viimane samm)

Lõpuks peate tagaküljele lisama akuhoidikud. Selleks kasutage lihtsalt flux -pliiatsit ja niisutage kõik neli padja ning seejärel jootke triikraud. Joondage akuhoidik mõlemale padjale ettevaatlikult. Kontaktide mõlemas otsas peaks olema nähtav sama palju trükkplaadi padja. Puudutage triikrauaga trükkplaadi padja ja patareipesa jalga. Jootetoru voolab padja alla ja üle selle ning kinnitab selle kohale, nagu pildil näidatud. Kui teil on sellega probleeme, saate pliiatsiga rohkem voogu lisada.

Samm: emulaatori vilkumine

Emulaatori vilkumine
Emulaatori vilkumine
Emulaatori vilkumine
Emulaatori vilkumine
Emulaatori vilkumine
Emulaatori vilkumine

Lisatud ZIP-arhiivist "kim-uno-firmware.zip" leiate emulaatori lähtekoodi koos juba koostatud "main.hex", mille saate otse mikrokontrollerile üles laadida.

Enne selle reaalset kasutamist peate seadistama mikrokontrolleri kaitsmebittid nii, et see kasutaks sisemist 8 MHz kella, jagamata seda pooleks. Töö saate teha järgmise käsuga:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse: w: 0xe2: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m

Kui te ei tea avrdude: see on programm programmide mikrokontrollerisse üleslaadimiseks. Siit saate rohkem teada saada siit. Põhimõtteliselt installite selle ja siis on see kasutamiseks valmis. Seadistamiseks peate võib-olla muutma argumendi "-P" teise jadapordiks. Palun kontrollige oma arvutist, millist jadaporti kasutatakse (nt Arduino IDE sees).

Pärast seda saate püsivara mikrokontrollerile välgutada selle käsuga:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U flash: w: main.hex

Jällegi: "P" puhul kehtib sama, mis eespool.

Kuna mul ei ole "professionaalset" Interneti-teenuse pakkujat (süsteemisisene programmeerija), kasutan alati oma Arduino UNO-d (vt pilti) ja lisatud eskiisi ("arduino-isp.ino", Randall Bohn). Ma tean, et on olemas uuem versioon, kuid selle versiooniga ei olnud mul viimase viie aasta jooksul probleeme, seega jätan selle alles. See lihtsalt töötab. Kasutades visandi päises olevat kommentaari, saate Arduino UNO pinouti ja kasutades KIM Uno skemaatikat (vt lisatud), saate KIM Uno 1x6 ISP päise pinouti. Ruudukujuline tihvt seitsme segmendi kuva lähedal on tihvt 1 (GND). Järgmised tihvtid on (õiges järjekorras): RESET, MOSI, MISO, SCK, VCC. VCC saate ühendada kas 3V3 või 5V.

Kui te ei lisanud 1x6 tihvtiga päist, võite kasutada leivaplaadi juhtmeid ja asetada need ühendusavadesse ning nurga all sõrmega - täpselt nagu pildil näidatud. See loob piisavalt kontakti püsivara vilkumiseks ja kaitsmete seadistamiseks. Kuid kui teile meeldib püsivam seadistus, peaksite kindlasti lisama 1x6 kontaktiga päised.

Mul on kaks seadet: tootmisversioon ilma tihvtide päisteta ja arendusversioon koos tihvtipäistega, mille jätan ühendatuks ja kasutan seda arendamise ajal ikka ja jälle. See on palju mugavam.

10. samm: lõpetatud

Valmis
Valmis
Valmis
Valmis

Nüüd olete lõpetanud ja võite hakata oma subleq programme paberile kirjutama, kokku panema ja seejärel mällu sisestama.

KIM Uno on varustatud eelprogrammeeritud Fibonacci arvutusega, mis algab mälu asukohast 0x0a. Vaikimisi on see n = 6, seega peaks tulemuseks olema väärtus 8. Arvutamise alustamiseks vajutage nuppu "Mine".

11. samm: PCB disaini analüüs

PCB disaini analüüs
PCB disaini analüüs
PCB disaini analüüs
PCB disaini analüüs

Pärast selle projekti lõpuleviimist leidsin paar punkti, mis on tähelepanuväärsed ja mida tuleks juhatuse uue läbivaatamise käigus käsitleda:

  • ATMega328p siidiekraanil ei ole tavalist sälku, kus asub esimene tihvt. DIP-28 jalajäljel pole isegi ruudukujulist padja, kus asub esimene tihvt. Seda tuleks segaduste vältimiseks kindlasti täpsema siiditrükiga parandada
  • Interneti -teenuse pakkuja päisel pole siidiekraanil ühendussilte. Seetõttu on raske tuvastada, kuidas seda Interneti -teenuse pakkujaga ühendada
  • Interneti -teenuse pakkuja päise võib segaduste vältimiseks muuta standardse tihvtide paigutusega 2x6 -kontaktiliseks päiseks

Peale nende punktide olen ma päris rahul, kuidas see esimesel katsel välja tuli ja töötas.

12. samm: kuidas programmeerida SUBLEQ?

Image
Image
Kuidas programmeerida SUBLEQ?
Kuidas programmeerida SUBLEQ?
Kuidas programmeerida SUBLEQ?
Kuidas programmeerida SUBLEQ?

Nagu alguses mainitud, emuleerib KIM Uno praegune püsivara ühe käsukomplekti arvutit (OISC) ja annab arvutuse tegemiseks käsu subbleq.

Käsk subleq tähistab lahutamist ja hargnemist, kui see on nullist väiksem või sellega võrdne. Pseudokoodis näeb see välja järgmine:

subleq A B C mem [B] = mem [B] - mem [A]; kui (mem [B] <= 0) goto C;

Kuna KIM Uno emuleerib 8-bitist masinat, on kõik argumendid A, B ja C 8-bitised ning seetõttu saab see käsitleda 256 baiti kogu põhimälu. Ilmselgelt saab seda laiendada, muutes A-, B- ja C-mitmebaidised väärtused. Aga esialgu teeme selle lihtsaks.

KIM Unol on ka "välisseadmed": ekraan ja klaviatuur. See kasutab nende välisseadmete liidestamiseks mäluga kaardistatud arhitektuuri, kuigi mälukaart on väga lihtne:

  • 0x00 = Z -register (null) ja see tuleb hoida nullina.
  • 0x01 - 0x06 = kuus baiti, mis tähistavad iga kuvarisegmendi väärtust (paremalt vasakule). Väärtus 0xf - lisateabe saamiseks vaadake lähtekoodi (main.c).
  • 0x07, 0x08, 0x09 = kolm baiti, kus iga bait tähistab kahte seitsme segmendi kuva (paremalt vasakule). Need mälukohad võimaldavad tulemust lihtsalt kuvada ilma tulemust kaheks tükeldamata, et paigutada see ühekohalistesse mälukohtadesse 0x01 - 0x06.
  • 0x0a+ = Programm algab 0x0a. Praegu käivitatakse klahvi "Go" alates 0x0a fikseeritud.

Selle teabe abil saab nüüd koostada programmi assembleris, sisestada juhised mällu ja seejärel käivitada. Kuna käsku on ainult üks, sisestatakse ainult argumendid (A, B ja C). Nii et pärast kolme mälukohta algavad järgmised juhised ja nii edasi.

Selle sammu juurde on lisatud fail "fibonacci.s" ja pilt käsitsi kirjutatud programmist, mis on Fibonacci näide. Kuid oodake: kasutatakse kolme juhist - täpsemalt ADD, MOV ja HLT - mis ei ole subq. "Mis asi on? Kas te ei öelnud, et on ainult üks juhis, subleq?" sa küsid? See on väga lihtne: subleq abil saab neid juhiseid väga lihtsalt jäljendada:

MOV a, b - andmete kopeerimine asukohas a kuni b võib koosneda:

  1. subleq b, b, 2 (järgmine juhend)
  2. subleq a, Z, 3 (järgmine juhend)
  3. subleq Z, b, 4 (järgmine juhend)
  4. subleq Z, Z, nt. 5 (järgmine juhend)

Kasutades subbleq lahutamisfunktsiooni, mis teeb mem - mem [a] ja kirjutab mem tulemusega üle, kopeeritakse väärtus nullregistri abil. Ja "subleq Z, Z, …" lähtestab lihtsalt nullregistri väärtuseks 0, olenemata Z väärtusest.

LISA a, b - lisab väärtused a + b ja salvestab summa summas b, mis võib koosneda:

  1. subleq a, Z, 2 (järgmine juhend)
  2. subleq Z, b, 3 (järgmine juhend)
  3. subleq Z, Z, nt. 4 (järgmine juhend)

See käsk lihtsalt arvutab mem - (- mem [a]), mis on mem + mem [a], kasutades ka lahutamisfunktsiooni.

HLT - peatab protsessori ja lõpetab täitmise:

Oma olemuselt teab emulaator, et CPU soovib lõpetada, kui see hüppab kiirusele 0xff (või -1, kui see on ühendatud). Nii et lihtne

alamkate Z, Z, -1

teeb tööd ja näitab emulaatorile, et see peaks emuleerimise lõpetama.

Neid kolme lihtsat juhist kasutades saab Fibonacci algoritmi rakendada ja see töötab hästi. Seda seetõttu, et OISC saab arvutada kõike, mida "päris" arvuti saab arvutada ainult käsuga subleq. Kuid loomulikult on palju kompromisse - näiteks koodi pikkus ja kiirus. Sellegipoolest on see suurepärane võimalus õppida ja katsetada madala tasemega tarkvara programmeerimist ja arvuteid.

Selle sammu juurde on lisatud ka ZIP -arhiiv "kim_uno_tools.zip". See sisaldab KIM Uno jaoks põhilisi komplekteerijaid ja simulaatoreid. Need on kirjutatud NodeJS -is - veenduge, et olete selle installinud.

Programmide kokkupanek

Kui vaatate "fibonacci/fibonacci.s", leiate, et see on arutatud fibonacci rakendamise lähtekood. Selle kokkupanemiseks ja sellest programmi koostamiseks, mida KIM Uno saaks käivitada, sisestage järgmine käsk (ekstraheeritud arhiivi "kim_uno_tools.zip" juure):

sõlm assemble.js fibonacci/fibonacci.s

ja see trükib vea, kui tegite vea, või viskab saadud programmi välja. Selle salvestamiseks saate väljundi kopeerida ja faili salvestada või lihtsalt käivitada selle käsu:

sõlm assemble.js fibonacci/fibonacci.s> sinu fail.h

Väljund on vormindatud nii, et selle saab otse KIM Uno püsivarasse lisada C -päisefailina, kuid simulaator saab seda ka simuleerida. Sisestage lihtsalt:

sõlm sim.js teie fail.h

Ja teile kuvatakse ekraanil simulatsiooni tulemus ja KIM Uno -st oodatav väljund.

See oli selle tööriista väga lühike sissejuhatus; Soovitan teil nendega mängida ja vaadata, kuidas nad töötavad. Nii saate sügavad teadmised ja saate teada protsessorite, juhiste, komplekteerijate ja emulaatorite toimimispõhimõtetest;-)

Samm 13: Outlook

Väljavaade
Väljavaade
Väljavaade
Väljavaade
Väljavaade
Väljavaade

Palju õnne

Kui te seda lugesite, läbisite tõenäoliselt kogu selle juhendi ja ehitasite oma KIM Uno. See on tõesti tore.

Kuid teekond ei lõpe siin - on lõpmatu hulk võimalusi, kuidas saaksite KIM Unot muuta ja kohandada vastavalt oma vajadustele ja maitsele.

Näiteks võiks KIM Uno olla varustatud "tõelise" retro -protsessori emulaatoriga, mis võiks jäljendada kuulsaid MOS 6502 või Intel 8085, 8086 või 8088. Siis läheks see minu esialgse visiooni juurde, enne kui ma OISC -dest teada sain.

Kuid on ka muid kasutusviise, kuna riistvara disain on üsna üldine. KIM Unot saab kasutada…

  • … Kaugjuhtimispult, nt. CNC -de või muude seadmete jaoks. Võib -olla juhtmega või IR -dioodi või mõne muu traadita saatjaga varustatud
  • … Taskuarvuti (kuueteistkümnendarv). Püsivara saab väga lihtsalt kohandada ja plaadi kujundust ei pea väga palju muutma. Võib -olla saab siiditrükki matemaatikaoperatsioonidega kohandada ja segmentide vahelise lõhe eemaldada. Peale selle on ta selleks ümberkujundamiseks juba valmis

Loodan, et teil oli KIM Uno jälgimisel ja loodetavasti sama lõbus kui mul seda kavandades ja planeerides. Ja kui te seda pikendate või muudate - palun andke mulle sellest teada. Tervist!

PCB konkurss
PCB konkurss
PCB konkurss
PCB konkurss

PCB -võistluse teine koht

Soovitan: