Talaan ng mga Nilalaman:

Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika: 9 Mga Hakbang (na may Mga Larawan)
Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika: 9 Mga Hakbang (na may Mga Larawan)

Video: Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika: 9 Mga Hakbang (na may Mga Larawan)

Video: Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika: 9 Mga Hakbang (na may Mga Larawan)
Video: EPP 4 - ANG COMPUTER AT MGA BAHAGI NITO 2024, Hulyo
Anonim
Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika
Bumuo ng isang Computer W / Pangunahing Pag-unawa sa Elektronika

Nais mo bang magpanggap na ikaw ay talagang matalino at bumuo ng iyong sariling computer mula sa simula? Wala ka bang nalalaman tungkol sa kung ano ang kinakailangan upang makagawa ng isang walang-minimum na computer? Sa gayon, madali kung alam mo sapat tungkol sa electronics upang maitapon nang tama ang ilang mga IC. Ang itinuturo na ito ay ipagpapalagay na ikaw ay mahusay sa bahaging iyon, kasama ang ilang iba pang mga bagay. At kung hindi, hindi pa rin dapat maging napakahirap sundin kung alam mo kung paano tapos ang breadboarding / prototyping. Ang layunin ng pagtuturo na ito ay upang makuha ka ng isang gumaganang "computer" nang hindi alam ang isang buong tungkol sa kung paano sila gumagana. Saklaw ko ang mga kable at pangunahing kaalaman sa pagprograma, pati na rin ang magbigay ng isang napakaikling programa para sa iyo. Kaya't magsimula tayo.

Hakbang 1: Mga Bahagi at Bagay-bagay

Mga Bahagi at Bagay-bagay
Mga Bahagi at Bagay-bagay
Mga Bahagi at Bagay-bagay
Mga Bahagi at Bagay-bagay

Ang isang "computer" ay nangangailangan ng: kapangyarihan, input, pagproseso, memorya at output. Teknikal na magkakaroon tayo ng lahat ng mga bagay na ito. Sasakupin ko ang mga bagay na ito sa pagkakasunud-sunod.

Para sa lakas, kakailanganin mo ang isang 5 volt (dito ay may label na 5V) na mapagkukunan. Inirerekumenda na ito ay isang kinokontrol na mapagkukunan upang hindi mo sinasadyang magprito ng mga bahagi sa iyong circuit. Ang aming input ay magiging mga pindutan. Ang pagproseso ay nagpapaliwanag sa sarili; gumagamit kami ng isang processor. Ang memorya ay lalagyan lamang ng ROM. Ang panloob na pangkalahatang layunin ng rehistro ng processor ay magiging sapat upang magamit bilang RAM. Ang output ay magiging mga LED.

1 LM7805C - 5V Regulator

1 ZYLOG Z80 - Processor

1 AT28C64B - EEPROM

1 74LS273 - Octal D Flip-Flop

1 74HC374E - Octal D Flip-Flop

3 CD4001BE - Quad NOR Gate

1 NE555 - Tagabuo ng Orasan

2 1K Ohm Resistor

1 10K Ohm Resistor

1 10K Ohm Resistor Network; 8 Bussed O 8 Karagdagang 10K resistors

1 1uF Capacitor

1 100uF Capacitor

1 Push Button

1 3x4 Button Matrix O 8 Karagdagang Mga Push Button

8 LED - Hindi mahalaga ang Pagpili ng Kulay

8 330 Ohm Resistors o Resistor Network

1 Talagang Malaking Breadboard o Maramihang Mga Maliliit

Maraming at Maraming Wire

Sa aking eskematiko mayroon akong naka-install na isang stick ng SRAM. Hindi mo na kailangang magalala pa tungkol doon. Naidagdag ko lang ito sa eskematiko upang tumpak na maipakita ang aking tunay na circuit at idinagdag ko ito sa circuit para magamit sa hinaharap. Idinagdag din sa eskematiko ay isang quad O gate (74LS36). Ang mga input ng dalawang hindi nagamit na gate ay nakatali sa VCC at ang kanilang mga output ay naiwan na lumulutang (hindi iginuhit). Hindi rin iginuhit o nakalista sa itaas ang dalawang capacitor sa power circuit.

Pinakain ko ang kinokontrol na 12V sa 5V regulator upang pakainin ang buong breadboard. Nagiging mainit-init ito, kaya't nagsama ako ng isang heat sink upang palamig ito. Kung gagamit ka ng mas mababa sa 12V upang pakainin ang regulator (gumamit ng hindi bababa sa 7V), dapat itong magpatakbo ng mas cool.

Ang Z80 ay kung saan nangyayari ang mahika. Kinakailangan ang mga tagubilin na nakaimbak sa ROM at isinasagawa ang mga ito. Iniimbak ng EEPROM ang aming programa para maipatupad ng processor.

Ang octal flip-flop na aming output aparato na na-latch ang data sa data bus sa sarili nitong output. Pinapayagan kaming baguhin ang kung ano ang nasa bus, na isang napakahalagang hakbang na tapos nang maraming beses bawat tagubilin, nang hindi binabago ang nakikita ng gumagamit / manonood. Ang flip-flop ay hindi maaaring maghimok ng kasalukuyang kinakailangan upang magaan ang mga output na LED, kaya't pinapakain nila ang dalawa sa quad NOR gate chips na kumikilos upang buffer ang 8 mga linya ng data upang himukin ang mga LED. Dahil ang mga output ng mga pintuan ay baligtad, kailangan din nating i-wire ang mga LED upang ma-baligtad, ngunit makarating kami sa pagdating namin doon. Ang iba pang chip ng NOR ay ginagamit para sa pag-decode ng lohika ngunit tatlong pintuang-daan lamang ang ginagamit.

Ang octal flip-flop na ginamit para sa pag-input ay mahalagang parehong bagay. Ang mga output flip-flop ay humahawak sa kanilang output alinman sa mataas o mababa upang hindi ito magamit upang magmaneho ng bus; hahawak ito ng data sa bus. Ang flip-flop na ginamit para sa pag-input ay pumapalit sa / RESET pin na / EN, na higit pa o mas kaunti ang nagdidiskonekta ng mga output ng (at mula sa) maliit na tilad upang hindi ito maghawak ng data (mga tri-state output).

Hakbang 2: Mga kable ng Power, Clock at I-reset ang Mga Circuit

Ang kable ng Power, Clock at Reset Circuits
Ang kable ng Power, Clock at Reset Circuits
Pag-kable ng Power, Clock at I-reset ang Mga Circuit
Pag-kable ng Power, Clock at I-reset ang Mga Circuit
Pag-kable ng Power, Clock at I-reset ang Mga Circuit
Pag-kable ng Power, Clock at I-reset ang Mga Circuit

TANDAAN: Para sa lahat ng bahagi, i-wire muna ang mga riles ng kuryente. Sa lahat ng mga bagay upang makalimutan ang wire, ang mga chips ay mas malamang na makaligtas sa mga nakalimutan na mga koneksyon ng kuryente.

Ang circuit ng kuryente ay ang pinaka-simpleng circuit sa wire, na sinusundan ng pag-reset at mga circuit ng orasan, ayon sa pagkakabanggit. Sa larawan, ang input ng 12V ay nasa power strip sa dulong kanan. Ang brown wire, itinatago ang isang dilaw sa ilalim nito, pinapakain ang 12V sa regulator. Ang output ng regulator ay nagpapakain ng bawat iba pang power strip sa breadboard at bawat power strip ay nagbabahagi ng isang karaniwang batayan sapagkat iyan ang gumagana sa electronics.

Nangangailangan ang processor ng isang circuit ng orasan upang gumana. Kung wala ito, uupo lamang ito doon sa inisyal na estado nito at walang gagawin. Pinapatakbo ng orasan ang mga nagpoproseso ng panloob na rehistro ng paglilipat upang maaari itong makabuo ng mga signal upang gawin ang mga bagay-bagay. Magagawa ang anumang input ng orasan, kahit na isang simpleng risistor at pindutan ng push. Ngunit tumatagal ng maraming mga cycle ng orasan upang maisagawa ang mga tagubilin. Ang tagubilin na sumulat sa output ay tumatagal ng 12 cycle sa sarili nito. Marahil ay hindi mo nais na umupo doon at pindutin ang isang pindutan ng 100+ beses upang makakuha ng isang loop lamang ng code (ang mga aktwal na numero ay nasa dulo ng pagtuturo). Iyon ang para sa NE555. Ginagawa nito ang paglipat para sa iyo at ginagawa ito sa isang (medyo) mabilis na rate.

Bago ka magsimula sa anumang kable, maaaring gusto mong magpatuloy at alamin kung paano mo nais ang iyong mga sangkap na nakalatag sa pisara. Ang aking circuit ng orasan ay medyo inilalagay lamang sa ilalim ng board upang wala sa paraan ng iba pang mga bahagi. Ipagpapalagay namin na alam mo kung paano gumawa ng isang pangunahing orasan kasama ang timer. Kung hindi mo gagawin, gugustuhin mong maghanap ng "555 Kagila-gilalas" at sundin ang isang tutorial. Gamitin ang 1K risistor upang pumunta sa pagitan ng 5V rail at pin 7 ng timer (R1) at ang 10K sa pagitan ng pin 7 at pin 2 (R2). Tiyaking itali ang reset pin, pin 4, sa 5V rail upang ang timer ay maaaring gumana. Naglagay ako ng isang LED sa output ng minahan upang mapatunayan ko na gumagana talaga ang relo, ngunit hindi ito kinakailangan.

Ang isa pang pagpipilian sa NE555 ay upang i-set up ito bilang isang HINDI gate at gumamit ng isang 1K risistor upang itali ang output pabalik sa input. Kadalasang inirerekumenda na gumamit ng 3 timer upang gawin ito, ngunit nalaman ko na 1 lang ang dapat gumana nang maayos. Basta alam na kung gagawin mo ito, ito ay magpapasayaw sa napakataas na bilis at ito ay magiging napakahirap, imposible kahit na, upang sabihin na ang mga output LED ay kumikislap. Ang setup na ito ay tinatawag na isang "ring oscillator."

Tandaan na hindi pa namin kumokonekta ang orasan sa processor. Hinahanda na lang namin ito. Tandaan din ang logic chip sa itaas lamang ng orasan sa imahe. Ito ay naidagdag na sa paglaon at iyon lamang ang semi-makatuwirang lugar na natitira upang mailagay ito. Ginagamit ito para sa pagpili ng RAM / ROM. Ang itinuturo na ito ay hindi pinapansin ang RAM kaya't wala kang chip na ito sa iyong board.

Ngayon ay wire namin ang reset circuit. Una kailangan mong maghanap ng isang lugar sa iyong board para dito. Pinili ko mismo sa tabi ng orasan. Idagdag ang iyong pindutan sa pisara. Gumamit ng isang 1K risistor upang itali ang isang gilid ng pindutan sa 5V rail. Ang aming mga RESET na pin ay aktibo mababa, ibig sabihin kailangan namin itong hawakan nang mataas. Iyon ang para sa resistor. Ang junction na ito ay din kung saan kumonekta ang mga reset na pin. Ang kabilang panig ng pindutan ay dumidiretso sa lupa. Kung nais mo ng power-on reset, idagdag ang 10uF capacitor sa kantong ito din. Panatilihin nito ang boltahe sa mga reset na pin na mababa ang haba ng sapat upang maisaaktibo ang pag-reset ng circuitry sa loob ng processor at flip-flop.

Hakbang 3: Kable ng Z80

Ngayon nakarating kami sa nitty-gritty. I-wire namin ang hayop na Z80. Sa aking board, inilagay ko ang Z80 sa itaas sa parehong seksyon ng board bilang reset circuit. Tulad ng nakasaad dati, wire muna ang riles ng kuryente. Ang 5V ay pupunta sa pin 11 sa kaliwa at ang lupa ay isang pin pababa ngunit sa kanan. Maaaring napansin mo rin ang kakaibang lapad ng maliit na tilad. Magiging sanhi ito sa iyo upang magkaroon ng 3 bukas na konektor sa isang gilid sa breadboard at 2 sa kabilang panig. Ginagawa lamang nitong hindi gaanong maginhawa upang mag-wire ng karagdagang mga bagay-bagay kung pinili mo itong gawin.

Ang mga sumusunod na numero ng pin - Ipinapalagay kong alam mo kung paano bilangin ang mga pin sa isang IC - ay hindi ginagamit na mga input at dapat na nakatali sa 5V rail: 16, 17, 24, 25.

Naaalala mo ba ang orasan natin? Ang ouput nito ay pupunta sa pin 6 sa z80. Ang circuit ng pag-reset ay kumokonekta sa pin 26. Nang walang pagkakaroon ng iba pang mga bahagi sa board, ito ay kasing layo ng maaari kong makuha ka sa mga kable mismo ng z80. Mas maraming mga kable na nagawa dito ay magagawa sa mga susunod na hakbang.

Sapagkat mayroon na akong itinayo na circuit bago ko pa isinasaalang-alang ang pagsusulat ng itinuturo na ito, tatanggalin ko ang larawan hanggang sa susunod na hakbang.

Hakbang 4: Pag-kable ng ROM

Kable ng ROM
Kable ng ROM

TANDAAN: Maaaring gusto mong ihinto ang aktwal na paglalagay nito sa pisara kung kailangan pa ng program (higit pa sa paglaon).

Para sa ROM, inilagay ko ito sa tabi ng Z80 sa kanan at pinalitan din ito ng isang pin pababa sa breadboard. Pinayagan akong mag-wire ng address bus nang direkta, ngunit higit pa doon. Ang AT28C64B ay isang EEPROM, nangangahulugang maaari itong mai-program ng maraming beses sa pamamagitan ng paglipat ng ilang mga pin at pabalik. Hindi namin nais na ang aming EEPROM ay hindi sinasadyang magprograma muli ng kanyang sarili kapag nasa circuit ito. Kaya't sa sandaling nakabitin ang iyong mga riles ng kuryente, wire pin 27 (/ WE) sa 5V rail upang hindi paganahin ang tampok na pagsulat nang buo.

Napakaliit ng aking programa, kailangan ko lamang ng mas mababang 5 mga linya ng address (A0-A4) na konektado, ngunit nag-wire pa rin ako ng A5, A6 at A7 upang makapagsulat ako ng mas malalaking mga programa nang walang karagdagang trabaho. Ang mga karagdagang linya ng address (A8-A12) ay nakatali nang direkta sa lupa upang maiwasan ang hindi ginustong pag-access sa mas mataas na mga address mula sa mga lumulutang na input. Sa mga hindi nagamit na mga input ng address na nakatali sa lupa at ang control control ay nakatali sa 5V, ang mga kable ng natitira ay medyo prangka. Hanapin ang A0 sa processor at i-wire ito sa A0 sa ROM. Pagkatapos hanapin ang A1 sa processor at i-wire ito sa A1 sa ROM. Gawin ito hanggang sa i-wire mo ang lahat ng mga address nang magkasama. Sa imahe, ang aking address bus sa ROM ay tapos na sa asul na mga kable. Ang address bus na pupunta sa RAM ay tapos na sa pulang mga kable. Ang mga wires na ito ay ang lahat ng paunang gupitin at hinubaran habang sila ay dumating sa isang kit ng mga kable ng tinapay at perpekto para sa mga kable na ito.

Matapos makuha ang mga address na naka-wire (tinatawag itong address bus), gawin ang eksaktong parehong bagay para sa mga pin na may label na D0, pagkatapos D1, D2, atbp Gawin ito para sa lahat ng mga data pin (D0 - D7) at mayroon kang data bus wired. Halos tapos na kaming mag-kable ng ROM. Hanapin ang ROM / CE (paganahin ang chip) na pin at i-wire ito sa mga processor na pin 19, / MREQ (kahilingan sa memorya) at pagkatapos ay hanapin ang ROM / OE (paganahin ang output) at i-wire ito sa processor pin 21, / RD (basahin). Tapos na tayo. Ang lahat ng ito ay tapos na sa mga jumper wires dahil kailangan nilang pumunta sa kabilang panig ng processor at ang isang breadboard ay hindi nag-aalok ng sapat na silid upang magamit ang maayos na mga kable tulad nito.

Hakbang 5: Mga kable ng Output

Kable ng Output
Kable ng Output
Kable ng Output
Kable ng Output

Dahil hindi ito popular, pinili ko ang seksyon ng board sa kaliwa ng Z80 para sa output. Ilagay ang flip-flop doon at ikonekta ang mga ito sa mga riles ng kuryente. Ang Pin 1, / MR (reset) ay maaaring kumonekta nang direkta sa reset pin ng processor, ngunit maaari mo itong iwanang nakatali sa 5V rail. Ang paggawa nito ay magiging sanhi lamang upang magpakita ito ng data ng basura hanggang sa unang pagsulat. Pansinin kung paano ang chip ay may input ng orasan sa pin 11. Ang input na ito ay kakaiba sa na ito ay aktibo kapag ang pin ay napunta mataas. Tandaan din na ang pin na ito ay HINDI magkaparehong orasan na hinihimok ang processor. Ang orasan na ito ang nakakabit sa data na iginiit sa data bus.

Tandaan kung paano namin nakakonekta ang D0 - D7 sa ROM sa parehong mga pin sa processor? Gawin ang eksaktong kapareho para sa chip na ito. Ang D0 nito ay pupunta sa D0 sa data bus at iba pa. Ang mga pin na nagsisimula sa isang "Q" ay mga output. Bago natin i-wire ang mga iyon, kailangan nating magdagdag ng higit pang mga chips. Ginamit ko ang mga quad NOR gate dahil mayroon akong isang tubo ng mga ito at kailangan ko na ng isa, ngunit tungkol sa anumang maliit na tilad ay gagana kung wasto mo itong kawad. Maaari kong itali ang isang input sa lahat ng mga pintuan sa lupa at ginamit ang iba pang mga input pati na rin, mga input, ngunit pinili kong i-wire ang parehong mga input nang magkasama para sa pagiging simple.

Inilagay ko ang mga chips sa ibaba ng flip-flop upang gawing mas madali ang wire nang direkta nang walang mga jumper ngunit tumatakbo ako nang mababa sa wire sa puntong ito kaya't hindi ito mahalaga sa huli. Ang Q0, Q1….. Q7 sa flip-flop ay papunta sa mga input sa mga indibidwal na gate. Sa 4 na gate sa bawat package / chip, kailangan ko ng 2 package at ginamit lahat ng gate. Kung nakakita ka ng isang bersyon ng flip-flop na maaaring maghimok ng mga LED nang hindi nangangailangan ng buffered na tulad nito, hindi kinakailangan ang dalawang chips na ito. Kung gumagamit ka ng mga pintuang-bayan bilang isang buffer na walang baligtad na mga output (AT / O / XOR), maaari mong i-wire ang mga LED na inaasahan mo. Kung gumagamit ka ng parehong mga bahagi tulad ng sa akin at / o ang mga output ay baligtad, ang mga LED ay dapat na wired tulad ng inilarawan sa ibaba. Ipinapakita ng unang imahe ang bahagi ng IC ng output.

Gamitin ang 330 Ohm resistors upang itali ang mga LED na positibo (Anode) sa 5V rail at ikonekta ang negatibo (cathode) sa output ng mga pintuan. Maaari mong makita sa pangalawang imahe na gumamit ako ng dalawang mga resistor bus, bawat isa ay may limang panloob na resistors lamang. Ang mga kable ng LED na tulad nito ay magpapasindi sa kanila kapag naka-off ang output. Ginagawa namin ito dahil naka-off ang output kapag nakabukas ang input. Siguraduhin na nasusubaybayan mo kung aling mga gate ang iyong mga output mula sa flip-flop control. Maliban kung makakalat ang iyong mga LED o ang kanilang pagkakasunud-sunod ay walang katuturan, ang pagkawala ng subaybayan sa kanila ay maaaring maging sanhi ng pagkalito sa paglaon kapag tinatanong mo ang iyong sarili kung bakit ang output ay mali.

Hakbang 6: Kable ng Input

Kable ng Input
Kable ng Input

Dalhin ang flip-flop na 74HC374 at ilagay ito sa kung saan. Ang minahan ay nasa ibaba ng Z80 patungo sa ilalim ng board. Naaalala mo ba noong huli nating kumonekta sa D0 sa D0 at D1 sa D1 at iba pa? Sa oras na ito ikonekta namin ang Q0 sa D0 at Q1 sa D1 at iba pa. Sa kabutihang palad hindi namin kailangang magdagdag ng anumang buffer chips sa oras na ito, haha. Sa halip ay ikonekta namin ang isang 10K Ohm sa bawat "D" pin (D0-D7) at ground at pagkatapos ay isang pindutan sa parehong mga pin at ang 5V rail. O maaari kang gumamit ng isang risistor bus at bawasan ang bilang ng iyong bahagi ng maraming. Ang isang 3x4 button matrix (walang matrixed output !!) ay makakatulong din. Ipinapakita ng imahe ang kabuuan ng input circuit kasama ang pandikit na lohika (ang bahaging iyon ay susunod).

Hakbang 7: Log ng Pandikit

Mayroon kaming isang huling bagay na dapat i-wire. Ito ay tinatawag na "pandikit na lohika" sapagkat ginagamit ito upang ma-decode ang mga signal ng kontrol upang maandar ang lahat; ito ang magkakasamang humahawak sa circuit. Kapag nais ng processor na magsulat ng data sa output, kapwa / IORQ at / WR (20 at 22 ayon sa pagkakabanggit) ay bumababa at ang ipinadalang data ay naititi sa data bus. Ang pin ng orasan sa parehong mga flip-flop ay aktibo mataas, nangangahulugang ang data ay nai-latched kapag ang pin ay nakatanggap ng isang mataas na signal. Gumagamit kami ng isang NOR gate at wire / IORQ sa isang input ng gate at / WR sa kabilang input. Kapag ang alinman ay mataas, nangangahulugang ang mga circuit ng IO ay hindi napili o hindi isinagawa ang isang operasyon sa pagsusulat, ang output na nagpapakain sa orasan ng flip-flop ay mananatiling mababa. Kapag ang parehong mga input ay mababa, at kapag lamang, ang output ay napupunta mataas at ang flip-flop latches ang data.

Ngayon kailangan naming i-wire ang input flip-flop. Maaari naming i-wire ang orasan pin sa halos parehong paraan tulad ng naunang, ngunit gumagamit ng / IORQ at / RD. Ngunit hindi katulad ng iba pang flip-flop, mayroon din kaming isang / OE pin na kailangang mababa lamang kapag ang / IORQ at / RD ay mababa. Maaari kaming gumamit ng isang O gate. O maaari lamang naming kunin ang signal na mayroon kami para sa orasan at ibaliktad ito sa isa sa dalawang pabaliktad na gate na mayroon na kaming magagamit. Sa oras ng paglalahad ng itinuturo na ito, wala akong magagamit na OR gate, kaya ginamit ko ang isa sa huling pagpipilian. Ang paggamit ng huling pagpipilian ay nangangahulugang hindi ko na kailangan na magdagdag ng anumang mga karagdagang bahagi.

Hakbang 8: Programming

Kung wasto ang iyong mga kable at malinaw ang aking paliwanag, ang natitira ay upang ma-program ang ROM. Mayroong ilang mga paraan upang magawa ito. Maaari mong gawin ang madaling paraan at mag-order ng isang bagong chip off ng Digikey. Kapag nag-order ka ng bahagi, magkakaroon ka ng pagpipilian upang mag-upload ng isang HEX file at ipaprogram nila ito bago nila maipadala. Gamitin ang HEX o OBJ na mga file na nakakabit sa itinuturo na ito at hintayin lamang itong dumating sa koreo. Ang Opsyon 2 ay upang bumuo ng isang programmer na may isang Arduino o anumang bagay. Sinubukan ko ang takbo na iyon at nabigo itong kopyahin nang tama ang ilang data at inabot ako ng ilang linggo upang malaman iyon. Natapos kong gawin ang pagpipilian na 3, na kung saan ay i-program ito sa pamamagitan ng mga switch ng kamay at flip upang makontrol ang mga linya ng address at data.

Kapag na-convert nang direkta sa OP Code ng processor, ang buong program na ito ay nakasalalay lamang sa 17 bytes ng address space, kaya't ang programa sa pamamagitan ng kamay ay hindi masyadong kakila-kilabot. Naglo-load ang programa sa pangkalahatang layunin na rehistro B ang halaga ng 00. Ang rehistro B ay ginagamit para sa pag-iimbak ng isang resulta ng nakaraang idagdag. Tulad ng A register kung saan nangyayari ang matematika, hindi namin ito gagamitin upang mag-imbak ng data.

Nagsasalita tungkol sa rehistro ng A, nagsasagawa kami ng isang IN na utos, na binabasa ang input, at iniimbak ang nabasang data sa A. Pagkatapos ay idinagdag namin ang mga nilalaman ng rehistro B at inilabas ang resulta.

Pagkatapos nito, magparehistro ng A ay nakopya sa rehistro B. At pagkatapos ay gumawa kami ng isang serye ng mga jump command. Dahil ang lahat ng mga jumps ay tumuturo sa mas mababang byte ng mga linya ng address, at dahil ang itaas na byte ng pagtuturo ng jump ay ibinibigay sa pangalawang argumento at "00," mapipilit namin ang bawat jump na sundan ng isang NOP. Ginagawa namin ito upang magbigay ng oras sa pagitan ng pagpapakita ng output at input ng pagbabasa upang maiwasan ang hindi sinasadyang pag-input. Ang bawat jump ay gumagamit ng sampung mga cycle ng orasan at ang bawat NOP ay gumagamit ng apat. Kung ang loop ay tumatagal ng masyadong mahaba para sa gusto mo, maaari mong dagdagan ang bilis ng orasan o maaari mong muling pagprogram ito upang magamit ang isang mas kaunting pagtalon.

Hakbang 9: Pagsubok

Kung na-wire mo nang tama ang lahat at na-program nang tama ang iyong ROM, mayroong isang panghuling hakbang na gagawin: i-plug up ito at tingnan kung gumagana ito. Pindutin ang isang pindutan at maghintay ng ilang segundo. Tumatagal ng 81 na mga cycle ng orasan para maabot ng programa ang unang loop at ang bawat loop ay tumatagal ng 74 na mga cycle ng orasan.

Kung hindi ito gumana, suriin ang mga shorts at hindi magkakaugnay na mga pin (bubukas) at iba pang mga isyu sa mga kable. Kung nag-opt out ka sa pag-reset ng power-on, kakailanganin mong gumawa ng isang manu-manong pag-reset bago gumawa ang processor ng anumang bagay. Maaari mo ring ilakip ang mga LED sa address bus upang makita kung kumilos sila. Nagkaroon ako ng mga isyu sa aking sarili, kaya idikit ko ang mga ito nang direkta sa data bus sa halip. Pinayagan akong makita kung ano ang ipinapahiwatig sa pagitan ng processor at ROM nang hindi na kinakailangang mag-alala tungkol sa kung nabasa nang tama ang ROM, na kung saan ay mangangailangan ng mga diagram ng tiyempo at hindi ko nais na makisangkot doon. Ito ay naging isang mahusay na pagpipilian sapagkat sa wakas ay nahuli ko ang mga may problemang OP Code na naiimbak nang hindi tama.

Inirerekumendang: