Anda di halaman 1dari 35

Diterjemahkan dari bahasa Inggris ke bahasa Indonesia - www.onlinedoctranslator.

com

8
Mikroprosesor
8-bit yang
khas

Mikroprosesor 8-bit dijelaskan dalam beberapa detail untuk


memberikan landasan di mana orang lain dapat dibangun karena
kisah mikroprosesor adalah salah satu evolusi daripada 'tiba-tiba'.

Mikroprosesor 8-bit – Z80180


Mikroprosesor ini adalah versi modern dari favorit lama yang disebut
Z80 yang dikembangkan pada tahun 1978 yang merupakan versi
perbaikan dari Intel 8080. Ada banyak kesamaan karena beberapa
insinyur yang merancang 8080 meninggalkan Intel dan mulai bekerja
untuk Zilog untuk membangun Z80 yang terbukti menjadi salah satu
mikroprosesor paling populer dan paling lama hidup – masih banyak
digunakan bahkan di ponsel.
Ketika Zilog mengembangkan Z80180, mereka secara alami ingin
mempertahankan pelanggan mereka sebelumnya dengan membuat

1
versi baru yang kompatibel dengan Z80 sebelumnya. Hal ini
memungkinkan pelanggan cara yang mudah dan murah untuk
memperbarui sistem mereka tanpa biaya desain yang tinggi untuk
memulai dari awal dengan perangkat yang sama sekali berbeda.

2
Sebuah tipikalMikroprosesor
8-bit
Z80180 dapat menjalankan program apa pun yang ditulis untuk Z80
serta menambahkan beberapa fitur baru. Secara teknis, ini disebut
sebagai menyediakan kompatibilitas mundur penuh.

X di Z8X180
Jika kita pergi ke dealer Ford untuk membeli truk, mereka akan
menawari kita seluruh rangkaian truk, yang semuanya pada dasarnya
sama tetapi dengan pilihan ukuran mesin, kotak roda gigi, pengaturan
tempat duduk, dan banyak pilihan lainnya. Dengan cara ini, mereka
dapat menyenangkan jumlah maksimum pelanggan tanpa
menimbulkan biaya desain ulang yang signifikan.
Mikroprosesor hampir sama. Mereka mulai dengan desain dasar dan
versi serupa ditunjukkan dengan sedikit perubahan pada nomor tipe.
Sejauh ini, Zilog telah memproduksi Z80180, Z8S180, dan Z8L180.
Dengan membandingkan nomor tipe, kita dapat melihat bahwa mereka
hanya berbeda dalam angka atau huruf ketiga dan dengan mengganti
huruf ini dengan X kita dapat merujuk ke tipe umum sebagai Z8X180.
Penggunaan X ini secara umum digunakan di seluruh industri.
Kelompok mikroprosesor disebut sebagai keluarga.
Terlepas dari dorongan dari industri komputer untuk mikroprosesor
yang lebih cepat dan lebih cepat, ada banyak tujuan yang ideal untuk
mikroprosesor kecil, lambat dan sederhana. Miliaran mikroprosesor
dan mikrokontroler 4 dan 8-bit berputar jauh tertanam di dalam
benda-benda seperti oven microwave, printer, dan instrumen.
Sebagian besar dari kita berbagi rumah dengan sekitar lima puluh
perangkat ini tanpa menyadari keberadaannya. Mereka secara besar-
besaran melebihi jumlah mikroprosesor komputer berkecepatan tinggi
yang dipublikasikan dengan baik.

Bagian dalam unit pemrosesan pusat (CPU)


Gambar 8.1 menunjukkan bagian utama CPU Z80180. Ini terdiri dari
sejumlah register berbeda yang menyimpan atau menggunakan data
ketika:

Gambar 8.1
Unit
pemrosesan
pusat (CPU)

3
Pengenalan Mikroprosesor dan Mikrokontroler

4
Sebuah tipikalMikroprosesor
8-bit
menjalankan instruksi dalam program. Untuk menjaga kompatibilitas
mundur, sebagian besar register menggunakan sistem pelabelan yang
sama dengan huruf agar tetap akrab bagi siapa saja yang telah
menggunakan Z80.

Petunjukdaftar
Register instruksi hanyalah sebuah memori kecil yang mampu
menyimpan 8 bit, atau 1 byte informasi. Informasi ini merupakan
instruksi untuk dijalankan oleh mikroprosesor. Informasi tersebut
dikunci ke dalam register instruksi untuk melepaskan bus data internal
untuk tujuan lain. Itu tidak melakukan apa pun dengan input biner - itu
hanya mengingat apa itu.

Dekoder instruksi
Dekoder instruksi adalah bagian dari mikroprosesor yang benar-benar
dapat melaksanakan suatu instruksi. Langkah pertama adalah
mengidentifikasi instruksi mana yang telah dimasukkan. Ini dilakukan
dengan membandingkan kode binernya dengan daftar yang disimpan
secara internal. Setelah menemukan instruksi, ia mengikuti program
bawaan yang disebut program mikro. Mikroprogram ini dirancang ke
dalam mikroprosesor oleh pabrikan dan merinci semua langkah yang
diperlukan untuk menyelesaikan instruksi apa pun yang mampu
dilakukannya. Ini adalah bagian yang sensitif dan kritis secara komersial
dari mikroprosesor.
Ketika Z80180 diberi tugas, itu harus diberi instruksi. Sebuah
instruksi dalam bentuk angka biner 8-bit. Kami akan kembali ke ini
sebentar lagi.

Unit aritmatika dan logika (ALU)


Ini adalah kalkulator saku sederhana. Itu dapat menambah,
mengurangi, mengalikan, membagi, dan melakukan berbagai trik
dengan gerbang logika AND, OR, XOR dll. Dibandingkan dengan
rata-rata kalkulator ilmiah, ini sangat buruk.

bank register CPU


Informasi teknis tentang mikroprosesor akan selalu menyertakan
diagram atau daftar register internal. Register adalah memori kecil,
masing-masing antara 8 dan 128 bit, tergantung pada mikroprosesor
yang dipertimbangkan. Di Z80180, semuanya berukuran 8 atau 16
bit.
Setiap mikroprosesor memiliki koleksi registernya sendiri sehingga
penting untuk membaca informasi teknis dengan cermat untuk melihat

101
Pengenalan Mikroprosesor dan Mikrokontroler
apa yang mereka lakukan.
Ada 'register tujuan umum' yang berada di bawah kendali pengguna dan
dapat digunakan untuk berbagai tujuan penyimpanan sementara.

102
Sebuah tipikalMikroprosesor
8-bit
Ada juga register tujuan khusus yang didedikasikan untuk fungsi tertentu,
seperti register instruksi, misalnya.
Z80180 memiliki enam belas register tujuan umum, dan enam untuk
tujuan khusus. Gambar 8.2 menunjukkan register.

Angka8.2
Z80X80
register
internal

Kami akan berkonsentrasi pada dua register teratas untuk saat ini.
Himpunan register utama dan set register alternatif adalah identik
kecuali untuk huruf ' yang kecil. Ini ' disebut 'prime' jadi D' akan
dibaca sebagai 'dee prime'. Perdana hanya ada untuk membedakan
antara dua set register.
Mengapa memiliki dua set? Memiliki dua set memungkinkan
pemrogram untuk menggunakan set register utama sementara register
utama dapat dimuat dengan informasi lain yang siap digunakan segera
bila diperlukan.
Bayangkan mikroprosesor sedang sibuk mengendalikan mesin cetak
ketika alarm kebakaran diaktifkan. Ketika sinyal alarm kebakaran
mencapai mikroprosesor, mikroprosesor segera meninggalkan program
pencetakan dan mulai menjalankan program 'Alarm Kebakaran' yang
memperingatkan petugas pemadam kebakaran, mengevaluasi gedung,
dll. Beberapa informasi untuk menjalankan program ini dapat disimpan
di perangkat cadangan dari register. Ketika program alarm telah selesai,
mikroprosesor dengan tenang beralih kembali ke set register utamanya,
dan melanjutkan pekerjaan pencetakannya sampai meleleh dalam api.
103
Pengenalan Mikroprosesor dan Mikrokontroler

Akumulator
Pemrogram dapat menggunakannya kapan saja untuk menyimpan angka
biner 8-bit. Itu juga dapat menyimpan angka untuk digunakan dalam
operasi aritmatika atau untuk operasi logika seperti AND, OR dll. Hasil
perhitungan tersebut dimasukkan kembali ke akumulator setelah selesai.
Karena hanya register 8-bit, register ini hanya dapat menampung satu
byte pada satu waktu sehingga data sebelumnya yang disimpan dalam
register ini akan ditimpa segera setelah data lainnya disimpan.

Pendaftaran bendera
Ini adalah register 8-bit tetapi tidak biasa karena setiap bit yang
disimpan cukup independen dari yang lain. Di semua register lain,
setiap bit hanyalah bagian dari nilai biner tunggal sehingga setiap bit
memiliki nilai numerik.
Register status atau register flag seperti jendela bagi kita untuk
melihat cara kerja mikroprosesor. Ini lebih seperti sistem komunikasi
sederhana. Misalnya, ini memungkinkan kita untuk mengatakan
kepada mikroprosesor, 'jika Anda melihat angka negatif selama
perhitungan Anda, beri tahu saya'.
Kita tidak perlu memperhatikan bendera, itu hanya indikator yang
mungkin kita perhatikan atau abaikan, seperti yang kita inginkan –
seperti termometer di dinding.
Setiap bendera diidentifikasidengan huruf dan ini ditunjukkan pada
Gambar 8.3. Anda akan melihat bahwa dua bit, 3 dan 5, ditandai
dengan X untuk menunjukkan bahwa mereka tidak digunakan. Bit-bit
ini dibiarkan cadangan untuk pengembangan selanjutnya (yang tidak
pernah terjadi).

Gambar 8.3
Daftar bendera
Z80180

Catatan: Dalam mikroprosesor, komputer, dan elektronik pada


umumnya, sesuatu yang ditandai dengan X tidak digunakan, jadi
kami tidak peduli berapa voltase atau nilai binernya.
104
Sebuah tipikalMikroprosesor
8-bit
Catatan lain: sebuah bendera dikatakan 'diatur' ketika nilainya 1 dan
'dihapus' ke 0.

105
Pengenalan Mikroprosesor dan Mikrokontroler

Tandabend
era (S)
Bendera S hanyalah salinan bit 7 akumulator. Angka negatif
memiliki 1 di bit 7 dan angka positif memiliki 0 di bit 7 sehingga
bendera ini menunjukkan tanda nomor tersebut. Anda mungkin
ingat bahwa angka besaran bertanda menggunakan 1 untuk
menunjukkan angka negatif dan 0 untuk menunjukkan angka
positif. Demikian juga angka negatif yang dinyatakan dalam
bentuk komplemen dua akan memiliki bit kiri sebagai 1. Angka
nol diperlakukan sebagai angka positif sehingga kita tidak dapat
menggunakan bendera S untuk melihat hasil nol. Kami melakukan
ini dengan menggunakan bendera 'nol' khusus seperti yang akan
kita lihat sebentar lagi.

Bendera nol
(Z)
Bendera Z menghabiskan seluruh waktunya untuk melihat hasil nol.
Anda mungkin ingat bahwa ketika kami melihat penggunaan gerbang
XOR, kami menggunakan gerbang ini untuk memeriksa nomor kode di
mesin ATM tunai. Ketika nilai yang dimasukkan dan nomor kartu sama,
maka uang tunai dapat ditarik. Apa yang sebenarnya terjadi adalah kedua
angka itu dibandingkan dan jika sama, maka hasilnya akan menjadi nol
dan bendera Z akan beraksi. Ini 'mengatur' atau berubah menjadi biner 1
jika melihat hasil nol dan tetap pada biner 0 di waktu lain.
Dua hal yang harus diwaspadai. Bendera Z hanya menuju ke satu status
jika semua bit dalam hasil terbaru adalah nol. Juga, berhati-hatilah
dengan jalannya: hasil 0 membuat flag Z = 1; hasil tidak nol, Z flag = 0.
Semua hasil ini akan memberikan nilai flag Z nol:

0100 0000
1111 1111
0000 0001
1001 1010

Hanya hasil dari 0000 0000 yang akan membuat flag Z menjadi biner 1.

Menambahkan/mengurangiflag(N)
Bendera N hanya ada di sana untuk memberi tahu kita apakah instruksi
aritmatika terakhir adalah 'tambah' atau 'kurangi'. N = 0 untuk
penjumlahan, N = 1 untuk pengurangan. Tidak terlalu menarik.

Bendera angkut (C) dan bendera setengah angkut (H)


Ketika penambahan dilakukan, terkadang menghasilkan sedikit yang
terbawa ke kolom berikutnya. Bendera C menyalin nilai carry dari bit 7
dan flag H mencatat carry dari bit 3 ke bit 4 selama penambahan. Ini
106
Sebuah tipikalMikroprosesor
8-bit
juga mencerminkan nilai 'pinjaman' dalam pengurangan.

107
Pengenalan Mikroprosesor dan Mikrokontroler

Berikut adalah contoh penambahan yang menunjukkan flag


C dan H.

01101001
11000011
00101100
11 1

0 + 1 + carry = 0 Tidak ada carry dari kolom ini jadi H flag = 0


dan carry 1 jadi
C bendera = 1

Paritas/kelimpahanflag(P/V)
Ini digunakan untuk dua tujuan terpisah.
'V' dalam judul mengacu pada oVerflow dalam perhitungan
aritmatika. Beberapa kombinasi angka dapat disalahartikan dan
memberikan jawaban yang tampaknya salah, seperti yang akan kita
lihat nanti.
Ketika bendera melihat kemungkinan kesalahan, itu diatur, ketika tidak
ada kesalahan, itu dihapus.
Berikut adalah contoh di mana kita bisa melihat masalah.
Kami akan menambahkan dua angka positif +96 dan +66 sehingga
meskipun kami tidak dapat menebak hasilnya, setidaknya kami tahu
bahwa itu adalah angka positif.

0 1 1 0 0 0 0 0 = 96
0 1 0 0 0 0 1 0 = 66 +
1 0 1 0 0 0 1 0 = –34??
1

Bit tanda menunjukkan angka negatif

Dalam contoh ini, kami telah menambahkan dua angka yang dimulai
dengan nol dan oleh karena itu positif dan hasilnya dimulai dengan
satu, yang merupakan angka negatif sehingga bendera P/V akan
ditetapkan.
108
Sebuah tipikalMikroprosesor
8-bit
Cara mudah untuk memeriksa kemungkinan kesalahan adalah dengan
melihat carry ke bit 7 dan carry out bit 7.

109
Pengenalan Mikroprosesor dan Mikrokontroler

Aturannya adalah:

Membawa dan
melaksanakan atau = Tidak ada kesalahan jadi P/V flag =
Tidak ada barang masuk dan 0
tidak ada barang bawaan

Dalam contoh kita, ada 1 yang dibawa ke bit 7 dari kolom


sebelumnya tetapi tidak ada bit yang dilakukan dari bit 7. Ini tidak
sesuai dengan aturan di atas sehingga flag P/V akan diatur ke 1 yang
menunjukkan kemungkinan kesalahan dalam hasil.
Tujuan kedua adalah untuk beroperasi dalam mode paritas.
Dalam mode ini, ia memeriksa satu byte data dan menghitung jumlah
1 status, jika totalnya adalah bilangan genap, bendera P/V diatur dan
jika ganjil, dihapus.
Jadi byte 10110101 berarti P/V = 0 karena angka 1 muncul 5 kali,
yang merupakan angka ganjil. Dan 10010110 akan menghasilkan P/V
= 1 karena ada empat kejadian angka 1 muncul dan 4 adalah angka
genap.
Bendera ini beroperasi dalam mode P atau V tergantung pada
instruksi yang dilakukan pada saat itu.
Kita akan melihat paritas secara lebih rinci di Bab 17.

Register serba guna


Register tujuan umum semuanya adalah register 8-bit tetapi jika kita
mau, kita dapat menggunakannya dua sekaligus sebagai register 16-
bit. Saat memasangkannya, pilihan kita terbatas pada cara yang
disarankan oleh Gambar 8.2. Kita dapat menggabungkan BC, DE
atau HL tetapi itu bukan pilihan bebas, kita tidak dapat memilih dua
seperti B dan L. Kita dapat menggunakan pasangan seperti BC
sebagai register 16-bit dan, pada saat yang sama, menggunakan
D/E /H/L sebagai register 8-bit terpisah. Seperti biasa, set register
alternatif berperilaku dengan cara yang persis sama.
Mereka telah melabeli empat yang pertama sebagai B, C,D dan E, jadi
mungkin agak aneh menggunakan H dan L untuk dua yang terakhir.
Alasan untuk ini adalah bahwa register ini juga digunakan untuk melacak
alamat memori. Z8018X memiliki bus alamat 16-bit sehingga
memerlukan register 16-bit untuk dapat menyimpan alamat lengkap. H
dan L singkatan dari byte Tinggi dan Rendah dari alamat jadi jika kita
ingin menyimpan alamat 2684H, kita akan menempatkan 84 di register L
dan 26 di register H, menggunakan biner tentunya. Selain digunakan
110
Sebuah tipikalMikroprosesor
8-bit
untuk menyimpan alamat, register H dan L masih dapat digunakan untuk
tujuan lain yang kita inginkan, seperti B,C, D dan E.

111
Pengenalan Mikroprosesor dan Mikrokontroler

Register tujuan khusus

Penghitung program (PC)


Program adalah daftar instruksi yang harus dijalankan oleh
mikroprosesor. Sebelum digunakan, mereka harus disimpan di beberapa
ROM atau RAM. Mari kita asumsikan bahwa kita menggunakan alamat
mulai dari 6400H. Untuk menjalankan program kita harus memberitahu
mikroprosesor untuk 'pergi' dari 6400H.
Apa yang sebenarnya kita lakukan adalah memuat alamat 6400H ke
dalam program counter dan mikroprosesor dimulai dari sana. Setelah
menyelesaikan instruksi di 6400H, ia pergi ke alamat 6401H berikutnya
dan kemudian 6402H dll hingga mencapai akhir program.
Tujuan dari program counter adalah untuk melacak alamat yang akan
digunakan selanjutnya.

Penunjuk tumpukan (SP)


Jika seseorang memberi kami nomor telepon untuk diingat,
kemungkinan besar kami akan meraih secarik kertas dan pensil untuk
menuliskannya. Catatan kita mungkin terlihat seperti Gambar 8.4.

Gambar 8.4
Nomor
untukingat

Jika kita kemudian diberi beberapa nomor lagi, kemungkinan besar kita
akan menuliskannya, secara berurutan, di bawah yang pertama seperti
pada Gambar 8.5.

Gambar 8.5
Beberapa nomor lagi

112
Sebuah tipikalMikroprosesor
8-bit
Kita dapat membacanya kembali secara berurutan dengan membaca
yang paling bawah terlebih dahulu, kemudian yang berikutnya dan
terakhir yang paling atas. Yang pertama masuk adalah yang terakhir
keluar.
Mikroprosesor dapat melakukan hal serupa dengan menyimpan
informasi dalam serangkaian lokasi memori 16-bit yang disebut
'tumpukan'. Tumpukan dimuat secara berurutan dan kemudian
diturunkan mulai dari nomor terakhir yang disimpan dan bekerja kembali
ke atas tumpukan. Nomor pertama yang disimpan akan diambil terakhir
dan untuk alasan ini akan disebut metode 'masuk pertama, keluar
terakhir' atau FILO. Untuk kebingungan maksimum, ini juga bisa disebut
sistem LIFO yang, tentu saja, berarti persis sama. Pikirkan tentang hal
itu.
Di dalam mikroprosesor, serangkaian lokasi RAM dicadangkan untuk
digunakan sebagai tumpukan dan penghitung alamat harus digunakan
untuk melacak alamat tumpukan yang akan digunakan selanjutnya.
Penghitung ini disebut penunjuk tumpukan karena 'menunjuk ke' alamat
berikutnya yang akan digunakan.
Tumpukan umumnya digunakan oleh mikroprosesor untuk menyimpan
data pada basis yang sangat sementara. Kami diizinkan untuk
menggunakannya tetapi mikroprosesor mengambil prioritas dan tidak
tahu bahwa kami telah mengutak-atiknya. Sebagai contoh, jika
mikroprosesor telah menyimpan tiga bit data secara berurutan seperti
pada Gambar 8.6(a) dan kita meletakkan satu bagian data di akhir seperti
pada Gambar 8.6(b), sekarang akan ada data di empat lokasi. Namun,
mikroprosesor tidak akan menyadari hal ini. Ketika mikroprosesor ingin
mengambil datanya, mikroprosesor akan membongkar tiga byte dan
secara tidak sengaja mendapatkan yang salah seperti pada Gambar
8.6(c).

Gambar 8.6
Menggunakan tumpukan

113
Pengenalan Mikroprosesor dan Mikrokontroler

Moral dari cerita ini adalah tinggalkan tumpukan itu sendiri – atau
berhati-hatilah! Data teknis akan selalu memberi Anda informasi yang
cukup untuk dapat mengetahui apakah mikroprosesor akan
menggunakan tumpukan atau tidak, tetapi masih perlu banyak upaya
untuk memastikannya.

Daftar indeks
Kami memiliki dua register indeks, satu disebut X dan yang lainnya
disebut Y. Keduanya melakukan fungsi yang sama.
Indeks digunakan dalam situasi di mana kita ingin melakukan urutan
tugas serupa satu demi satu. Mungkin untuk menggunakan data yang
disimpan dalam serangkaian lokasi memori. Isi 16-bit register indeks
dapat ditambahkan ke isi program counter (PC) untuk menghasilkan
alamat baru.
Sebagai contoh, mari kita asumsikan bahwa kita sedang menjalankan
sebuah program yang setelah menggunakan alamat 2600H kita ingin
menggunakan beberapa data yang disimpan di alamat 3800H. Kita dapat
melakukan ini dengan memuat nomor 16-bit 1200H ke dalam register X
dan menginstruksikan mikroprosesor untuk pergi ke alamat yang ditulis
sebagai PC + IX (penghitung program dan indeks X). Dalam hal ini,
mikroprosesor menuju ke alamat 2600H + 1200H = 3800H untuk
mengambil data yang akan digunakan. Lompatan dari 2600H ke 3800H
ini disebut offset atau kita dapat mengatakan bahwa register indeks X
telah memberikan offset 1200H. Dalam contoh ini, register indeks Y
dapat digunakan dengan baik.
Register indeks sering digunakan untuk memasukkan data yang
sebelumnya dimasukkan ke dalam tabel atau dari bagian lain dari
memori. Pengguna program mungkin diminta untuk mengetikkan
angka. Nomor ini akan dimasukkan dalam RAM tetapi program yang
akan menggunakan data ini disimpan dalam ROM. Offset yang sesuai
di salah satu register indeks dapat menggeser alamat secara memadai
untuk membawanya ke area RAM dari peta memori.
Register ini juga digunakan dalam situasi dimana program mencari
respon dari pengguna. Layar mungkin menunjukkan:

PENCETAKAN

Masukkan jumlah salinan yang akan dicetak

Kita dapat menerapkan ini dengan menyimpan respons di salah satu


register indeks dan, saat printer melakukan setiap salinan, jumlah
yang disimpan dikurangi satu (dikurangi) hingga mencapai nol.
Setiap kali penghitung dikurangi, kami menginstruksikan
114
Sebuah tipikalMikroprosesor
8-bit
mikroprosesor untuk memeriksa

115
Pengenalan Mikroprosesor dan Mikrokontroler

keadaan bendera Z. Ketika hitungan akhirnya mencapai nol, bendera Z


akan disetel dan printer dapat dihentikan.

penghitung
R(R)
Ini adalah pencacah sederhana di mana tujuh bit yang lebih rendah
digunakan untuk menghitung jumlah instruksi yang telah dilakukan oleh
mikroprosesor ketika sedang menjalankan program ini. Ini diatur ulang
ke nol setiap kali mikro dimulai ulang.
Gambar 8.7 menunjukkan bagian-bagian yang tersisa dari sebuah
mikroprosesor. Semua bagian ini berada di dalam satu blok bertanda
'mikroprosesor' (µP) pada Gambar
7.4. Ini termasuk semua fasilitas untuk menghubungkan perangkat ke
sirkuit eksternal dan beberapa hal penting lainnya.

Gambar 8.7
Z80180
mikroprosesor

Buffer data
Buffer data adalah register 8-bit untuk menyimpan informasi yang
disediakan oleh bus data eksternal. Setelah buffer menyimpan
informasi biner, buffer tri-state dapat mengunci informasi dengan
memutuskan sambungan bus data eksternal sehingga dapat digunakan
untuk membawa data lain. Proses ini disebut 'menempel'. Sebagai
aturan umum, semua input ke sebuah chip dari bus dikunci. Ini
karena bus membutuhkan waktu untuk mengatur voltase baru pada
116
Sebuah tipikalMikroprosesor
8-bit
salurannya dan perlu memulai pekerjaan ini sesegera mungkin.

117
Pengenalan Mikroprosesor dan Mikrokontroler

Alamat dan bus data


Seperti semua mikroprosesor, ada tiga bus, alamat, data dan kontrol.
Seperti yang kita lihat di bab sebelumnya, bus kontrol adalah kumpulan
koneksi longgar yang mengirim sinyal ke sekitar sistem untuk membuat
koneksi dan mengontrol operasi setiap area jika diperlukan. Di sini kita
akan berkonsentrasi pada bus alamat dan data di Z80180.
Z80180 memiliki (semacam) bus alamat 16-bit dan bus data 8-bit.
Dalam mikroprosesor yang lebih kecil, merupakan praktik biasa
untuk membuat bus alamat dua kali lebar bus data tetapi tidak ada
alasan mengapa hal ini harus terjadi. Pilihan lebar bus alamat akan
tergantung pada ukuran memori yang diantisipasi yang perlu
ditangani dalam desain akhir. Luar biasa, dalam mikroprosesor ini
ada dua persyaratan yang saling bertentangan: ia harus tetap
kompatibel dengan bus alamat 16-bit dari Z80 tetapi kami ingin dapat
menangani 1 MB yang membutuhkan 20 saluran alamat.
Persyaratan ini dipenuhi oleh blok yang ditampilkan sebagai MMU atau
unit manajemen memori.

Manajemen memorisatuan (MMU)


Sirkuit ini mencakup register 8-bit yang menyimpan informasi alamat
yang dapat dikontrol oleh perangkat lunak yang digunakan. 8 bit ini
digabungkan dengan empat baris alamat teratas, A12-A15, dari bus
alamat. Bagian bawah dari 8 bit ini ditambahkan ke 4 bit teratas dari
bus alamat dan 4 bit atas digunakan untuk memperluas memori yang
dapat digunakan dengan menambahkan empat baris alamat tambahan,
A16-A19, untuk memungkinkan total dua puluh baris untuk ditangani
– lihat catatan di bawah. Prosesnya ditunjukkan pada Gambar 8.8.
Keluarga Z80180 diproduksi dalam tigapaket yang berbeda. 40 pin
asli Z80 lama telah ditingkatkan menjadi 64 pin dalam paket dual-
in-line (dil) serupa dengan yang ditunjukkan di bagian atas
Gambar 1.6. Mereka juga membuat versi 68 pin plastic leaded
chip carrier (PLCC) yang persis seperti paket persegi pada
Gambar 1.6. Terakhir, ada tipe pemasangan permukaan 80 pin.

Gambar 8.8
Memperluasal
amat bus

118
Sebuah tipikalMikroprosesor
8-bit
Perangkat pemasangan permukaan tidak memiliki pin yang melewati
lubang di papan sirkuit tercetak tetapi memiliki konektor yang keluar
secara horizontal dan kemudian disolder ke permukaan papan.
Metode ini memungkinkan penghematan ruang yang signifikan.

Cata
tan
Jumlah pin yang lebih sedikit pada tata letak dil telah membatasi
jumlah pin alamat menjadi sembilan belas dan oleh karena itu
memori maksimum yang dapat diakses sekarang adalah 2 atau 512k
(benar-benar 524288 karena 'k' dalam hal ini diambil sebagai 1024
seperti yang kita temui dalam Bab 2).

Buffer alamat
Ini adalah buffer tri-state sama seperti buffer data kecuali mereka adalah
perangkat satu arah. Mikroprosesor mengirimkan alamat di sepanjang
bus alamat tetapi tidak ada informasi alamat yang bisa datang dengan
cara ini. Jika kita perlu mengirim alamat ke mikroprosesor maka kita
memuat informasi dan semua informasi apa pun itu masuk ke bus data
yang, seperti yang telah kita lihat, dapat mengirim data apa pun ke
sirkuit eksternal atau menerima data apa pun ke dalam mikroprosesor.

Pembuat jam
Seperti yang kita lihat di Bab 7, mikroprosesor membutuhkan sinyal
gelombang persegi untuk menjaga agar semua operasi internal tetap
berjalan. Jika tidak, semuanya akan berakhir kacau dengan data dan
instruksi yang bergerak pada waktu yang salah dan menjadi campur
aduk.
Dalam mikroprosesor khusus ini, kecepatan clock dapat diatur ke
nilai antara 6 MHz dan 33 MHz. Sinyal clock berasal dari kristal atau
sumber sinyal eksternal – tetapi tidak pernah pada waktu yang sama.
Menggunakan sinyal eksternal dapat berguna di mana mikroprosesor
digunakan sebagai bagian dari instalasi yang lebih besar dan ini akan
memungkinkan waktu mikroprosesor diatur oleh sirkuit sekitarnya.
Ada tiga hal bagus tentang peningkatanfrekuensi kristal: mereka
menjadi lebih kecil, lebih ringan dan lebih murah. Sirkuit jam
mencakup sirkuit bagi-dua untuk memungkinkan penggunaan kristal
frekuensi ganda dengan manfaat yang disebutkan di atas.

Interupsi
Anda mungkin ingat kisah kecil kami yang menyedihkan tentang sistem
berbasis mikroprosesor kami yang mengendalikan printer saat seluruh
119
Pengenalan Mikroprosesor dan Mikrokontroler
kantor terbakar. Itu menghentikan program utamanya dan pergi untuk
menelepon layanan pemadam kebakaran, memperingatkan staf
pemeliharaan, mengaktifkan alat penyiram, dll.

120
Sebuah tipikalMikroprosesor
8-bit
Api bukan satu-satunya bahaya yang bisa dilindungi oleh teman kecil
kita. Itu bisa memperingatkan hal-hal lain seperti kertas habis di
printer atau kerusakan data pada kabel telepon.
Sekarang, kami tidak ingin mengirim lebih banyak kertas untuk
menangani kemungkinan masalah dengan kabel telepon sehingga
mikroprosesor perlu diberi tahu apa masalahnya dan apa yang harus
dilakukan.
Program yang berbeda untuk masing-masing masalah ini disimpan
dalam sekelompok alamat dalam chip ROM. Sebagai contoh, kita dapat
memuat program di alamat ini:

0800–0855H = persediaan kertas


0870–08A8H = data telepon.

Kedua program ini memiliki 08 sebagai byte tinggi dari alamat


tersebut. Nilai ini akan disimpan dalam register vektor interupsi. Byte
rendah 00 dan 70 disediakan oleh perangkat penginderaan. Segera
setelah data telepon rusak, itu diperhatikan oleh sensor, dan
mengirimkan sinyal untuk menginterupsi mikroprosesor bersama
dengan 70H.
Kemudian menggabungkan 08H dari register I dengan 70H dari
perangkat eksternal dan memasukkannya ke penghitung program.
Program mikroprosesor kemudian beralih ke alamat 0870H dan
memanggil teknisi pemeliharaan telepon.
Ketika mikroprosesor diinterupsi, ia menyimpan informasi internal
tentang apa yang dilakukannya pada saat interupsi sehingga ketika
interupsi ditangani, ia dapat kembali ke tugas sebelumnya.

Prioritas interupsi
Tidak semua masalah diperlakukan sama, oleh kami atau oleh
mikroprosesor. Kecil kemungkinan kita akan menemukan kalimat
seperti: 'Saya lupa memasukkan gula ke dalam kopi – saya akan pergi
dan mengambilnya – dan saya juga memperhatikan bahwa rumah
Anda terbakar'.
Seperti semua mikroprosesor lainnya, interupsi Z80180 sebagian
dihasilkan oleh sirkuit eksternal dan beberapa hasil dari sumber
internal. Yang eksternal biasanya dapat diblokir atau 'ditutupi'
sehingga kami dapat memberi tahu mikroprosesor untuk
mengabaikannya dan semua interupsi ditempatkan dalam urutan
prioritas sehingga beberapa interupsi diprioritaskan.
Dalam kasus Z80180, kode instruksi yang tidak dikenal diberikan
prioritas utama untuk mencegah operasi acak karena kerusakan
selama pemrograman atau transmisi. Ini disebut TRAP.

121
Pengenalan Mikroprosesor dan Mikrokontroler
Setelah ini muncul satu interupsi non-maskable atau NMI. Ini
digunakan untuk situasi kritis yang harus mengganggu program lain
yang sedang berjalan.

122
Sebuah tipikalMikroprosesor
8-bit
Kemudian mengikuti tiga tingkat interupsi eksternal tetapi dapat dicegah
(maskable). Jika kita tidak ingin program tersebut terputus, yang harus
kita lakukan adalah memasukkan kode 'jangan interupsi' ke dalam
perangkat lunak. Beberapa dokumentasi mengacu pada jenis interupsi ini
sebagai INT0, INT1, INT2, di mana gambar menunjukkan prioritas
sedangkan yang lain menggunakan IRQ untuk singkatan dari Interrupt
ReQuest.
Tujuh level yang tersisa mengacu pada interupsi internal yang dihasilkan
oleh register kontrol interupsi dan sirkuit internal mungkin perlu
menginterupsi program sejenak untuk melakukan beberapa tugas lain.
Akan ada sedikit lebih banyak tentang interupsi di Bab 17.

Penghematan energi
Daya yang dikonsumsi oleh mikroprosesor sebagian besar merupakan
hasil dari aktivitas internal sehingga semakin banyak kita
membuatnya, semakin banyak daya yang digunakannya. Mengubah
kecepatan clock dari 6 MHz ke 33 MHz hampir menggandakan
kebutuhan daya.
Kita dapat menambahkan instruksi 'tidur' ke program dan ini
memiliki efek menghentikan jam CPU dan bus data dan alamat
terputus. Untuk membangunkan CPU, kami menerapkan sinyal ke
salah satu input interupsi atau mengaktifkan rangkaian reset dengan
menahan tegangan pada pin reset rendah.
Kita juga dapat mematikan sirkuit input/output pada mikroprosesor
dengan memasukkannya ke mode 'system stop'.
Keluarga Z8X180 memiliki tiga anggota: Z80180, Z8S180 dan
Z8L180. Versi S beroperasi dengan catu daya 5 volt dan catu versi L
dikurangi menjadi 3,3 volt.
Efek pada konsumsi daya peralihan antara operasi normal dan mode
'sistem berhenti' ditunjukkan pada Tabel 8.1.

Pengontrol keadaan bus


Dalam suatu sistem, mikroprosesor terhubung ke semua sirkuit di
sekitarnya melalui serangkaian koneksi yang disebut bus sistem.
Kadang-kadang

Tabel 8.1

Operasi normal Mode 'Sistem


Berhenti'

Z80180 100 mW 25 mW

123
Pengenalan Mikroprosesor dan Mikrokontroler
Z8S180 90 mW 15 mW
Z8L180 60 mW 6 mW

124
Sebuah tipikalMikroprosesor
8-bit
perangkat ini mungkin ingin mengirim data di sepanjang bus sistem
dan pengontrol status bus memastikan bahwa kami tidak memiliki
banyak perangkat yang mencoba mengirim data di sepanjang koneksi
yang sama pada saat yang bersamaan.

Pengontrol akses memori langsung (DMA)


Seperti namanya, sirkuit ini menyediakan akses langsung ke memori
tanpa menggunakan unit pemrosesan pusat. DMA dapat menyediakan
transfer data berkecepatan tinggi dari satu bagian memori ke bagian
lain. Itu juga dapat mengirimkan data secara langsung ke dan dari
memori dan perangkat eksternal. Ini memberikan peningkatan yang
signifikan dalam kecepatan operasi seluruh sistem.

Penyegaran memori dinamis


Apakah Anda ingat bahwa masalah dengan memori dinamis adalah
penyegaran konstan yang diperlukan untuk menjaga data RAM tetap
utuh? Nah, register internal digunakan untuk menangani proses
penyegaran bagi kami. Ini cocok dalam pekerjaan di antara instruksi dan
tidak memperlambat mikroprosesor dengan cara apa pun dan baik
programmer maupun pengguna tidak menyadari bahwa itu berlanjut di
latar belakang. Beberapa mikroprosesor tidak memiliki register ini dan
chip eksternal ditambahkan ke sistem untuk melakukan penyegaran.
Either way, itu tidak memiliki efek yang jelas pada pengoperasian
sistem.

Tunggumenyatakan
Untuk mempermudah pengiriman informasi ke perangkat eksternal yang
relatif lambat, mikroprosesor dapat menyisipkan 'status tunggu' yang
dapat memasukkan lebih banyak waktu ke waktu siklus busnya. Mereka
dapat diprogram oleh perangkat lunak yang digunakan atau secara
internal oleh generator keadaan tunggu.

Input dan output serial


Untuk memindahkan data masuk atau keluar dalam mode serial di
mana aliran data diterapkan ke koneksi input tunggal satu demi satu,
kami diberi pilihan dua opsi.
Pertama adalah input/output serial clock (CSIO). Ini adalah koneksi data
berkecepatan tinggi sederhana ke mikroprosesor lain yang mampu
mengirim dan menerima data, meskipun tidak pada saat yang bersamaan.
Transmisi disinkronkan ke jam mikroprosesor.
Ada juga dua antarmuka komunikasi serial asinkron (ASCI). Ini
menyediakan dua koneksi data lain yang dapat diprogram untuk
125
Pengenalan Mikroprosesor dan Mikrokontroler
memilih kecepatan transmisi yang diperlukan dan menyediakan
transmisi dua arah.

126
Sebuah tipikalMikroprosesor
8-bit
Bagaimana sistem bekerja?

Pada awalnya
Setelah catu daya pertama kali dinyalakan, ada penundaan singkat
yang terpasang untuk memungkinkan voltase menetap dan jam
dimulai. Penundaan ini dihasilkan oleh rangkaian yang serupa dengan
yang ditunjukkan pada Gambar 8.9.

Gambar 8.9
ItuPADA/MATIberalihh

Rangkaian ini menggunakan kapasitor. Kapasitor adalah alat yang


dirancang untuk menyimpan listrik seperti ember yang dapat diisi air.
Ketika sistem mikro dimatikan, kapasitor mengalami korsleting dan arus
yang mengalir melalui resistor melewati kapasitor sehingga tidak ada
listrik yang tersimpan dan karenanya tidak ada tegangan yang
melewatinya. Efek yang sama dicapai dengan menahan pin reset pada
nol volt untuk waktu yang setara dengan setidaknya enam siklus clock.
Kemudian kita hidupkan dan arus yang mengalir melalui resistor
sekarang terakumulasi di kapasitor dan tegangan mulai meningkat.
Tegangan tumbuh dengan cara yang ditunjukkan pada Gambar 8.10
dan setelah beberapa saat, kurang dari satu mikrodetik, tegangan
mencapai dua volt, yang cukup untuk menghidupkan mikroprosesor.
Jam dimulaiberdetak dan mikroprosesor mengikuti urutan langkah
yang disebut program mikro start-up yang dibangun ke dalam
mikroprosesor oleh pabrikan.
Ia melakukan beberapa tes internal dan pekerjaan rumah tangga serupa
dan kemudian menempatkan alamat di bus alamat. Alamat ini, cukup
masuk akal, disebut alamat startup dan sekali lagi diperbaiki oleh
pabrikan. Di Z80180 alamat startup kebetulan 0000H dan jadi bagian
dari peta memori ini harus berisi beberapa ROM untuk menampung
program start-up.
127
Pengenalan Mikroprosesor dan Mikrokontroler

Gambar 8.10
Menghasilkan
pendektunda saat
dihidupkan

Kembali pada Gambar 6.22 kita melihat peta memori yang khas di
mana program start-up diadakan di ujung atas memori. Z80180 akan
membutuhkan peta yang sangat berbeda dan ini menunjukkan
ketidakcocokan lain antara mikroprosesor.

Instruksi pertama
Alamat startup dibaca oleh dekoder alamat.Dekoder kemudian
menerapkan sinyal pemilihan chip pada bus Kontrol. Sinyal ini
kemudian memilih chip ROM. Semua chip lain mengabaikan sinyal
karena belum dipilih. Alamat memasuki chip ROM dan dekoder baris
dan alamat mengakses sel memori. Isi sel itu diletakkan di bus data
untuk dibaca oleh mikroprosesor.

Bacaan kedua
Mikroprosesor mengirimkan alamat berikutnya ke bus alamat. Dekoder
alamat akan mengaktifkan chip ROM lagi. Chip ROM akan
memasukkan beberapa data lagi ke bus data, yang akan dibaca lagi oleh
mikroprosesor.

Apa yang mikroprosesor lakukan dengan semua data ini?


Jika pembacaan pertama ROM menghasilkan data C0H dan
pembacaan kedua menghasilkan 86H, mikroprosesor
menggabungkan keduanya untuk menghasilkan alamat 16-bit,
C086H. Ingat bahwa semua ini akan dalam biner – penggunaan hex
hanya untuk membantu kita melihat apa yang terjadi.
Mikroprosesor menempatkan alamat baru C086H ini pada bus alamat.
Pilihan C086H tidak dibuat oleh perancang mikroprosesor.

128
Sebuah tipikalMikroprosesor
8-bit
Nomor ini dipilih oleh perancang sistem – yaitu, orang yang
menggabungkan mikroprosesor ke dalam sistem mikro.

Lalu apa?
Alamat, C086H dalam contoh kita, mengakses chip ROM, yang
mengirimkan nomor biner kembali ke mikroprosesor di sepanjang
bus data. Di dalam mikroprosesor, angka ini ditafsirkan sebagai
instruksi. Membandingkan nomor masuk dengan daftar internal
kode kontrol internal akan menemukan persis apa instruksinya. Ini
semua dilakukan oleh program mikro.
Apa yang terjadi selanjutnya akan tergantung pada apa instruksi itu.

Meng
apa?
Mengapa itu instruksi? Karena mikroprosesor berkata demikian!
Mikroprosesor berasumsi bahwa bilangan biner pertama yang datang
mewakili sebuah instruksi sehingga jika kita ingin memberikan instruksi
ADD 25H maka kode biner artinya ADD akan masuk terlebih dahulu,
diikuti dengan data yang akan digunakan, dalam hal ini 25H.
Bagaimana jika kita membuat kesalahan dan memasukkan 25 terlebih
dahulu, diikuti dengan kode biner untuk ADD dalam program kita?
Mikroprosesor akan menafsirkan 25 sebagai instruksi – yang bisa
berarti apa saja, atau tidak sama sekali. Jika instruksi misteri ini
membutuhkan angka, itu akan menggunakan biner yang setara
dengan input ADD kami
– yang lagi-lagi bisa apa saja. Jika instruksi palsu tidak memerlukan
angka, maka instruksi ADD akan dibaca dengan benar sebagai instruksi
ADD tetapi kemudian akan mengambil input biner berikutnya yang
tersedia sebagai angka yang akan ditambahkan. Mikroprosesor kami
sekarang telah melakukan instruksi yang salah menggunakan data yang
salah dan program dapat melakukan hampir semua hal. Seluruh program
telah keluar dari langkah dan mungkin melakukan sesuatu yang sangat
tidak terduga. Tidak banyak kesenangan di pabrik dinamit kami.
Alamat yang digunakan setiap saat diketahui oleh mikroprosesor dengan
mengacu pada nilai saat ini di penghitung program, yang bertambah satu
setiap kali instruksi atau beberapa data digunakan.

Siklus pengambilan–eksekusi
Ini adalah urutan operasi oleh mikroprosesor dan merupakan penyebab
dari semua kebingungan di paragraf terakhir.
Mikroprosesor tidak menerapkan kecerdasan sama sekali. Ini mengikuti
pola yang ditunjukkan pada Gambar 8.1 terlepas dari apakah itu

129
Pengenalan Mikroprosesor dan Mikrokontroler
mengikuti program atau telah diberi makan dengan program dengan
kesalahan di dalamnya dan sekarang melakukan serangkaian instruksi
acak yang sama sekali tidak berguna.

130
Sebuah tipikalMikroprosesor
8-bit

Gambar 8.11
Ambil–
eksekusisiklus

Ini akan mengikuti instruksi kami jadi jangan salahkan mikroprosesor -


terserah kami untuk memberinya makan dengan sesuatu yang masuk
akal. Selalu ingat GIGO – sampah masuk, sampah keluar.
Seperti yang telah kita lihat, tidak ada yang secara inheren berbeda
antara instruksi dan data. Keduanya adalah bilangan biner dan
interpretasinya hanya masalah apa yang diharapkan mikroprosesor pada
waktu tertentu.

Waktu kuis
8
Dalam setiap kasus, pilih opsi terbaik.

1 Tumpukan adalah:
(a) singkatan dari stack pointer.
(b) serangkaian lokasi RAM yang dapat digunakan oleh
mikroprosesor untuk menyimpan data.
(c) kumpulan program.
(d) sebuah cerobong asap.

2 Sebuah CPU:
(a) merupakan bagian penting dari setiap mikroprosesor.
(b) adalah singkatan dari unit pemrosesan komputer.
(c) dapat berisi lebih dari satu MPU.
(d) merupakan fungsi dari register.

131

Anda mungkin juga menyukai