Kamis, 14 Agustus 2008

Modul III Mikrokontroler Elektronika Industri dan Komputer SMKN 1 Cimahi

MODUL PEMBELAJARAN III
PERANGKAT LUNAK

1. Pendahuluan
Sebagaimana yang telah dijelaskan pada modul sebelumnya, untuk menjalankan sebuah system mikrokontroler diperlukan program, dimana program tersebut merupakan urutan instruksi yang menentukan sebuah mikrokontroler bekerja. Program/instruksi sebuah mikrokontroler ditulis dengan menggunakan bahasa mesin dengan kode bilangan hexadecimal. Untuk memudahkan pemrograman, maka digunakan bahasa pemrograman yang lebih tinggi dan dapat dimengerti untuk memrogramannya, namun sudah tentu hasil dari bahasa tersebut merupakan bahasa mesin untuk diterapkan dalam pengguanaan mikrokontroler. Banyak ragam bahasa yang dapat digunakan untuk pemrograman mikrokontroler, antara lain: assembler, basic, C dan lain-lain.
Dalam modul ini dijelaskan penggunaan bahasa assembler untuk memrograman mikrokontroler, dengan alasan bahwa bahasa assembler merupakan bahasa pemrograman yang langsung berorientasi dengan mesin, dengan demikian secara tidak langsung kita telah belajar karakateristik mesin dengan mempelajari bahasa assembler. Namun pada kesempatan yang lain di akhir semester 6, akan diperkenalkan penggunaan bahasa C untuk memrogram mikrokontroler ini.

2. Mode Pengalamatan
Mode pengalamatan, mengacu pada bagaimana mengalamati suatu lokasi memori tertentu. Mode pengalamatan pada mikrokontroler adalah sebagai berikut:

Immediate Addressing MOV A,#20h
Direct Addressing MOV A,30h
Indirect Addressing MOV A,@R0
External Direct MOVX A,@DPTR
Code Indirect MOVC A,@A+DPTR

2.1 Immediate Addressing (pengalamatan segera)
Immediate addressing dinamakan seperti ini, karena nilai yang akan disimpan didalam memori, secara langsung berada dalam kode.

Org 0h
mulait: MOV A,#20h; simpan data (8 bit) 20h kedalam register A
end

Org 0h
Mulai: MOV 70h,#0h; simpan data (8 bit) 0h kedalam RAM dengan alamat 70h
end

Org 0h
Mulai: MOV DPTR,#1234h;simpan data (16 bit) 1234h kedalam DPTR
End

Org 0h
Start:MOV PSW,#0; Select register bank 0
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
;
org 0h
Start:MOV PSW,#8; Select register bank 1
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end

Immediate addressing adalah pengalamatan yang sangat cepat karena nilai yang akan diloadkan berada didalam instruksi tersebut.

2.2. Direct Addressing (pengalamatan langsung)
Disebut direct addressing karena nilai yang akan disimpan didalam memori, diperoleh secara langsung dari memori yang lain.

Org 0h
Start:MOV A,30h;
End

Org 0h
Start:Mov 70h,#1;put constant 1 into RAM 70h
Mov A, 70h;copy RAM 70 content into Acc
Mov A,#0 ;put constant 0 into Acc
Mov 90h,A ;copy Acc content into RAM 90h
End

Inbyte equ 70h
Port1 equ 90h
Org 0h
Start:Mov Inbyte,#3;put constant 3 into RAM 70h
Mov A,Inbyte ;copy RAM 70h content into Acc
Mov A,#0 ;Clear accumulator
Mov Port1,A ;copy Acc content into RAM 90h
End

Org 0h
Mov DPTR,#huruf
Start:Mov A, #0
Inc DPTR
Movc A, @A+DPTR
Mov R0,A
Sjmp Start
huruf:
DB 0,1,2,3,4,5,6,7,8,9
End

2.3 Indirect Addressing (Pengalamatan tidak langsung)
Indirect addressing adalah mode pengalamatan yang sangat ampuh, yang memberikan fleksibelitas dalam hal transfer data. Indirect addressing juga satu-satunya cara untuk mengakses 128 byte ekstra dari internal RAM yang ditemukan pada keluarga MCS51

MOV A,@R0

Instruksi ini menyebabkan mikrokontroler menganalisa nilai dari register R0. mikrokontroler kemudian akan mengambil data dari akumulator dengan nilai yang berasal dari alamat RAM internal yang ditunjukkan oleh R0. Sebagai contoh, misal R0 akan digunakan untuk menandai alamat RAM 40h yang berisi data 67h. Ketika instruksi diatas, dieksekusi maka mikrokontroler akan melihat nilai dari R0, yang berisi 40h, dan mengirimkan isi RAM 40h (dalam hal ini mempunyai nilai 67h) ke akumulator.

MOV R0,#99h ;
MOV @R0,#01h;

Instruksi tersebut adalah tidak valid. Karena indirect addressing selalu mengacu ke RAM internal, dua instruksi ini akan menulis nilai 01 ke RAM internal alamat 99h (153 desimal) pada 8052. Pada 8051 instruksi tersebut akan menghasilkan hasil yang tak terdifinisi, karena 8051 hanya mempunyai internal RAM 128 byte

Org 0h
Start:Mov PSW, #0 ; choose register bank 0
Mov R0, #78h; put constant 78h into R0
Mov @R0, #1 ; put contanta 1 into 78h
End

Org 0h
Start:Mov PSW,#0; pilih register bank 1
Mov R0,90h; copy RAM 90h content into R0
Mov @R0,#1; put constant 1 into 90h
End


3. Kelompok-kelompok Instruksi
Dalam memudahkan mempelajari bahasa Assembler untuk mikrokontroler, maka dibuat kelompok instruksi sesuai dengan fungsinya sebagai berikut:

 Kelompok instruksi transfer data

MOV A,Rn -> Salin data pada Rn ke dalam register A
MOV A,direct -> Salin data pada alamat RAM direct ke dalam register A
MOV A,@Ri -> Salin data pada alamat yang ditunjuk oleh Ri ke dalam Register A
MOV A,#data -> Masukan data ke dalam register A
MOV Rn,A -> Salin data pada register A ke dalam register Rn
MOV Rn,direct -> Salin data pada alamat RAM direct ke dalam register Rn
MOV Rn,#data -> Masukan data ke dalam register Rn
MOV direct,A -> Salin data pada register A ke dalam alamat RAM direct
MOV direct,Rn -> Salin data pada register Rn ke dalam alamat RAM direct
MOV direct,direct -> Salin data pada alamat RAM direct ke dalam alamat RAM direct
MOV direct,@Ri -> Salin data pada alamat yang ditunjuk oleh Ri ke dalam alamat RAM direct
MOV direct,#data -> Masukan data ke dalam alamat RAM direct
MOV @Ri,A Salin -> data yang terdapat pada register kedalam alamat yang ditunjuk oleh Ri
MOV @Ri,direct -> Salin data yang terdapat pada alamat RAM direct kedalam alamat yang ditunjuk oleh Ri
MOV @Ri,#data -> Masukan data kedalam alamat yang ditunjuk oleh Ri
MOV DPTR,#data16 -> Masukan data 16 bit kedalam data pointer
MOVC A,@A+DPTR -> Salin data pada alamat 16 bit yang ditunjuk oleh A+DPTR ke dalam register A
MOVC A,@A+PC -> Salin data pada alamat 8 bit yang ditunjuk oleh A+PC ke dalam register A
MOVX A,@Ri -> Salin data pada alamat 8 bit memori eksternal yang ditunjuk oleh Ri ke dalam register A
MOVX A,@DPTR -> Salin data pada alamat 16 bit memori eksternal yang ditunjuk oleh DPTR ke dalam register A
MOVX @Ri,A -> Salin data pada register A ke dalam alamat 8 bit memori eksternal yang ditunjuk oleh register Ri
MOVX @DPTR,A -> Salin data pada register A de dalam alamat 16 bit memori eksternal yang ditunjuk oleh DPTR
PUSH direct -> Push direct byte ke stack
POP direct -> Pop stack ke direct byte
XCH A,Rn -> Tukar isi register Rn dengan isi register A
XCH A,direct -> Tukar isi alamat RAM direct dengan isi register A
XCH A,@Ri -> Tukar isi alamat RAM yang ditunjuk oleh Ri dengan isi register A
XCHD A,@Ri -> Tukar nible rendah data pada alamat yang ditunjuk oleh Ri dengan nible rendah isi register A


 Kelompok instruksi aritmatika

ADD A,Rn -> Tambahkan isi register A dengan isi Register n
ADD A,direct -> Tambahkan isi register A dengan data pada alamat RAM
ADD A,@Ri  -> Tambahkan isi register A dengan data pada alamat yang ditunjuk oleh register Ri
ADD A,#data -> Tambahkan isi register A dengan data langsung
ADDC A,Rn -> Tambahkan isi register A dengan isi Register n dengan carry
ADDC A,direct -> Tambahkan isi register A dengan data pada alamat RAM dengan carry
ADDC A,@Ri -> Tambahkan isi register A dengan data pada alamat yang ditunjuk oleh register Ri dengan carry
ADDC A,#data -> Tambahkan isi register A dengan data langsung dengan carry
SUBB A,Rn -> Kurangkan isi register A dengan isi Register n
SUBB A,direct -> Kurangkan isi register A dengan data pada alamat RAM
SUBB A,@Ri -> Kurangkan isi register A dengan data pada alamat yang ditunjuk oleh register Ri
SUBB A,#data -> Kurangkan isi register A dengan data langsung
INC A -> Tambahkan dengan satu isi register A
INC Rn -> Tambahkan dengan satu isi register Rn
INC direct -> Tambahkan dengan satu isi dari alamat RAM direct
INC @Ri -> Tambahkan dengan satu isi dari alamat RAM yang ditunjuk oleh Ri
DEC A -> Kurangkan dengan satu isi register A
DEC Rn -> Kurangkan dengan satu isi register Rn
DEC direct -> Kurangkan dengan satu isi dari alamat RAM direct
DEC @Ri -> Kurangkan dengan satu isi dari alamat RAM yang ditunjuk oleh Ri
INC DPTR -> Tambahkan dengan satu nilai data pointer
MUL AB -> Kalikan isi pada regiater A dengan isi pada register B
DIV AB -> Lakukan pembagian data pada register A dengan data pada register B
DA A -> Desimal adjust Akumulator


 Kelompok instruksi logika
 Kelompok instruksi manipulasi Boolean
 Kelompok instruksi percabangan

untuk lebih lengkapnya silahkan download

Jumat, 08 Agustus 2008

Modul II Mikrokontroler Elektronika Industri dan Komputer SMKN 1 Cimahi

MODUL PEMBELAJARAN II
PENGORGANISASIAN MEMORI

1. Pendahuluan
Memori pada mikrokontroler digunakan untuk menyimpan data yang diperlukan selama mikrokontroler bekerja. Memori pada mikrokontroler dibedakan menjadi dua jenis, yaitu memori data dan memori program. Pemisahan memori ini sesuai dengan arsitektur Von Neumann yang memisahkan antara processor dan memori. Dengan pemisahan antara memori program dan memori data ini, memungkin bagi mikrokontroler untuk bekerja lebih cepat.

2. Memori Program
Memori program merupakan memori untuk menyimpan program (urutan instruksi untuk menjalankan mikrokontroler) dan juga berisi konstanta yang diperlukan program. Memori program pada mikrokontroler AT89Sxx dikenal dengan On Chip Flash. Setiap mikrokontroler memiliki kapasitas memori program yang berbeda-beda.


Tabel 1. Kapasitas memori beberapa jenis mikrokontroler dari Atmel

Seperti table di atas, untuk AT89S51 memiliki kapasitas On Chip Flash sebesar 4 Kbyte, namun apabila didalam pembuatan program melebihi kapasitas tersebut, maka bisa dipergunakan eksternal ROM untuk menambah memori, tetapi apabila dalam perancangan hardware dirasakan tidak dimungkin untuk menambah memori eksternal, disarankan untuk mengganti mikrokontroler dengan tipe yang lebih tinggi (memiliki kapasitas On Chip Flash yang lebih besar).


Gambar 2.1 Pemetaan program memori dan penggunaannya

Perhatikan gambar 2.1 di atas, pada beberapa alamat/ruang ROM jadikan sebagai vector interupsi, berikut beberapa vector interupsi:


Tabel 2.2. Vector Interupsi
Program yang sudah dibuat diisikan dari alamat yang paling rendah (0000H), alamat ini harus diisi, untuk menunjukkan awal program yang akan dieksekusi oleh mikrokontroler.

3. Memori Data
Memori data pada mikrokontroler tersimpan pada internal RAM, memori data berisi variable dan register, memori RAM pada mikrokontroler AT89S51 kapasitas sangat terbatas (hanya 256 byte), apabila dalam aplikasi memerlukan memori RAM yang lebih besar, maka bisa ditambahkan memori RAM eksternal seperlunya.

Gambar 2.2. Penggunaan Memori Data

Seperti telah diulas sebelumnya bahwa RAM digunakan untuk menyimpan data/variable dan register, berikut pemetaannya:


Gambar 2.3 Memori Data Internal

Alamat 00h sampai 7fh (128 byte terendah) merupakan bagian yang dapat dialamati secara langsung dan tidak langsung (direct and indirect addressing). Pada 128 byte terendah ini tersimpan alamat untuk register umum yang berjumlah 8 buah(R0, R1, R2, R3, R4, R5, R6 dan R7). Untuk lebih jelasnya amati gambar berikut!


Gambar 2.4. Pemetaan pada 128 byte terendah

Untuk mengakses register umum (R0 sampai dengan R7) pada setiap bank, perlu adanya pengalamatan pada PSW (program status word), bit RS0 dan RS1 (PSW bit ke-3 dan bit ke-4). Namun secara default nilai RS0 dan RS1 ini bernilai “0” sehingga register umum tersimpan pada bank 0 alamat 00h sampai dengan alamat 07h.
Dari alamat 20h sampai 2fh digunakan untuk penyimpanan data dengan satuan satu bit atau bit addressable, dan alamat 30h sampai 7fh merupakan ruang data RAM.
Alamat 80h sampai ffh merupakan 128 byte bagian atas dari internal RAM. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah pada gambar 2.3 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik. SFR merupakan register-register yang memiliki fungsi khusus, khusus dalam artian satu register berkaitan dengan satu fungsi hardware atau satu proses tertentu.

4. SFR (Special Function Register) atau Register Fungsi Khusus
Sebuah peta memori yang disebut ruang special function register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diimplementasikan.

Gambar 2.5. Pemetaan SFR (Special Function Register)
 Accumulator. ACC adalah register akumulator. Mnemonik untuk instruksi spesifik akumulator ini secara sederhana dapat disingkat sebagai A.
 Register B. Register B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut diatas, register ini dapat digunakan untuk register bebas.
 Stack Pointer. Register Pointer stack mempunyai lebar data 8 bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.
 Data Pointer. Pointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.
 Ports 0, 1, 2 dan 3. P0, P1, P2 dan P3 adalah SFR yang ditempati oleh Port 0, 1, 2 dan 3. Menulis suatu logika 1 terhadap sebuah bit dari sebuah port SFR ( P0, P1, P2 atau P3) menyebabkan pin output port yang bersesesuaian akan berada dalam kondisi logika high ‘1’. Dan sebaliknya.
 Buffer Data Serial. Buffer serial sesungguhnya merupakan dua buah register yang terpisah, buffer pemancar dan buffer penerima. Ketika data diisikan ke SBUF, maka akan menuju ke buffer pemancar dan ditahan untuk proses transmisi. Ketika data diambil dari SBUF, maka akan berasal dari buffer penerima..
 Registers Timer. Pasangan register ( TH0, TL0) dan (TH1, TL1) adalah register pencacah 16 bit untuk Timer/ Counter 0 dan 1, masing-masing.
 Register Control. Registers IP, IE, TMOD, TCON, SCON, dan PCON terdiri dari bit control dan status.
 Program Status Word. PSW atau Program Status Word berisi bit-bit status yang berkaitan dengan kondisi atau keadaan CPU mikrokontroler pada saat tersebut. PSW berada dalam lokasi ruang SFR Pada PSW ini kita dapat memantau beberapa status yang meliputi: carry bit, auxiliary carry ( untuk operasi BCD ), dua bit pemilih bank register, flag overflow, sebuah bit paritas dan dua flag status yang bisa didifinisikan sendiri. Bit carry dapat juga anda guakan pada keperluan operasi aritmatika, juga bisa digunakan sebagai universal akumulator untuk beberapa operasi boolean.

Tabel 2.3. PSW (program status word)




Lembar Evaluasi
1. Gambarkan arsitektur Von Neumann!
2. Apa yang dimaksud dengan vector interupsi?
3. Sebutkan jenis-jenis ROM yang kamu ketahui!
4. Apa yang dimaksud direct addressing dan indirect addressing? Jelaskan!
5. Gambarkan diagram pin IC 6116, berikan penjelasan fungsi setiap pinnya dan berikan penjelasan kegunaan IC 6116 tersebut!

Jawaban dari pertanyaan di atas segera dikumpulkan

Modul I Mikrokontroler Elektronika Industri dan Komputer SMKN 1 Cimahi

MODUL PEMBELAJARAN I
ARSITEKTUR MIKROKONTROLER AT89S/CXX

1. Pendahuluan
Mikrokontroler adalah suatu unit yang adapat diprogram cara kerjanya, sehingga dapat dipergunakan untuk keperluan yang berbeda. Pada masa sekarang mikrokontroler banyak digunakan sebagai pengontrol pada peralatan-peralatan mulai dari mainan/hobie, peralatan rumah tangga, sampai kontrol pada peralatan industri.
Beberapa mikrokontroler yang beredar dipasaran merupakan keluaran beberapa pabrik yang sudah terkenal, misal:
Intel., contoh: 8031, 89C51 dll
Zilog, contoh: Z8, Z8F1680 dll
Microchip, contoh: PIC16F84, PIC16F877 dll
Motorola, contoh: 68HC11, MC68HC705V12CFN dll
Philips Semiconductors, contoh: LPC2000, LPC900, LPC700 dll
Atmel, contoh: Atmel AT91 series (ARM THUMB architecture), AT90, Tiny & Mega series – AVR (Atmel Norway design), Atmel AT89 series (Intel 8051/MCS51 architecture)
Dalam pembahasan modul ini akan dijelaskan penggunaan mikrokontroler dari Atmel jenis AT89S series, dengan alasan lebih mudah dalam pemrogramannya, pengembangannya dan harganya yang murah serta telah banyak beredar di pasaran.

2. Struktur Mikrokontroler
Blok diagram umum mikrokontroler adalah sebagai berikut:

Gambar 1.1. Blok Diagram Mikrokontroler

Masing-masing bagian tersebut saling dihubungkan melalui internal BUS, umumnya terdiri dari 3 jenis bus, yaitu: address bus, data bus dan control bus.
Diagram Arsitektur AT89SXX

Gambar 1.2. Arsitektur Mikrokontroler

Fungsi setiap bagian:
 Register adalah suatu tempat penyimpanan (Variabel) bilangan bulat 8 bit atau 16 bit. Pada umumnya register berjumlah banyak, dan masing-masing ada yang memiliki fungsi khusus dan ada yang memiliki fungsi umum.
 Accumulator (register A), merupakan salah satu register khusus yang berfungsi sebagai operand umum proses aritmatika dan logika.
 Program counter, merupakan salah satu register khusus yang berfungsi sebagai pencacah/penghitung eksekusi program mikrokontroler
 ALU (Arithmetical and Logical Unit), ALU memiliki kemampuan khusus dalam mengerjakan proses-proses arithmetika (penjumlahan, pengurangan, perkalian dan pembagian) dan operasi logika (AND, OR, XOR dan NOT)
 Clock circuits, mikrokontroler merupakan rangkaian digital sekuensial, dimana kerjanya berjalan melalui sinkronisasi clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian rangkaian
 Internal ROM (On Chip Flash), merupakan memori yang isinya tidak dapat diubah atau dihapus (pada saat mikrokontroler berjalan) isinya hanya dapat dibaca saja. ROM biasanya berisi program (urutan-urutan instruksi) untuk menjalankan mikrokontroler. Data pada ROM dibaca secara berurutan.
 Internal RAM, merupakan memori yang isinya dapat diubah atau dihapus. RAM pada mikrokontroler biasanya berisi data-data variable dan register. Data yang tersimpan pada RAM bersifat hilang jika catu daya yang diberikan hilang (mati).
 Stack pointer, merupakan bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data yang khusus. Dimana data yang paling terakhir dimasukkan merupakan data yang pertama kali dibaca kembali (LIFO).
 I/O port (serial dan parallel), merupakan sarana yang digunakan mikrokontroler untuk mengakses peralatan di luar dirinya, memasukan dan mengeluarkan data.
 Interrupt circuits, merupakan rangkaian yang mengendalikan sinyal-sinyal interupsi baik internal maupun eksternal, dengan adanya sinyal interupsi akan mengakibatkan program utama yang sedang dikerjakan berhenti sejenak, dan bercabang/.loncat ke program rutin layanan interupsi (RLI) yang diminta, setelah RLI selesai dikerjakan, mikrokontroler kembali melanjutkan program utama yang tertunda tadi.
Setiap mikrokontroler memiliki blok diagram dan arsitektur yang berbeda satu dengan yang lainnya, tergantung pada banyak device yang terintegrasi di dalamnya, beberapa jenis mikrokontroler telah dilengkapi oleh ADC/DAC, PWM, WDT dan lain-lain.

3. Cara Kerja Mikrokontroler
Prinsip kerja mikrokontroler adalah sebagai berikut:
 Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.
Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikan sebelumnya oleh pengguna.
 Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register, RAM, isi Port, atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
 Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan.

4. Diagram Pin dan Fungsinya
Diagram pin AT89S51 kemasan PDIP adalah sebagai berikut:


Gambar 1.3. Diagram Pin AT89S51

Fungsi setiap pin adalah sebagai berikut:
 Pin 1 – 8, Port 1 (P1.0 sampai dengan P1.7), merupakan port input/output delapan bit 8 dua arah dengan internal pull-up.
P1.5 (MOSI), P1.6 (MISO) dan P1.7 (SCK) memiliki fungsi yang khusus dalam komunikasi serial multiprosesor, dan pada pengisian program mikrokontroler dengan ISP (In System Programming)
 Pin 9, digunakan untuk memberikan system reset pada Mikrokontroler, rangkaian reset diberikan dengan konfigurasi sebagai berikut:


Gambar 1.4. Konfigurasi Reset
 Pin 10 – 17, Port 3 (P3.1 sampai dengan P3.7), merupakan port input/output delapan bit 8 dua arah dengan internal pull-up.
Setiap pin pada Port 3 ini memiliki fungsi khusus yang langsung berhubungan dengan hardware, fungsi tersebut adalah sebagai berikut:
P3.0 : RXD, port input/penerimaan data pada komunikasi serial
P3.1 : TXD, port output/pengiriman data pada komunikasi serial
P3.2 : (INT0), input interupsi eksternal channel 0 (active low)
P3.3 : (INT1), input interupsi eksternal channel 1 (active low)
P3.4 : T0, input clock ekternal untuk timer 0
P3.5 : T1, input clock ekternal untuk timer 1
P3.6 : (WR), merupakan saluran untuk kendali penulisan (active low), saat mikrokontroler akan menulis data ke memori/device luar
P3.7 : (RD), merupakan saluran untuk kendali pembacaan (active low), saat mikrokontroler akan membaca data dari memori/device luar
 Pin 18, XTAL 2
 Pin 19, XTAL 1
XTAL 1 dan XTAL 2 merupakan masukan untuk rangkaian osilator internal, konfigurasinya bisa digunakan rangkaian sebagai berikut:

Gambar 1.5. Konfigurasi kristal untuk osilator

Nilai C1 dan C2 harus seimbang, nilainya berkisar 30pF atau 33pF
Nilai Kristal agar osilator internal bekerja berkisar 1MHz sampai 24 MHz, namun yang paling lazim digunakan berkisar, 8 MHz, 11,0592MHz dan 12 MHz. Pada komunikasi serial dan penggunaan timer lebih akurat digunakan kristal dengan nilai 11,0592 MHz
 Pin 20, GND, masukan catu daya 0 Volt atau Ground
 Pin 21 – 28, merupakan port input/output delapan bit 8 dua arah dengan internal pull-up. Juga dapat difungsikan untuk jalur alamat byte tinggi (A8 sampai dengan A15) pada penggunaan memori luar.
 Pin 29, (PSEN), Program Strore Enable (active low), sinyal pengontrol yang diberfungsi untuk membaca program dari memori eksternal.
 Pin 30, ALE atau (PROG) active low, address latch enable, berfungsi menahan sementara alamat byte rendah pada proses pengalamatan ke memori eksternal
 Pin 31, (EA) atau VPP, merupakan pin yang berfungsi untuk memilih program untuk menjalankan mikrokontroler, jika EA = 0 atau di-ground-kan maka akan digunakan program pada memori eksternal, jika EA = 1, maka akan digunakan program pada on chip flash.
 Pin 32 – 39, Port 0 (P0.1 sampai dengan P0.7), merupakan port input/output delapan bit 8 dua arah tanpa internal pull-up, sehingga dalam aplikasi harus ditambahkan resistor pull-up eksternal pada masing-masing pin, resistor pull up bernilai 4.7K Ohm terpasang langsung ke VCC
 Pin 40, VCC, catu daya +5 Volt DC

Lembar Evaluasi
1. Apa yang dimaksud dengan BUS? Jelaskan!
2. Apa yang dimaksud dengan register umum? Beri contoh!
3. Apa yang dimaksud dengan register khusus? Beri contoh!
4. Pada penggunaan memori terdapat istilah volatile dan non volatile, jelaskan kedua istilah tersebut!
5. Jelaskan istilah berikut:
- Parallel
- Serial
- PDIP
- PLCC
- Pull Up

(jawaban dari tugas di atas harap dikumpulkan)
Terima kasih

Modul III Mikrokontroler Elektronika Industri dan Komputer SMKN 1 Cimahi

MODUL PEMBELAJARAN III PERANGKAT LUNAK ( DOWNLOAD ) 1. Pendahuluan Sebagaimana yang telah dijelaskan pada modul sebelumnya, untuk menjalanka...