INHOUDSOPGAWE:

Die KIM Uno - 'n emulator van 5 € mikroprocessor -uitrusting: 13 stappe (met foto's)
Die KIM Uno - 'n emulator van 5 € mikroprocessor -uitrusting: 13 stappe (met foto's)

Video: Die KIM Uno - 'n emulator van 5 € mikroprocessor -uitrusting: 13 stappe (met foto's)

Video: Die KIM Uno - 'n emulator van 5 € mikroprocessor -uitrusting: 13 stappe (met foto's)
Video: doubling the drop every time the PC survives #shorts 2024, Junie
Anonim
Image
Image
Die KIM Uno - 'n 5 € mikro -verwerker Dev Kit -emulator
Die KIM Uno - 'n 5 € mikro -verwerker Dev Kit -emulator
Die KIM Uno - 'n 5 € mikro -verwerker Dev Kit -emulator
Die KIM Uno - 'n 5 € mikro -verwerker Dev Kit -emulator

Die KIM Uno is 'n draagbare, sagteware -gedefinieerde ontwikkelingsstel vir (retro) mikroverwerkers. Maar laat ek die idee daarvan voorstel deur terug te gaan in die tyd:

Laat in 2018 het ek by my opgekom dat ek 'n klein draagbare mikroverwerker-uitrustingspakket wil bou, net soos die beroemde KIM-1 van MOS Technology, Inc. en ontwerp deur Chuck Peddle wat ook betrokke was by die skep van die 6502-SVE.

Maar die bou van 'n "kaalbeen" dev-kit met diskrete logika-komponente was geen opsie nie, aangesien dit 'n groot kragtoevoer nodig gehad het (aangesien die ou toestelle geneig is om ernstige stroom te neem) en die ontwikkeling baie tydrowend sou wees. En ek wil dit nou hê!

Daarom het ek die KIM Uno ontwerp as 'n draagbare toestel wat in een hand pas en met twee CR2032 -batterye aangedryf word. Dit gebruik die ATMega328p ("Arduino") mikrobeheerder wat op 8 MHz werk om 'n gewenste SVE na te boots (of na te boots). Hierdie argitektuur maak ook seker dat die geëmuleerde SVE's uitruilbaar is vir enigiets wat in die flitsgeheue van die mikrobeheerder pas. Dit is dus 'n veeldoelige toestel.

Toevallig kyk ek later na 'n baie goeie praatjie - The Ultimate Apollo Guidance Computer Talk (34C3) - op YouTube waar 'One Instruction Set Computers' of OISC's genoem word. Ek het nie van hulle geweet nie en het dit as die perfekte kandidaat gevind om dit te implementeer.

Die KIM Uno emuleer 'n SVE met slegs een instruksie: subleq - trek af en vertak as dit minder as of gelyk aan nul is.

As u saam met my hierdie instruksies volg, kan u in 'n japtrap u eie KIM Uno bou. En die beste deel - behalwe dat u dit na u smaak kan aanpas - is dat dit slegs 4, 75 € kos om te maak (einde 2018).

Een wenk: daar is 'n Git -bewaarplek wat al die lêers bevat wat deur die verskillende stappe van hierdie instruksies verskaf word. As u 'n paar bronne wil verander en dit met ons wil deel, kan u slegs 'n PR maak. Maar u kan daar ook alle lêers tegelyk aflaai. Eenvoudig na https://github.com/maxstrauch/kim-uno. Dankie!

Daar is nog 'n baie interessante projek, dieselfde genoem (KIM Uno), wat 'n werklike replika van die 6502 KIM Uno lewer. Kyk hier. Die skepper verkoop selfs die kit. As u dus belangstel in 6502 en van hierdie projek hou, moet u daar gaan kyk!

Stap 1: Verkry die PCB

Verkry die PCB
Verkry die PCB
Verkry die PCB
Verkry die PCB

Soos u kan sien, het ek die geleentheid gebruik om 'n PCB te ontwerp en professioneel te laat vervaardig. Aangesien dit ekstern vervaardig en aan u gestuur word, sal dit baie tyd neem (afhangende van waar u ter wêreld is;-)), om dit te bestel, is die eerste stap. Ons kan dan voortgaan met die ander stappe terwyl die PCB gemaak en na u gestuur word.

Ek het my PCB's in China by PCBWay vir slegs $ 5 bestel. Ek kry geen voordeel om PCBWay as my vervaardiger vir PCB's aan te bied nie; dit werk net goed vir my en kan ook goed vir u werk. Maar u kan dit op enige ander plek bestel, soos JLCPCB, OSH Park of enige plaaslike PCB -onderneming.

Maar as u dit by PCBWay wil bestel, kan u die aangehegte zip-lêer "kim-uno-rev1_2018-12-12_gerbers.zip" aflaai en dit sonder enige verandering direk na PCBWay oplaai. Dit is die oorspronklike lêer wat ek gebruik het om die PCB's wat u op die foto's kan sien, te bestel.

As u dit by 'n ander vervaardiger bestel, moet u dit moontlik weer uit die oorspronklike KiCad-bronne uitvoer, want ek het dit gegenereer met die spesifikasies van PCBWay wat u hier kan vind. Laai "kim-uno-kicad-sources.zip" af vir die oorspronklike KiCad-bronne en haal dit uit.

Maar daar is selfs 'n tweede manier: as u nie die PCB wil bestel nie, kan u u eie weergawe bou met behulp van perfboard of selfs 'n broodbord.

In elk geval: aangesien die PCB's nou onderweg is, kan ons fokus op die ander dele! Kom, volg my.

Stap 2: Verkry die komponente

Verkry die komponente
Verkry die komponente
Verkry die komponente
Verkry die komponente
Verkry die komponente
Verkry die komponente

Nou moet u die komponente kry. Hiervoor vind u 'n oorsigbeeld van alle komponente en hoeveelhede wat u benodig, aangeheg aan hierdie stap, sowel as 'n stuklijst (materiaalstuk).

Die stembus bevat skakels na eBay. Alhoewel hierdie aanbiedings moontlik gesluit is as u dit lees, kan u dit as 'n beginpunt gebruik. Die gebruikte komponente is redelik standaard.

In die volgende sal ek al die nodige komponente aan u verduidelik:

  • 7x 1 kΩ weerstande vir die sewe segmentskerms. U kan die waarde verlaag (bv. Tot 470 Ω) om dit helderder te laat skyn, maar dit verminder nie te veel nie, anders gaan die LED's dood of word die battery vinnig leeg. Ek het gevind dat hierdie waarde vir my werk
  • 1x 10 kΩ as 'n optrekweerstand vir die RESET-lyn van die mikrobeheerder
  • 1x 100nF kondensator om spanningspykers glad te maak (wat nie moet gebeur nie, want ons gebruik batterye, reg, maar vir 'n goeie mate …)
  • 1x ATMega328P in die DIP-28-pakket (gewoonlik genoem ATMega328P-PU)
  • 1x die hoof PCB - sien die vorige stap; óf self bestel óf gebou
  • 2x CR2032 batteryhouers
  • 1x SPDT (enkelpool, dubbel gooi) skakelaar wat basies drie kontakte het en in elk van sy twee toestande (aan of uit) verbind dit twee kontakte
  • 20x tasbare drukknoppies vir die sleutelbord. Om die agterkant van die PCB te gebruik, gebruik ek SMD tasbare drukknoppies (die standaard 6x6x6 mm) - dit is redelik maklik om te soldeer, soos u sal sien
  • OPSIONEEL: 1x 1x6 -penkop om die programmeerder aan te sluit, maar dit is opsioneel, soos u later sal sien
  • 1x sewesegment met 4 syfers en 1x sewesegment met 2 syfers - die bord neem slegs 9, 14 mm (0,36 duim) elemente met algemene anodebedrading. Beide vereistes is belangrik om 'n werkende eenheid te kry. Maar ook hierdie tipe sewe segment vertoon is baie algemeen

By hierdie stap kan u die lêer "component-datasheets.zip" vind wat meer akkurate inligting bevat oor die afmetings en tipes van die gebruikte komponente. Maar die meeste komponente is baie standaard en kan maklik vir min geld verkry word.

Nou moet u wag totdat u al die komponente gereed het om verder te soldeer. Gedurende hierdie tyd kan u reeds aan die einde spring en 'n bietjie lees oor die gebruik van die KIM Uno as u wil.

Stap 3: Oorsig van die soldeergereedskap

Oorsig van soldeergereedskap
Oorsig van soldeergereedskap
Oorsig van soldeergereedskap
Oorsig van soldeergereedskap

Vir die soldeer en bou van die KIM Uno benodig u die gereedskap wat deur die beelde getoon word:

  • Draadsnyer (om die einde van die komponentdrade te sny)
  • Plat tang
  • Paar pincet
  • (ordentlike) soldeer wat nie te dik is nie - ek gebruik 0,56 mm soldeer
  • 'N Soldeerbout - u het nie 'n hoë soldeerbout nodig nie (want ons doen ook nie vuurpylwetenskap hier nie) - ek gebruik die Ersa FineTip 260 nou lank en dit is regtig goed
  • 'N Vloeipen: die toevoeging van vloed aan die komponente en pads maak dit soveel makliker om dit te soldeer, aangesien die soldeer dan vanself na die regte plek "vloei"*
  • Opsioneel: 'n spons (van metaalwol) vir u soldeerbout

Om die KIM Uno later te programmeer, benodig u ook:

  • 'n rekenaar met die AVR-GCC-werktuigketting en avrdude om die firmware op te laai
  • 'n ISP (programmeerder) - soos u op die afbeelding kan sien, gebruik ek my Arduino Uno as 'n ISP met 'n spesiale skets - dus hoef u geen hardeware te koop nie

* 'n bietjie leiding deur mense nodig;-)

Is jy gereed? In die volgende stap gaan ons begin met die samestelling van die KIM Uno.

Stap 4: Soldeer #1: Voeg weerstande en kondensators by

Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by
Soldeer #1: Voeg weerstande en kondensators by

U moet altyd van die kleinste (in terme van komponenthoogte) komponente eers werk, tot die hoogste komponente laaste. Daarom begin ons met die byvoeging van die weerstande en buiging oor die bene agter sodat die weerstande maklik kan soldeer en op hul plek bly. Sny daarna die lang drade.

Voeg ook die klein 100 nF -kondensator op dieselfde manier by, nie in die beelde nie.

Een wenk: hou die draadpote in 'n klein houer, dit is soms handig.

Stap 5: Soldeer #2: Monteer die sleutelbord

Soldeer #2: Monteer die sleutelbord
Soldeer #2: Monteer die sleutelbord
Soldeer #2: Monteer die sleutelbord
Soldeer #2: Monteer die sleutelbord
Soldeer #2: Monteer die sleutelbord
Soldeer #2: Monteer die sleutelbord

Die volgende stap is om die 20 SMD tasbare skakelaars te soldeer. Aangesien hierdie werk 'n bietjie moeilik is, doen ons dit nou, wanneer die PCB plat op die werkbank lê.

Ons werk van bo na onder (of van links na regs as die PCB georiënteer is soos op die foto's) en begin met die eerste ry: kies een van die vier pads vir elke skakelaar en maak dit nat met die vloeipen.

Gebruik dan 'n pincet om 'n skakelaar te gryp en plaas dit versigtig op die vier pads. Soldeer dan slegs die been van die skakelaar op die pad wat u gekies en met vloeistof voorberei het. Hiervoor moet u soldeer met u strykyster "gryp" voordat u begin. Gebruik hierdie metode om die hele ry skakelaars te voltooi en slegs een been te soldeer.

Die prentjie met die pyle wys 'n vergroting van hoe die soldeerwerk presies gedoen is.

Nadat u die hele ry (slegs een pen) gesoldeer het, kan u klein aanpassings maak deur die pen weer te verhit en die skakelaar weer te plaas. Maak seker dat die skakelaars so goed as moontlik in lyn is.

As u tevrede is met die belyning, kan u alle ander penne natmaak met die vloeipen en dit dan soldeer deur dit met die soldeerbout aan te raak en 'n bietjie soldeer by te voeg deur ook daaraan te raak. U sal sien dat die soldeer direk op die kussing gesuig word.

Nadat u 'n ry of wat gesoldeer het, sal u agterkom dat u dit onder die knie kry, en dit is nie so moeilik nie, maar herhalend. Doen dus net die res, en u kry binnekort 'n voltooide sleutelbord.

Stap 6: Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif

Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif
Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif
Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif
Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif
Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif
Soldeer #3: die sewe segment -skerm, skakelaar en speldopskrif

Nou kan u die skakelaar en penkop (opsioneel) byvoeg deur dit met u vinger vas te hou en een pen te soldeer om dit aan die print te hou, sodat u die ander penne kan soldeer en uiteindelik die aanvanklike houpen kan aanraak.

Wees versigtig dat u nie met die warm soldeerbout verbrand nie. As u dit nie gemaklik voel nie, kan u 'n bietjie band (byvoorbeeld skilderband) gebruik om die komponent vas te hou. Op hierdie manier het u albei hande vry om te beweeg.

Die sewe segmentskerms word op dieselfde manier gesoldeer (sien prent): jy sit dit in, hou dit met jou hand of band vas en soldeer twee teenoorgestelde penne om dit vas te hou terwyl jy die ander penne kan soldeer.

Maar wees versigtig en plaas die sewe segmentskerm in die regte rigting (met die desimale kolletjies na die sleutelbord). Anders is jy in die moeilikheid …

Stap 7: Soldeer #4: Soldeer die mikrobeheerder

Soldeer #4: Soldeer die mikrobeheerder
Soldeer #4: Soldeer die mikrobeheerder

Noudat u baie oefening het, kan u die mikrobeheerder insteek met die kerf aan die bokant (of eerste pen) na die skakelaar gerig. Met 'n plat tang kan u die bene van die mikrobeheerder versigtig 'n bietjie buig, sodat dit by die gate van die PCB pas.

Aangesien dit styf pas, benodig u 'n bietjie beheerde krag om die mikrobeheerder in te sit. Die voordeel is dat dit nie val nie. Dit beteken dat u die tyd kan neem en dit van agter af soldeer.

Stap 8: Soldeer #5: Voeg die batteryhouers by (laaste stap)

Soldeer #5: Voeg die batteryhouers by (laaste stap)
Soldeer #5: Voeg die batteryhouers by (laaste stap)
Soldeer #5: Voeg die batteryhouers by (laaste stap)
Soldeer #5: Voeg die batteryhouers by (laaste stap)
Soldeer #5: Voeg die batteryhouers by (laaste stap)
Soldeer #5: Voeg die batteryhouers by (laaste stap)

Uiteindelik moet u die batteryhouers aan die agterkant byvoeg. Hiervoor gebruik u eenvoudig die vloeipen en maak al vier pads nat en kry soldeer op u strykyster. Rig die batteryhouer versigtig op albei pads in. Aan beide kante van die kontakte moet dieselfde hoeveelheid PCB -pad sigbaar wees. Raak die PCB -pad en die been van die batteryhouer met u strykyster. Die soldeersel vloei onder die kussing en daaroor en maak dit vas soos op die foto. As u hiermee probleme ondervind, kan u meer vloeistof met die pen byvoeg.

Stap 9: Flits die emulator

Die emulator flikker
Die emulator flikker
Flits die emulator
Flits die emulator
Flits die emulator
Flits die emulator

In die aangehegte zip-argief "kim-uno-firmware.zip" kan u die bronkode vir die emulator vind, tesame met 'n reeds saamgestelde 'main.hex' wat u direk na die mikrobeheerder kan oplaai.

Voordat u dit werklik kan gebruik, moet u die lontstukke van die mikrobeheerder instel sodat dit die interne 8 MHz -klok gebruik sonder om dit in twee te deel. U kan die taak verrig met die volgende opdrag:

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

As u nie avrdude ken nie: dit is 'n program om programme na 'n mikrobeheerder op te laai. U kan hier meer hieroor leer. U installeer dit basies en dan is dit gereed om te gebruik. Vir u opstelling moet u moontlik die argument van "-P" na 'n ander seriële poort verander. Kontroleer op u rekenaar watter seriële poort gebruik word (byvoorbeeld binne -in die Arduino IDE).

Hierna kan u die firmware op die mikrobeheerder flits met hierdie opdrag:

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

Weereens: dieselfde geld vir "-P" soos hierbo.

Aangesien ek nie 'n 'professionele' ISP (In-System Programmer) besit nie, gebruik ek altyd my Arduino UNO (sien prent) en die skets wat ek aangeheg het ('arduino-isp.ino', van Randall Bohn). Ek weet dat daar 'n nuwer weergawe is, maar met hierdie weergawe het ek die afgelope vyf jaar geen probleme ondervind nie, so ek hou dit. Dit werk net. Deur die opmerking in die kop van die skets te gebruik, kry u die pinout op die Arduino UNO en met behulp van die skema van die KIM Uno (sien aangeheg), kan u die pinout van die 1x6 ISP -kop op die KIM Uno kry. Die vierkantige pen, naby die sewe segment -vertoning, is pen 1 (GND). Die volgende penne is (in die regte volgorde): RESET, MOSI, MISO, SCK, VCC. U kan VCC óf op 3V3 óf op 5V koppel.

As u nie die 1x6 -pen -kopstuk bygevoeg het nie, kan u broodborddrade gebruik en dit in die verbindingsgate plaas en dit met u vinger hoekig - net soos op die foto. Dit maak genoeg kontak om die firmware te flits en die lont te stel. Maar as u van 'n meer permanente opset hou, moet u beslis die 1x6 -speldopskrifte byvoeg.

Ek het twee toestelle: 'n produksieweergawe sonder die penkoppe en 'n ontwikkelingsweergawe met penkoppe wat ek verbind laat en dit telkens tydens die ontwikkeling gebruik. Dit is baie gemakliker.

Stap 10: klaar

Klaar
Klaar
Klaar
Klaar

Nou is u klaar en kan u u eie subleq -programme op papier begin skryf, dit saamstel en dit dan in die geheue invoer.

Die KIM Uno het 'n vooraf geprogrammeerde Fibonacci-berekening wat begin by geheue 0x0a. Dit is standaard ingestel op n = 6, dus dit behoort 'n waarde van 8 te veroorsaak. Druk "Gaan" om die berekening te begin.

Stap 11: Ontleding van PCB -ontwerp

Ontleding van PCB -ontwerp
Ontleding van PCB -ontwerp
Ontleding van PCB -ontwerp
Ontleding van PCB -ontwerp

Na die voltooiing van hierdie projek het ek 'n paar punte gevind wat opmerklik is en wat in 'n nuwe hersiening van die raad aangespreek moet word:

  • die syskerm van die ATMega328p het nie die gewone kerf waar die eerste pen geleë is nie. Die DIP-28-voetspoor het nie eens 'n vierkantige blok waar die eerste pen geleë is nie. Dit moet beslis verbeter word met 'n meer gedetailleerde syskerm om verwarring te voorkom
  • die ISP -kop het geen verbindingsetikette op die syskerm nie. Dit maak dit moeilik om te herken hoe u dit met die ISP kan koppel
  • die ISP -kop kan verander word in 'n 2x6 -penkop met 'n standaard penuitleg om verwarring te voorkom

Afgesien van die punte, is ek baie bly hoe dit uitgewerk het en met die eerste probeerslag gewerk het.

Stap 12: Hoe om SUBLEQ te programmeer?

Image
Image
Hoe om SUBLEQ te programmeer?
Hoe om SUBLEQ te programmeer?
Hoe om SUBLEQ te programmeer?
Hoe om SUBLEQ te programmeer?

Soos aan die begin genoem, emuleer die huidige firmware van die KIM Uno wel 'n One Instruction Set Computer (OISC) en verskaf die subleq -instruksie om berekeninge uit te voer.

Die subleq -instruksie staan vir aftrek en vertakking as dit kleiner as of gelyk aan nul is. In pseudokode lyk dit soos volg:

subleq A B C mem [B] = mem [B] - mem [A]; as (mem [B] <= 0) gaan na C;

Aangesien die KIM Uno 'n 8-bis-masjien naboots, is alle argumente A, B en C 8-biswaardes en kan dit dus 'n totale hoofgeheue van 256 byte aanspreek. Dit kan duidelik uitgebrei word deur A, B en C multi-byte waardes te maak. Maar laat ons dit nou eenvoudig hou.

Die KIM Uno het ook 'randapparatuur': die skerm en die sleutelbord. Dit gebruik 'n geheue -gekarteerde argitektuur om die randapparatuur te koppel, alhoewel die geheuekaart baie eenvoudig is:

  • 0x00 = die Z -register (nul) en moet nul gehou word.
  • 0x01 - 0x06 = ses grepe wat die waarde van elke vertoningsegment verteenwoordig (van regs na links). 'N Waarde 0xf - sien die bronkode (main.c) vir meer besonderhede.
  • 0x07, 0x08, 0x09 = drie grepe waar elke greep twee sewe segmentvertonings verteenwoordig (van regs na links). Met hierdie geheue -liggings kan u slegs 'n resultaat vertoon sonder om die resultaat in twee hapjes te verdeel om dit op die enkelsyfergeheue 0x01 - 0x06 te plaas.
  • 0x0a+ = 'n Program begin by 0x0a. Tans word die "Go" -sleutel uitgevoer vanaf 0x0a reggestel.

Met hierdie inligting kan u nou 'n program in assembler skryf en die instruksies in die geheue invoer en dit dan uitvoer. Aangesien daar slegs een instruksie is, word slegs die argumente (A, B en C) ingevoer. Na drie geheue -liggings begin die volgende instruksie -argumente ensovoorts.

By hierdie stap vind u die lêer "Fibonacci.s" en ook 'n beeld van die handgeskrewe program, wat 'n voorbeeld is van Fibonacci. Maar wag: daar word drie instruksies gebruik - spesifiek ADD, MOV en HLT - wat nie subleq is nie. "Wat is die saak? Het jy nie gesê dat daar net een instruksie is nie, subleq?" vra jy? Dit is baie maklik: met subleq kan u hierdie instruksies baie naboots:

MOV a, b - kopieer data op plek a tot b kan bestaan uit:

  1. subvraag b, b, 2 (volgende instruksie)
  2. subleq a, Z, 3 (volgende instruksie)
  3. subleq Z, b, 4 (volgende instruksie)
  4. subleq Z, Z, bv. 5 (volgende instruksie)

Met behulp van die aftrekfunksie van subleq, wat mem - mem [a] en mem met die resultaat oorskryf, word die waarde gekopieer met behulp van die nulregister. En "subleq Z, Z, …" stel eenvoudig die nulregister op 0, ongeag die waarde van Z.

ADD a, b - voeg die waardes a + b by en stoor die som in b kan bestaan uit:

  1. subleq a, Z, 2 (volgende instruksie)
  2. subleq Z, b, 3 (volgende instruksie)
  3. subleq Z, Z, bv. 4 (volgende instruksie)

Hierdie instruksie bereken eenvoudig mem - (- mem [a]), wat mem + mem [a] is deur ook die aftrekfunksie te gebruik.

HLT - stop die SVE en beëindig die uitvoering:

Per definisie weet die emulator dat die SVE wil eindig as dit na 0xff spring (of -1 as dit gesing word). So eenvoudig

subleq Z, Z, -1

doen die taak en dui aan die emulator dat dit die emulasie moet beëindig.

Deur hierdie drie eenvoudige instruksies te gebruik, kan die Fibonacci -algoritme geïmplementeer word en werk dit goed. Dit is omdat die OISC alles kan bereken wat 'n 'regte' rekenaar kan bereken met slegs die instruksiesubseks. Maar daar is natuurlik baie afwykings, soos lengte en spoed van die kode. Maar dit is nietemin 'n uitstekende manier om te leer en te eksperimenteer met sagteware -programmering en rekenaars op 'n lae vlak.

By hierdie stap kan u ook die zip -argief "kim_uno_tools.zip" vind. Dit bevat 'n basiese samesteller en simulator vir die KIM Uno. Hulle is in NodeJS geskryf - maak seker dat u dit geïnstalleer het.

Die samestelling van programme

As u na "Fibonacci/Fibonacci.s" kyk, sal u agterkom dat dit die bronkode is vir die bespreekde Fibonacci -implementering. Om dit saam te stel en 'n program te maak wat die KIM Uno kan uitvoer, voer u die volgende opdrag in (in die wortel van die onttrekbare "kim_uno_tools.zip" -argief):

node assemble.js Fibonacci/Fibonacci.s

en dit sal óf 'n fout afdruk as u 'n fout gemaak het, óf die gevolglike program mors. Om dit te stoor, kan u die uitvoer kopieer en dit in 'n lêer stoor of eenvoudig hierdie opdrag uitvoer:

node assemble.js Fibonacci/Fibonacci.s> yourfile.h

Die uitset is so geformateer dat dit direk as 'n C -koplêer by die KIM Uno -firmware ingesluit kan word, maar die simulator kan dit ook gebruik om te simuleer. Tik eenvoudig in:

node sim.js jou lêer.h

En u sal die simulasieresultaat en die opbrengs van die KIM Uno op die skerm kry.

Dit was 'n baie kort inleiding tot hierdie gereedskap; Ek raai u aan om saam met hulle te speel en te kyk hoe dit werk. Op hierdie manier kry u 'n diepgaande kennis en leer u die funksioneringsbeginsels agter CPU's, instruksies, samestellers en emulators;-)

Stap 13: Outlook

Vooruitsigte
Vooruitsigte
Vooruitsigte
Vooruitsigte
Vooruitsigte
Vooruitsigte

Baie geluk

As u dit gelees het, het u waarskynlik deur die hele instruksies gegaan en u eie KIM Uno gebou. Dit is regtig lekker.

Maar die reis eindig nie hier nie - daar is 'n oneindige aantal opsies om die KIM Uno aan te pas en aan te pas by u behoeftes.

Die KIM Uno kan byvoorbeeld toegerus wees met 'n 'regte' retro -SVE -emulator wat die beroemde MOS 6502 of Intel 8085, 8086 of 8088 kan naboots.

Maar daar is ander gebruike moontlik, aangesien die hardeware -ontwerp redelik algemeen is. Die KIM Uno kan gebruik word as …

  • … 'n afstandbeheer bv. vir CNC's of ander toestelle. Miskien bedraad of toegerus met 'n IR -diode of enige ander draadlose sender
  • … 'n (heksadesimale) sakrekenaar. Die firmware kan baie maklik aangepas word en die ontwerp van die bord hoef nie baie verander te word nie. Miskien kan die syskerm met wiskundige bewerkings aangepas word en kan die gaping tussen die segmente verwyder word. Afgesien hiervan, is dit reeds gereed vir hierdie transformasie

Ek hoop dat u net soveel plesier gehad het om die KIM Uno te volg en hopelik te bou as wat ek dit ontwerp en beplan het. En as u dit verleng of verander - laat weet my asseblief. Cheers!

PCB -kompetisie
PCB -kompetisie
PCB -kompetisie
PCB -kompetisie

Naaswenner in die PCB -kompetisie

Aanbeveel: