Isi kandungan:

Bina Komputer W / Pengertian Asas Elektronik: 9 Langkah (dengan Gambar)
Bina Komputer W / Pengertian Asas Elektronik: 9 Langkah (dengan Gambar)

Video: Bina Komputer W / Pengertian Asas Elektronik: 9 Langkah (dengan Gambar)

Video: Bina Komputer W / Pengertian Asas Elektronik: 9 Langkah (dengan Gambar)
Video: OMG๐Ÿ˜ฑ๐Ÿ˜ฑ๐Ÿ˜ฑ๐Ÿ˜ฑ๐Ÿ˜ฑ..!!!! Ransomware Menyerang..... 2024, November
Anonim
Membina Komputer W / Asas Pemahaman Elektronik
Membina Komputer W / Asas Pemahaman Elektronik

Adakah anda pernah mahu berpura-pura anda benar-benar pintar dan membina komputer anda sendiri dari awal? Adakah anda tidak tahu apa yang diperlukan untuk membuat komputer minimum? Baiklah, jika anda cukup mengetahui mengenai elektronik untuk menyatukan beberapa IC dengan betul. Pengajaran ini akan menganggap anda pandai dalam bahagian itu, ditambah dengan beberapa perkara lain. Dan jika tidak, tetap tidak terlalu sukar untuk diikuti jika anda tahu bagaimana pembuatan papan roti / prototaip dilakukan. Tujuan pengajaran ini adalah untuk menjadikan anda "komputer" yang berfungsi tanpa mengetahui banyak tentang bagaimana mereka berfungsi. Saya akan merangkumi pendawaian dan asas pengaturcaraan, serta menyediakan program yang sangat pendek untuk anda. Oleh itu, mari kita mulakan.

Langkah 1: Bahagian dan Bahan

Bahagian dan Bahan
Bahagian dan Bahan
Bahagian dan Bahan
Bahagian dan Bahan

"Komputer" memerlukan: kuasa, input, pemprosesan, memori dan output. Secara teknikal kita akan mempunyai semua perkara ini. Saya akan membahas perkara-perkara ini mengikut urutan itu.

Untuk mendapatkan kuasa, anda memerlukan sumber 5 volt (dengan ini dilabelkan sebagai 5V). Sebaiknya sumber yang dikawal agar anda tidak menggoreng bahagian dalam litar secara tidak sengaja. Input kami adalah butang. Pemprosesan adalah jelas; kami menggunakan pemproses. Memori hanya akan terdiri daripada ROM. Daftar tujuan umum dalaman pemproses akan cukup digunakan sebagai RAM. Output akan menjadi LED.

1 LM7805C - Pengatur 5V

1 ZYLOG Z80 - Pemproses

1 AT28C64B - EEPROM

1 74LS273 - Flal-Flop Octal D

1 74HC374E - Octal D Flip-Flop

3 CD4001BE - Pintu Quad NOR

1 NE555 - Penjana Jam

2 1K Perintang Ohm

1 Perintang Ohm 10K

1 Rangkaian Perintang Ohm 10K; 8 Bussed ATAU Perintang 10K tambahan

1 Kapasitor 1uF

1 Kapasitor 100uF

1 Butang Tekan

Matriks Tombol 3x4 ATAU 8 Butang Tekan Tambahan

8 LED - Pilihan Warna Tidak Penting

8 330 Perintang Ohm atau Rangkaian Perintang

1 Breadboard Benar-benar Besar atau Beberapa Orang Kecil

Banyak dan banyak wayar

Dalam skema saya, saya memasang tongkat SRAM. Anda juga tidak perlu risau. Saya hanya menambahkannya ke skema untuk menggambarkan litar sebenar saya dengan tepat dan saya menambahkannya ke litar untuk kegunaan masa depan. Juga ditambahkan ke skema adalah gerbang quad OR (74LS36). Kedua-dua input gerbang yang tidak digunakan diikat pada VCC dan outputnya dibiarkan terapung (tidak dilukis). Juga tidak dilukis atau disenaraikan di atas adalah dua kapasitor pada litar kuasa.

Saya memasukkan 12V regulator ke regulator 5V untuk memberi makan keseluruhan papan roti. Ia menjadi agak panas, jadi saya memasang pendingin untuk menyejukkannya. Sekiranya anda menggunakan kurang dari 12V untuk memberi makan pengatur (gunakan sekurang-kurangnya 7V), ia harus berjalan lebih sejuk.

Z80 adalah tempat keajaiban berlaku. Ia memerlukan arahan yang disimpan dalam ROM dan melaksanakannya. EEPROM menyimpan program kami untuk dijalankan oleh pemproses.

Flip-flop oktal yang merupakan peranti output kami yang memasukkan data pada bus data ke outputnya sendiri. Ini membolehkan kita mengubah apa yang ada di dalam bas, yang merupakan langkah yang sangat penting dilakukan berkali-kali setiap arahan, tanpa mengubah apa yang dilihat pengguna / penonton. Flip-flop tidak dapat menggerakkan arus yang diperlukan untuk menyalakan LED output, jadi mereka memasukkan dua cip gerbang quad NOR yang bertindak untuk menyangga 8 baris data untuk menggerakkan LED. Oleh kerana keluaran gerbang terbalik, kita juga harus memasang LED untuk dibalikkan, tetapi kita akan sampai ke tahap itu apabila kita sampai di situ. Cip NOR yang lain digunakan untuk penyahkodan logik tetapi hanya tiga pintu digunakan.

Flip-flop oktal yang digunakan untuk input pada dasarnya adalah perkara yang sama. Flip-flop keluaran menahan outputnya sama ada tinggi atau rendah sehingga tidak dapat digunakan untuk memandu bas; ia akan menyimpan data di dalam bas. Flip-flop yang digunakan untuk input menggantikan pin / RESET dengan / EN, yang lebih kurang memutuskan output (dan dari) cip sehingga tidak akan menahan data (output tri-keadaan).

Langkah 2: Pendawaian Litar Daya, Jam dan Tetapkan Semula

Pendawaian Litar Kuasa, Jam dan Tetapkan Semula
Pendawaian Litar Kuasa, Jam dan Tetapkan Semula
Pendawaian Litar Kuasa, Jam dan Tetapkan Semula
Pendawaian Litar Kuasa, Jam dan Tetapkan Semula
Pendawaian Litar Kuasa, Jam dan Tetapkan Semula
Pendawaian Litar Kuasa, Jam dan Tetapkan Semula

CATATAN: Untuk semua bahagian, pasangkan rel elektrik terlebih dahulu. Dari semua perkara yang perlu dilupakan, kerepek cenderung tidak dapat bertahan daripada sambungan kuasa terlupa.

Litar kuasa adalah litar yang paling mudah untuk dawai, diikuti dengan litar ulang dan litar jam. Dalam gambar, input 12V berada di jalur kuasa di sebelah kanan. Kawat coklat, menyembunyikan kuning di bawahnya, memberi 12V kepada pengatur. Keluaran pengatur memberi makan setiap jalur kuasa lain di papan roti dan setiap jalur kuasa mempunyai persamaan kerana itulah cara kerja elektronik.

Pemproses memerlukan litar jam untuk beroperasi. Tanpa itu, ia hanya akan duduk di sana dalam keadaan awal dan tidak melakukan apa-apa. Jam mengoperasikan register pergeseran dalaman prosesor sehingga dapat menghasilkan isyarat untuk melakukan sesuatu. Apa-apa input jam akan dilakukan, walaupun perintang dan butang tekan sederhana. Tetapi memerlukan banyak kitaran jam untuk melaksanakan arahan. Arahan untuk menulis ke output memerlukan 12 kitaran dengan sendirinya. Anda mungkin tidak mahu duduk di sana dan menekan butang 100+ kali untuk mendapatkan satu gelung kod sahaja (nombor sebenarnya ada di hujung arahan). Itulah tujuan NE555. Ia melakukan pertukaran untuk anda dan ia melakukannya pada kadar yang (relatif) cepat.

Sebelum anda memulakan pendawaian apa-apa, anda mungkin mahu terus maju dan mengetahui bagaimana anda mahu komponen anda diletakkan di papan tulis. Litar jam saya agak diletakkan di bahagian bawah papan supaya tidak menjadi komponen lain. Kami akan menganggap anda tahu bagaimana membuat jam asas dengan pemasa. Sekiranya tidak, anda ingin mencari "555 Astable" dan mengikuti tutorial. Gunakan perintang 1K untuk pergi antara rel 5V dan pin 7 pemasa (R1) dan 10K antara pin 7 dan pin 2 (R2). Pastikan untuk mengikat pin reset, pin 4, ke rel 5V agar pemasa dapat berfungsi. Saya meletakkan LED pada output saya supaya saya dapat mengesahkan bahawa jam sebenarnya berfungsi, tetapi tidak diperlukan.

Pilihan lain dengan NE555 adalah menetapkannya sebagai gerbang NOT dan menggunakan perintang 1K untuk mengikat output kembali ke input. Biasanya disyorkan untuk menggunakan 3 pemasa untuk melakukan ini, tetapi saya mendapati bahawa hanya 1 yang berfungsi dengan baik. Ketahuilah bahawa jika anda melakukan ini, ia akan berayun pada kelajuan yang sangat tinggi dan sangat sukar, bahkan mustahil, untuk memberitahu bahawa LED output berkelip. Penyediaan ini dipanggil "osilator cincin."

Perhatikan bahawa kami belum menghubungkan jam ke pemproses. Kami hanya menyiapkannya. Perhatikan juga cip logik tepat di atas jam dalam gambar. Ia ditambahkan kemudian dan itu adalah satu-satunya tempat separa munasabah yang tersisa untuk meletakkannya. Ia digunakan untuk pemilihan RAM / ROM. Ini boleh mengabaikan RAM sehingga anda tidak akan mempunyai cip ini di papan anda.

Sekarang kita memasang litar semula. Mula-mula anda perlu mencari tempat di papan anda untuk itu. Saya memilih tepat di sebelah jam. Tambahkan butang anda ke papan. Gunakan perintang 1K untuk mengikat satu sisi butang ke rel 5V. Pin RESET kami aktif rendah, yang bermaksud kami mesti menahannya tinggi. Itulah tujuan perintang. Persimpangan ini juga di mana pin tetapan semula bersambung. Bahagian lain butang terus ke tanah. Sekiranya anda mahukan tetapan semula kuasa, tambahkan kapasitor 10uF ke persimpangan ini juga. Ia akan memastikan voltan pada pin tetapan semula cukup rendah untuk mengaktifkan litar semula di dalam pemproses dan flip-flop.

Langkah 3: Pendawaian Z80

Sekarang kita sampai ke nitty-gritty. Kami akan mengikat binatang itu Z80. Di papan saya, saya meletakkan Z80 di bahagian atas pada bahagian papan yang sama dengan litar ulang. Seperti yang dinyatakan sebelumnya, kawal rel kuasa terlebih dahulu. 5V menuju ke pin 11 di sebelah kiri dan tanah satu pin ke bawah tetapi di sebelah kanan. Anda mungkin juga menyedari lebar cip yang ganjil. Ini akan menyebabkan anda mempunyai 3 penyambung terbuka di satu sisi di papan roti dan 2 di sebelah yang lain. Ini hanya menjadikannya lebih senang untuk memasukkan barang tambahan jika anda memilih untuk melakukannya.

Nombor pin berikut - saya anggap anda tahu cara mengira pin pada IC - adalah input yang tidak digunakan dan mesti diikat pada rel 5V: 16, 17, 24, 25.

Ingat jam kita? Ouputnya menuju ke pin 6 pada z80. Litar ulang menyambung ke pin 26. Tanpa komponen lain di papan, sejauh ini saya dapat membuat anda menggunakan kabel z80 itu sendiri. Lebih banyak pendawaian yang dilakukan akan dilakukan pada langkah-langkah kemudian.

Kerana saya telah membina litar sebelum saya mempertimbangkan untuk menulis ini, saya akan menahan gambar sehingga langkah seterusnya.

Langkah 4: Pendawaian ROM

Pendawaian ROM
Pendawaian ROM

CATATAN: Anda mungkin mahu menahan diri daripada meletakkannya di papan jika masih perlu diprogramkan (lebih lanjut kemudian).

Untuk ROM, saya meletakkannya di sebelah Z80 di sebelah kanan dan juga meletakkannya satu pin ke bawah di papan roti. Ini membolehkan saya memasukkan bas alamat terus, tetapi lebih lanjut kemudian. AT28C64B adalah EEPROM, yang bermaksud dapat diprogramkan berkali-kali dengan mematikan dan mematikan beberapa pin. Kami tidak mahu EEPROM kami memprogram sendiri secara tidak sengaja semasa berada di litar. Oleh itu, setelah rel elektrik anda disambungkan, kawat pin 27 (/ WE) ke rel 5V untuk mematikan ciri tulis sama sekali.

Program saya sangat kecil, saya hanya memerlukan 5 baris alamat yang lebih rendah (A0-A4) yang disambungkan, tetapi saya memasang A5, A6 dan A7 sehingga saya dapat menulis program yang lebih besar tanpa kerja tambahan. Garis alamat tambahan (A8-A12) diikat terus ke tanah untuk mengelakkan akses yang tidak diingini ke alamat yang lebih tinggi daripada input terapung. Dengan input alamat yang tidak digunakan diikat ke tanah dan kawalan tulis diikat pada 5V, kabel selebihnya agak mudah. Cari A0 pada pemproses dan pasangkannya ke A0 pada ROM. Kemudian cari A1 pada pemproses dan pasangkannya ke A1 pada ROM. Lakukan ini sehingga anda menyatukan semua alamat. Dalam gambar, bas alamat saya ke ROM dilakukan dengan pendawaian biru. Bas alamat yang menuju ke RAM dilakukan dalam pendawaian merah. Wayar-wayar ini semuanya dipotong dan dilucutkan ketika terdapat dalam alat pendawaian papan roti dan sesuai untuk pendawaian ini.

Setelah anda mendapatkan alamat berwayar (ini disebut bas alamat), lakukan perkara yang sama untuk pin berlabel D0, kemudian D1, D2, dll. Lakukan ini untuk semua pin data (D0 - D7) dan anda mempunyai bas data berwayar. Kami hampir selesai memasang kabel ROM. Cari pin ROM / CE (cip aktif) dan pasangkannya ke pin pemproses 19, / MREQ (permintaan memori) dan kemudian cari ROM / OE (keluaran membolehkan) dan kembalikan ke pemproses pin 21, / RD (baca). Kami kini selesai. Semua ini dilakukan dengan wayar jumper kerana mereka harus pergi ke bahagian lain pemproses dan papan roti tidak menawarkan ruang yang cukup untuk menggunakan pendawaian yang kemas seperti itu.

Langkah 5: Pendawaian Keluaran

Pendawaian Keluaran
Pendawaian Keluaran
Pendawaian Keluaran
Pendawaian Keluaran

Kerana tidak berpopulasi, saya memilih bahagian papan di sebelah kiri Z80 untuk output. Letakkan flip-flop di sana dan sambungkan rel elektrik. Pin 1, / MR (reset) boleh menyambung terus ke pin reset pemproses, tetapi anda boleh membiarkannya terikat pada rel 5V. Melakukan ini hanya akan menyebabkan ia menunjukkan data sampah sehingga penulisan pertama. Perhatikan bagaimana cip mempunyai input jam pada pin 11. Input ini pelik kerana ia diaktifkan ketika pin naik tinggi. Perhatikan juga bahawa pin ini BUKAN jam yang sama yang mendorong pemproses. Jam ini mengaitkan data yang ditegaskan di bus data.

Ingat bagaimana kita menghubungkan D0 - D7 pada ROM ke pin yang sama pada pemproses? Lakukan perkara yang sama untuk cip ini. D0nya pergi ke D0 di bas data dan sebagainya. Pin yang bermula dengan "Q" adalah output. Sebelum memasukkannya, kita perlu menambah lebih banyak kerepek. Saya menggunakan gerbang quad NOR kerana saya mempunyai tiub dan saya sudah memerlukannya, tetapi mengenai cip apa pun akan berfungsi jika anda memasangkannya dengan betul. Saya mungkin mengikat satu input pada semua pintu ke tanah dan menggunakan input lain juga, tetapi juga, tetapi saya memilih untuk menyatukan kedua-dua input tersebut untuk kesederhanaan.

Saya meletakkan kerepek di bawah flip-flop untuk memudahkan kawat secara langsung tanpa jumper tetapi saya kurang menggunakan wayar pada ketika ini sehingga tidak begitu penting pada akhirnya. The Q0, Q1โ€ฆ.. Q7 pada flip-flop menuju ke input pada gerbang individu. Dengan 4 pintu di setiap bungkusan / cip, saya memerlukan 2 bungkusan dan menggunakan semua pintu. Sekiranya anda menemui versi flip-flop yang dapat menggerakkan LED tanpa perlu disangga seperti ini, kedua-dua cip ini tidak diperlukan. Sekiranya anda menggunakan gerbang sebagai penyangga yang tidak mempunyai output terbalik (AND / OR / XOR), maka anda boleh memasang LED seperti yang anda harapkan. Sekiranya anda menggunakan bahagian yang sama dengan saya dan / atau outputnya terbalik, LED harus disambungkan seperti yang dijelaskan di bawah. Gambar pertama menunjukkan bahagian IC output.

Gunakan perintang 330 Ohm untuk mengikat LED positif (Anode) ke rel 5V dan sambungkan negatif (katod) ke output gerbang. Anda dapat melihat pada gambar kedua bahawa saya menggunakan dua bus perintang, masing-masing dengan hanya lima perintang dalaman. Pendawaian LED seperti ini akan menyala apabila output dimatikan. Kami melakukan ini kerana output dimatikan semasa input dihidupkan. Pastikan anda memastikan pintu mana yang dikeluarkan dari kawalan flip-flop. Kecuali LED anda akan tersebar atau pesanannya tidak bermakna, kehilangannya boleh menyebabkan kekeliruan di kemudian hari apabila anda bertanya kepada diri sendiri mengapa outputnya salah.

Langkah 6: Pendawaian Input

Pendawaian Input
Pendawaian Input

Ambil flip-flop 74HC374 dan letakkan di suatu tempat. Tambang berada di suatu tempat di bawah Z80 menuju ke bawah papan. Ingat kali terakhir ketika kita menghubungkan D0 ke D0 dan D1 ke D1 dan seterusnya? Kali ini kita menghubungkan Q0 ke D0 dan Q1 ke D1 dan seterusnya. Syukurlah, kita tidak perlu menambahkan buffer chip kali ini, haha. Sebaliknya, kita akan menyambungkan Ohk 10K ke setiap pin "D" (D0-D7) dan arde dan kemudian butang ke pin yang sama dan rel 5V. Atau anda boleh menggunakan bus perintang dan mengurangkan jumlah bahagian anda. Matriks butang 3x4 (tanpa output matrik !!) juga akan membantu. Gambar menunjukkan keseluruhan litar input bersama dengan logik gam (bahagian itu seterusnya).

Langkah 7: Logik Lem

Kami mempunyai satu perkara terakhir yang perlu dilakukan. Ia dipanggil "log log" kerana ia digunakan untuk menyahkod isyarat kawalan untuk menjadikan semuanya berfungsi; inilah yang menyatukan litar. Apabila pemproses ingin menulis data ke output, keduanya / IORQ dan / WR (masing-masing 20 dan 22) menjadi rendah dan data yang dihantar ditegaskan pada bus data. Pin jam pada kedua flip-flop aktif tinggi, yang bermaksud data terkunci ketika pin menerima isyarat tinggi. Kami menggunakan gerbang NOR dan wayar / IORQ ke satu input gerbang dan / WR ke input lain. Apabila kedua-duanya tinggi, bermakna litar IO tidak dipilih atau operasi tulis tidak dilakukan, output yang memberi makan jam flip-flop tetap rendah. Apabila kedua-dua input rendah, dan hanya apabila, output menjadi tinggi dan flip-flop mengikat data.

Sekarang kita perlu memasukkan input flip-flop. Kita boleh memasang pin jam dengan cara yang sama seperti sebelumnya, tetapi menggunakan / IORQ dan / RD. Tetapi tidak seperti flip-flop yang lain, kami juga memiliki pin OE yang hanya perlu diturunkan hanya ketika / IORQ dan / RD rendah. Kita boleh menggunakan pintu OR. Atau kita boleh mengambil isyarat yang kita miliki untuk jam dan membalikkannya dengan salah satu daripada dua pintu terbalik yang sudah kita ada. Pada masa menyatakan ini, saya tidak mempunyai gerbang ATAU, jadi saya menggunakan satu pilihan terakhir. Menggunakan pilihan terakhir bermaksud saya tidak perlu menambah bahagian tambahan.

Langkah 8: Pengaturcaraan

Sekiranya pendawaian anda betul dan penjelasan saya jelas, yang tinggal hanyalah membuat ROM diprogramkan. Terdapat beberapa cara untuk menyelesaikan perkara ini. Anda boleh mengambil jalan mudah dan memesan cip baru Digikey. Semasa anda memesan bahagian tersebut, anda akan mempunyai pilihan untuk memuat naik fail HEX dan mereka akan memprogramnya sebelum menghantarnya. Gunakan fail HEX atau OBJ yang dilampirkan pada arahan ini dan tunggu sahaja sampai di surat. Pilihan 2 adalah membina programmer dengan Arduino atau sesuatu. Saya mencuba kebiasaan itu dan gagal menyalin data tertentu dengan betul dan saya mengambil masa berminggu-minggu untuk mengetahuinya. Saya akhirnya melakukan pilihan 3, iaitu memprogramnya dengan suis tangan dan flip untuk mengawal alamat dan garis data.

Setelah ditukarkan terus ke OP Code pemproses, keseluruhan program ini terletak hanya dalam 17 bait ruang alamat, jadi pengaturcaraan dengan tangan tidak terlalu mengerikan. Program memuat ke daftar tujuan umum B nilai 00. Daftar B digunakan untuk menyimpan hasil tambah sebelumnya. Oleh kerana daftar A adalah tempat matematik berlaku, kita tidak akan menggunakannya untuk menyimpan data.

Bercakap tentang daftar A, kami melakukan perintah IN, yang membaca input, dan menyimpan data yang dibaca di A. Kemudian kami menambahkan kandungan register B dan mengeluarkan hasilnya.

Selepas itu, daftar A disalin ke daftar B. Dan kemudian kami melakukan satu siri arahan lompat. Kerana semua lompatan menunjuk ke bait yang lebih rendah dari baris alamat, dan kerana bait atas arahan lompatan diberikan dalam argumen kedua dan adalah "00", kita dapat memaksa setiap lompatan diikuti oleh NOP. Kami melakukan ini untuk memberi masa antara menunjukkan output dan membaca input untuk mengelakkan input tidak sengaja. Setiap lompatan menggunakan sepuluh pusingan jam dan setiap NOP menggunakan empat. Sekiranya gelung terlalu lama sesuai dengan keinginan anda, anda dapat meningkatkan kelajuan jam atau anda dapat memprogramkannya kembali untuk menggunakan satu lompatan yang lebih sedikit.

Langkah 9: Menguji

Sekiranya anda menyambungkan semuanya dengan betul dan ROM anda diprogramkan dengan betul, ada satu langkah terakhir yang perlu diambil: pasang dan lihat apakah ia berfungsi. Tekan butang dan tunggu beberapa saat. Diperlukan 81 putaran jam untuk program mencapai gelung pertama dan setiap gelung mengambil 74 pusingan jam.

Sekiranya tidak berfungsi, periksa seluar pendek dan pin yang tidak bersambung (terbuka) dan masalah pendawaian lain. Sekiranya anda memilih untuk tidak menghidupkan semula, anda perlu melakukan tetapan semula manual sebelum pemproses melakukan apa-apa. Anda juga boleh memasang LED ke bus alamat untuk melihat apakah mereka berkelakuan. Saya menghadapi masalah itu sendiri, jadi saya terus memasukkannya ke bas data. Ini membolehkan saya melihat apa yang dikomunikasikan antara pemproses dan ROM tanpa perlu risau sekiranya ROM dibaca dengan betul, yang memerlukan rajah masa dan saya tidak mahu melibatkannya. Ternyata menjadi pilihan yang baik kerana akhirnya saya dapat menangkap Kod OP yang bermasalah yang disimpan dengan tidak betul.

Disyorkan: