Petunjuk Praktikum Sismik

75
PETUNJUK PRAKTIKUM SISTEM MIKROPROSESOR Laboratorium Dasar Teknik Elektro SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG

Transcript of Petunjuk Praktikum Sismik

Page 1: Petunjuk Praktikum Sismik

PETUNJUK PRAKTIKUM

SISTEM MIKROPROSESOR

Laboratorium Dasar Teknik Elektro

SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA

INSTITUT TEKNOLOGI BANDUNG

Page 2: Petunjuk Praktikum Sismik
Page 3: Petunjuk Praktikum Sismik

PETUNJUK PRAKTIKUM

SISTEM MIKROPROSESOR

Mervin T. Hutabarat

Harry Septanto

Eric Agustian

Narpendyah Ariwardhani Laboratorium Dasar Teknik Elektro

SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA

INSTITUT TEKNOLOGI BANDUNG

Page 4: Petunjuk Praktikum Sismik
Page 5: Petunjuk Praktikum Sismik

Kata Pengantar

i

KATA PENGANTAR

Puji dan syukur kami panjatkan pada Tuhan Yang Maha Esa karena rahmat-Nya telah memberikan kami kesempatan untuk menyusun Petunjuk Praktikum Rangkaian Elektrik yang disesuaikan dengan Kurikulum Program Studi Teknik Elektro tahun 2008 ini. Petunjuk praktikum ini mengalami cukup banyak perubahan dibandingkan dengan petunjuk praktikum sejenis sebelumnya. Hal ini dilakukan sejalan dengan rencana Program Studi Teknik Elektro untuk mengupayakan Akreditasi ABET Internasional. Tuntutan pekerjaan mahasiswa dalam praktikum ini lebih tinggi dengan pengharagaan beban sks yang sesuai. Dalam melaksanakan praktikum ini, mahasiswa dituntut juga untuk menggunakan Buku Catatan Laboratorium dengan pola pencatatan sesuai baku yang berlaku sebagai bukti dalam perselisihan terkait pengajuan paten di negara maju guna melatih mahasiswa menjadi engineer yang baik.

Pada kesempatan ini, kami ingin menyampaikan terima kasih yang besar-besarnya pada semua pihak yang telah terlibat dalam penyusunan petunjuk praktikum ini. Secara khusus untuk anggota Tim Penyusun Petunjuk Praktikum Rangkaian Elektrik, Mas Harry Septanto, Mas Eric Agustian dan Mbak Narpendyah Ariwardhani, yang sudah memberikan tenaga, pikiran dan waktunya untuk perbaikan praktikum dalam Program Studi Teknik Eletro ini. Ucapan terima kasih juga disampaikan untuk dukungan rekan-rekan teknisi di Laboratorium Dasar Teknik Elektro, Pak Suparyanto dan Pak Sandra Irawan.

Akhir kata, semoga semua usaha yang telah dilakukan berkontribusi pada dihasilkannya lulusan Program Studi Teknik Elektro sebagai engineer dengan standar internasional.

Bandung, Oktober 2008

Tim Penyusun Petunjuk Praktikum Rangkaian Elektrik

Ketua Tim,

Ir. Mervin T. Hutabarat, M.Sc., Ph.D.

Page 6: Petunjuk Praktikum Sismik

ii

Page 7: Petunjuk Praktikum Sismik

Daftar Isi

iii

DAFTAR ISI

Kata Pengantar i

Daftar Isi iii

Aturan Umum Laboratorium v

Panduan Umum Keselamatan dan Penggunaan Peralatan Laboratorium vii

Percobaan 1 Basic Input/ Output 1

Percobaan 2 Timer/ Counter dan Interrupt 13

Percobaan 3 Akses Serial dan Review Modul 23

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks 33

Percobaan 5 dan 6 Perancangan Aplikasi 49

Apendiks A DT-51 51

Apendiks B Set Instruksi 8051 55

Apendiks C Kabel-Kabel 59

Apendiks D Kode ASCII 61

Page 8: Petunjuk Praktikum Sismik

iv

Page 9: Petunjuk Praktikum Sismik

Aturan Umum Laboratorium

v

ATURAN UMUM LABORATORIUM

KELENGKAPAN

Setiap praktikan wajib berpakaian lengkap, mengenakan celana panjang/ rok, kemeja dan mengenakan sepatu. Praktikan wajib membawa kelengkapan berikut:

Modul praktikum

Buku Catatan Laboratorium (BCL)

Alat tulis (dan kalkulator, jika diperlukan)

Name tag

Kartu Praktikum

PERSIAPAN

SEBELUM PRAKTIKUM

Membaca dan memahami isi modul praktikum

Mengerjakan hal-hal yang dapat dikerjakan sebelum praktikum dilaksanakan, misalnya mengerjakan soal perhitungan, menyalin source code, mengisi Kartu Praktikum dll.

Mengerjakan Tugas Pendahuluan (TP) setiap Percobaan. TP dapat dilihat di papan pengumuman Lab. Dasar dan di http://labdasar.ee.itb.ac.id

Mengisi daftar hadir

Mengambil kunci loker dan melengkapi administrasi peminjaman kunci loker (tukarkan dengan kartu identitas: KTM/ SIM/ KTP)

SELAMA PRAKTIKUM

Perhatikan dan kerjakan setiap percobaan dengan waktu sebaik-baiknya, diawali dengan kehadiran praktikan secara tepat waktu

Kumpulkan Kartu Praktikum pada asisten

Dokumentasikan pada BCL (lihat Petunjuk Penggunaan BCL) tentang hal-hal penting terkait percobaan yang sedang dilakukan

SETELAH PRAKTIKUM

Pastikan BCL telah ditandatangani oleh asisten

Kembalikan kunci loker dan melengkapi administrasi pengembalian kunci loker (pastikan kartu identitas (KTM/ SIM/ KTP) diperoleh kembali)

Kerjakan laporan sesuai dengan template Format Laporan yang dapat diperoleh di http://labdasar.ee.itb.ac.id

Page 10: Petunjuk Praktikum Sismik

Aturan Umum Laboratorium

vi

Kumpulkan laporan pada lemari (sesuai nama asistennya) di ruang Loket, sebelah ruang Lab Dasar. Waktu pengumpulan paling lambat jam 16.30, hari kerja berikutnya setelah praktikum

PERGANTIAN JADWAL

KASUS BIASA

Pertukaran jadwal hanya dapat dilakukan per kelompok dangan modul yang sama

Isi Form Pergantian Jadwal (dapat diperoleh di labdas.ee.itb.ac.id), lalu tunjukkan pada asisten yang bersangkutan, Kordas yang bersangkutan atau TU Lab. Dasar untuk ditandatangani

Serahkan Form Pergantian Jadwal yang sudah ditandatangani tadi pada asisten saat praktikum

KASUS SAKIT ATAU URUSAN MENDESAK PRIBADI LAINNYA

Isi Form Pergantian Jadwal dengan melampirkan surat keterangan dokter (bagi yang sakit) atau surat terkait lainnya

Form Pergantian Jadwal diserahkan pada TU Lab. Dasar

Praktikan yang bersangkutan sebelum kesempatan jadwal praktikum selanjutnya harus meminta jadwal praktikum pengganti ke Kordas praktikum terkait

KASUS ”KEPENTINGAN MASSAL”

”Kepentingan massal” terjadi jika ada lebih dari 1/3 rombongan praktikan yang tidak dapat melaksanakan praktikum pada satu hari yang sama karena alasan yang terkait kegiatan akademis

Isi Form Pergantian Jadwal dan serahkan pada TU Lab. Dasar secepatnya. Jadwal praktikum pengganti satu hari itu akan ditentukan kemudian oleh Kordas praktikum yang bersangkutan

SANKSI Pengabaian aturan-aturan di atas dapat dikenakan sanksi pengguguran nilai praktikum terkait.

Page 11: Petunjuk Praktikum Sismik

Panduan Umum Keselamatan dan Penggunaan Peralatan Laboratorium

vii

PANDUAN UMUM KESELAMATAN DAN PENGGUNAAN PERALATAN LABORATORIUM

KESELAMATAN

Pada prinsipnya, untuk mewujudkan praktikum yang aman diperlukan partisipasi seluruh praktikan dan asisten pada praktikum yang bersangkutan. Dengan demikian, kepatuhan setiap praktikan terhadap uraian panduan pada bagian ini akan sangat membantu mewujudkan praktikum yang aman.

BAHAYA LISTRIK

Perhatikan dan pelajari tempat-tempat sumber listrik (stop-kontak dan circuit breaker) dan cara menyala-matikannya. Jika melihat ada kerusakan yang berpotensi menimbulkan bahaya, laporkan pada asisten

Hindari daerah atau benda yang berpotensi menimbulkan bahaya listrik (sengatan listrik/ strum) secara tidak disengaja, misalnya kabel jala-jala yang terkelupas dll.

Tidak melakukan sesuatu yang dapat menimbulkan bahaya listrik pada diri sendiri atau orang lain

Keringkan bagian tubuh yang basah karena, misalnya, keringat atau sisa air wudhu

Selalu waspada terhadap bahaya listrik pada setiap aktivitas praktikum

Kecelakaan akibat bahaya listrik yang sering terjadi adalah tersengat arus listrik. Berikut ini adalah hal-hal yang harus diikuti praktikan jika hal itu terjadi:

Jangan panik

Matikan semua peralatan elektronik dan sumber listrik di meja masing-masing dan di meja praktikan yang tersengat arus listrik

Bantu praktikan yang tersengat arus listrik untuk melepaskan diri dari sumber listrik

Beritahukan dan minta bantuan asisten, praktikan lain dan orang di sekitar anda tentang terjadinya kecelakaan akibat bahaya listrik

BAHAYA API ATAU PANAS BERLEBIH

Jangan membawa benda-benda mudah terbakar (korek api, gas dll.) ke dalam ruang praktikum bila tidak disyaratkan dalam modul praktikum

Jangan melakukan sesuatu yang dapat menimbulkan api, percikan api atau panas yang berlebihan

Jangan melakukan sesuatu yang dapat menimbulkan bahaya api atau panas berlebih pada diri sendiri atau orang lain

Page 12: Petunjuk Praktikum Sismik

Panduan Umum Keselamatan dan Penggunaan Peralatan Laboratorium

viii

Selalu waspada terhadap bahaya api atau panas berlebih pada setiap aktivitas praktikum

Berikut ini adalah hal-hal yang harus diikuti praktikan jika menghadapi bahaya api atau panas berlebih:

Jangan panik

Beritahukan dan minta bantuan asisten, praktikan lain dan orang di sekitar anda tentang terjadinya bahaya api atau panas berlebih

Matikan semua peralatan elektronik dan sumber listrik di meja masing-masing

Menjauh dari ruang praktikum

BAHAYA BENDA TAJAM DAN LOGAM

Dilarang membawa benda tajam (pisau, gunting dan sejenisnya) ke ruang praktikum bila tidak diperlukan untuk pelaksanaan percobaan

Dilarang memakai perhiasan dari logam misalnya cincin, kalung, gelang dll.

Hindari daerah, benda atau logam yang memiliki bagian tajam dan dapat melukai

Tidak melakukan sesuatu yang dapat menimbulkan luka pada diri sendiri atau orang lain

LAIN-LAIN Dilarang membawa makanan dan minuman ke dalam ruang praktikum

PENGGUNAAN PERALATAN PRAKTIKUM

Berikut ini adalah panduan yang harus dipatuhi ketika menggunakan alat-alat praktikum:

Sebelum menggunakan alat-alat praktikum, pahami petunjuk penggunaan alat itu. Petunjuk penggunaan beberapa alat dapat didownload di http://labdasar.ee.itb.ac.id

Perhatikan dan patuhi peringatan (warning) yang biasa tertera pada badan alat

Pahami fungsi atau peruntukan alat-alat praktikum dan gunakanlah alat-alat tersebut hanya untuk aktivitas yang sesuai fungsi atau peruntukannya. Menggunakan alat praktikum di luar fungsi atau peruntukannya dapat menimbulkan kerusakan pada alat tersebut dan bahaya keselamatan praktikan

Pahami rating dan jangkauan kerja alat-alat praktikum dan gunakanlah alat-alat tersebut sesuai rating dan jangkauan kerjanya. Menggunakan alat praktikum di luar rating dan jangkauan kerjanya dapat menimbulkan kerusakan pada alat tersebut dan bahaya keselamatan praktikan

Pastikan seluruh peralatan praktikum yang digunakan aman dari benda/ logam tajam, api/ panas berlebih atau lainnya yang dapat mengakibatkan kerusakan pada alat tersebut

Page 13: Petunjuk Praktikum Sismik

Panduan Umum Keselamatan dan Penggunaan Peralatan Laboratorium

ix

Tidak melakukan aktifitas yang dapat menyebabkan kotor, coretan, goresan atau sejenisnya pada badan alat-alat praktikum yang digunakan

SANKSI Pengabaian uraian panduan di atas dapat dikenakan sanksi tidak lulus mata kuliah praktikum yang bersangkutan.

Page 14: Petunjuk Praktikum Sismik

x

Page 15: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

1

PERCOBAAN 1

BASIC INPUT/ OUTPUT

BASIC I/O DENGAN PORT 1

TUJUAN Praktikan mampu membuat program input dan output menggunakan PORT1 dari DT-51 MinSys dengan cara mengakses PORT1 secara per bit dan per byte

DASAR TEORI Perangkat keras yang digunakan dalam praktikum ini adalah DT-51 MinSys ver 3.0 dan DT-51 Trainer Board. DT-51 MinSys merupakan suatu sistem minimum berbasis 89S51 (salah satu keluarga MCS-51), sedangkan DT-51 Trainer Board merupakan board pendukung DT-51 MinSys untuk mengamati keluaran (output) atau memberi masukan (input) pada sistem minimum.

Gambar 1 DT-51 MinSys ver 3.0

Berikut ini merupakan spesifikasi singkat dari DT-51 Minimum System ver 3.0:

memiliki memori eksternal sebesar 8MB;

4 byte port input/output (I/O), yaitu PORT1 dari 89S51 dan 3 port PPI (yaitu PORTA, PORTB, dan PORTC);

Port CONTROL yang meliputi interrupt eksternal dan counter eksternal 89S51

port LCD; dan

Page 16: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

2

serial interface standard RS 232 untuk komunikasi DT-51 MinSys dengan PC.

Adapun spesifikasi singkat dari DT-51 Trainer Board adalah sebagai berikut:

8 led sebagai output (OUTPUT LED DISPLAY);

8 toggle switch sebagai input (SWITCH INPUT);

2 seven segment sebagai scanning output (SCANNING 7SEGMENT DISPLAY), dengan konektor datanya terdapat pada port “DATA 7S” dan konektor pemilihnya terdapat pada port “I/P S KEY”;

4 keypad sebagai scanning input (SCANNING KEYPAD), dengan konektor input dan output terdapat pada port “I/P S KEY”;

CLOCK GENERATOR 1 Hz, 1 kHz, dan 10 kHz. Konektor output terdapat pada CO1 dan CO2; dan

4 keypad sebagai input bagi interrupt dan counter (INTERRUPT & COUNTER INPUT). Konektor output terdapat pada IS1, IS2, IS3, dan IS4.

Gambar 2 DT-51 Trainer Board

Beberapa port pada sistem minimum DT-51 ini akan dihubungkan dengan port pada trainer board. Khusus untuk menghubungkan port CONTROL pada sistem minimum dengan port CONTROL pada trainer board, digunakan kabel tipe X seperti pada Gambar 3 di bawah ini. Penggunaan kabel tipe ini dikarenakan posisi pin VCC dan GND pada sistem minimum dengan trainer board terbalik.

Page 17: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

3

Gambar 3 Kabel tipe X

Gambar 4 Penggunaan kabel tipe X untuk menghubungkan kedua port "CONTROL"

Komunikasi antara PC dangan DT-51 MinSys dilakukan melalui SERIAL PORT (dengan konektor DB9). Pada PC, serial port ini diberi label COM, misal COM1 atau COM2. Melalui komunikasi ini pula program yang dibuat pada setiap percobaan di-download dari PC ke DT-51 MinSys. Hubungkan kabel serial seperti pada Gambar 5 untuk menjalankan komunikasi tersebut.

Gambar 5 Hubungan DT-51 MinSys dengan PC

Page 18: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

4

Pada praktikum ini akan digunakan program berbahasa Assembly. Listing program ini ditulis dan diubah dengan menggunakan editor Notepad dan disimpan dengan format (nama file).ASM. File yang akan di-download ke DT-51 MinSys memiliki format (nama file).HEX. Untuk mengubah listing program pada Notepad menjadi suatu file heksadesimal digunakan suatu hex assembler, yaitu ASM51.EXE.

Proses assembling dilakukan dengan mengetikkan “ASM51 (nama file)” pada MS-DOS prompt (pada folder yang memuat semua file yang akan di-assemble tersebut). Jika terdapat kesalahan pada listing program, maka akan dihasilkan file (nama file).LST yang berisi pesan error dan lokasinya. File ini juga berisi alokasi (alamat) memori pada listing program.

Setelah dilakukan proses assembling, maka file heksadesimal siap di-download ke DT-51 MinSys. Langkah ini dilakukan dengan bantuan DT51L.EXE, dengan mengetikkan “DT51L (nama file).HEX” pada MS-DOS prompt atau dengan menggunakan versi DT51L yang lebih user-friendly, yaitu DT51LWin.EXE.

PERINTAH YANG DIGUNAKAN

SJMP, LJMP

MOV, MOVX

SETB, CLR

JB, JNB

JC, JNC

CJNE

PERCOBAAN 1.1: PORT 1 SEBAGAI OUTPUT

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC mengunakan kabel serial DB-9 pin.

Hubungkan DT-51 MynSys dengan sumber tegangan.

Program 1.1 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya. $mod51 CSEG

Perhatikan:

1. Perhatikan gambar 4 pada bagian Dasar Teori. Pemasangan kabel X pada port control jangan sampai terbalik. Bagian kabel yang bersilangan (cross) dipasang pada pin 1 dan 2 (sisi kiri);

2. Pada kit praktikum ini digunakan tegangan Vs=12 V.

Page 19: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

5

ORG 4000H LJMP START START: CLR P1.0 CLR P1.1 CLR P1.2 SETB P1.3 SETB P1.4 SETB P1.5 CLR P1.6 CLR P1.7 SJMP $ END

Tugas 1.1 Modifikasi program di atas sehingga menghasilkan keluaran led (OUTPUT LED DISLAY) sesuai dengan representasi biner dari nomor kelompok Anda (dimana, nyala =1, padam=0) Petunjuk: Lihat perintah program yang berkaitan dengan akses port (yaitu yang memiliki operand P1.x).

Analisis keluaran pada “OUTPUT LED DISPLAY” dan pengaruh dari setiap line program yang Anda buat sehingga menghasilkan keluaran seperti itu.

Catatan:

Perintah SJMP $ pada program akan menyebabkan program berputar (looping) pada alamat (address) dimana perintah SJMP $ berada.

BASIC I/O DENGAN PPI PORT

TUJUAN Praktikan mampu membuat program input dan output menggunakan PPI (Programmable Peripheral Interface) Port (PORTA, PORTB dan PORTC) pada DT-51 MinSys.

DASAR TEORI PPI Port merupakan port ekspansi (tambahan) yang terdiri dari tiga port: PORTA (berada pada alamat 2000h), PORTB (berada pada alamat 2001h) dan PORTC (berada pada alamat 2002h). Masing-masing port tersebut memiliki jalur data input dan output selebar 8 bit.

Penggunaan PPI Port pada 82C55 tidak sesederhana penggunaan PORT1 yang telah disediakan oleh AT89S51. Untuk menggunakan port PPI harus didahului dengan proses inisialisasi. Proses inisialisasi dilakukan dengan menggunakan Control Word yang berada pada alamat 2003h. Dengan demikian, dengan Control Word inilah dapat diatur port mana yang aktif dan mode apa yang digunakan pada PORTA, PORTB dan PORTC PPI.

Control Word Berikut ini penjelasan nilai Control Word untuk inisialisasi:

MSB (Most Significant Bit) LSB (Least Significant Bit)

Page 20: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

6

D7 D6 D5 D4 D3 D2 D1 D0

Simbol Fungsi

D7 Set Flag, berlogika ‘1’ untuk mengaktifkan PPI Port.

D6& D5 Mode Select untuk PORTA dan PORTC Upper (bit 7 – bit 4), bernilai ‘00’ untuk mode 0, ‘01’ untuk mode 1, dan ‘10’ atau ‘11’ untuk mode 2. Praktikum ini hanya menggunakan mode 0 sehingga nilainya selalu ‘00’.

D4 PORTA, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

D3 PORTC Upper, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

D2 Mode Select untuk PORTB dan PORTC Lower (bit 3 – bit 0), berlogika ‘0’ untuk mode 0 dan berlogika ‘1’ untuk mode 1. Praktikum ini hanya menggunakan mode 0 sehingga selalu berlogika ‘0’.

D1 PORTB, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

D0 PORTC Lower, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

Setelah proses inisialisasi dilakukan, PPI Port dapat diakses per byte.

Akses Port per bit Pada PPI Port Selain diakses per byte, PPI Port dapat juga diakses per bit (Bit Set/Reset). Akses per bit hanya terbatas pada PORTC saja dan hanya sebagai output saja. Meski menggunakan PORTC, tetapi akses per bit bukan berarti mengakses langsung ke alamat PORTC. Akses per bit didapat dengan mengakses Control Word.

Berikut ini penjelasan nilai Control Word untuk mengakses port per bit. MSB LSB

D7 D6 D5 D4 D3 D2 D1 D0

Simbol Fungsi

D7 Set Flag, berlogika ‘0’ untuk mengaktifkan akses per bit.

D6, D5, D4

Bit bersifat don’t care (dapat diisi logika ‘0’ atau ‘1’). Disarankan untuk mengisi dengan logika ‘0’.

D3, D2, D1

Bit Select untuk menentukan bit pada PORTC yang akan diakses. Keterangan lebih jelas ditunjukkan oleh tabel 2.

D0 Bit Set/Reset untuk PORTC. Berlogika ‘1’ untuk Set dan ‘0’ untuk Reset.

Page 21: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

7

Bit pada Port C

7 6 5 4 3 2 1 0

D3 1 1 1 1 0 0 0 0

D2 1 1 0 0 1 1 0 0

D1 1 0 1 0 1 0 1 0

PERINTAH YANG DIGUNAKAN

SJMP, LJMP

MOV, MOVX

ACALL, RET

DJNZ

CJNE

PERCOBAAN 1.2 : PORT 1 SEBAGAI INPUT DAN PORT A SEBAGAI OUTPUT

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “PORT INPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan PORTA DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC mengunakan kabel serial.

Hubungkan DT-51 MynSys dengan sumber tegangan.

Program 1.2 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya (keterangan: ubah posisi “SWITCH INPUT” masing-masing bit).

$mod51 CSEG ORG 4000H LJMP START START: INIT: MOV DPTR, #2003H MOV A, #80H MOVX @DPTR, A LABEL: JB P1.4, DISPLAY2

Page 22: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

8

DISPLAY1: MOV DPTR, #2000H MOV A, #00H MOVX @DPTR, A SJMP LABEL DISPLAY2: MOV DPTR, #2000H MOV A, #55H MOVX @DPTR, A SJMP LABEL END

Tugas 1.2 Modifikasi program di atas sehingga jika “SWITCH INPUT” bit ke 0 di set samadengan 1 akan menghasilkan keluaran LED (nyala =1, padam=0) sesuai dengan representasi biner dari nomor kelompok Anda.

Analisis keluaran pada “OUTPUT LED DISPLAY” dan pengaruh dari setiap line program yang Anda buat sehingga menghasilkan keluaran seperti itu.

PERCOBAAN 1.3 : KOMBINASI PPI PORT SEBAGAI INPUT DAN OUTPUT

Persiapan Hubungkan PORTA DT-51 MinSys dengan “PORT OUTPUT” DT-51

Trainer Board menggunakan kabel tipe Y.

Hubungkan PORTB DT-51 MinSys dengan ”PORT INPUT” DT-51 Trainer Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai tegangan sumber) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 1.3 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya (keterangan: ubah posisi “SWITCH INPUT” masing-masing bit).

$mod51 PORTA EQU 2000H PORTB EQU 2001H CW EQU 2003H

CSEG ORG 4000H LJMP START DELAY:

MOV R7, #04H LUP1: MOV R6, #0FFH LUP2: MOV R5, #0FFH

DJNZ R5, $ DJNZ R6, LUP2 DJNZ R7, LUP1 RET

START:

Page 23: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

9

MOV SP, #30H

INIT: MOV DPTR, #CW MOV A, #82H MOVX @DPTR, A

LOOP: MOV DPTR, #PORTB MOVX A,@DPTR MOV DPTR, #PORTA MOVX @DPTR, A ACALL DELAY SJMP LOOP END

Tugas 1.3: Modifikasi program di atas sehingga PORTA menjadi input dan PORTB menjadi output (Petunjuk: perhatikan posisi kabel dan nilai CW). Analisis keluaran pada “OUTPUT LED DISPLAY” dan pengaruh dari setiap line program yang Anda buat sehingga menghasilkan keluaran seperti itu.

I/O PORT DENGAN DELAY Setiap instruksi memiliki total waktu komputasi yang berbeda yang tergantung dari siklus (cycle) yang diperlukan, besarnya frekuensi osilator, serta pembagi frekuensi osilator utama yang digunakan. Perhitungan waktu instruksi setiap cyclenya adalah sebagai berikut:

t tiap cycle = 12 / f osilator

Sedangkan besarnya waktu untuk tiap instruksi bergantung pada jumlah siklus yang dibutuhkan instruksi tersebut.

Untuk beberapa kasus, potongan program delay dibutuhkan untuk memberikan jeda, karena kecepatan instruksi lebih cepat dari kemampuan manusia untuk merespon keadaan. Berikut ini merupakan program yang menggunakan delay di dalamnya.

PERCOBAAN 1.4: PORT 1 DENGAN DELAY

Persiapan: Hubungkan ”PORT1” DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan ”CONTROL” DT-51 MinSys dengan ”CONTROL” DT-51 Trainer Board (sebagai tegangan sumber) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 1.4: Jalankan program di bawah ini, analisis dan buatlah diagram alirnya (keterangan: ubah posisi “SWITCH INPUT” masing-masing bit). $mod51

Page 24: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

10

;Membuat running led dengan delay dari DJNZ CSEG ORG 4000H LJMP START START: MOV A,#01H MOV P1,A LED1: RL A CJNE A,#10H,LED2 LCALL DELAY1 MOV P1,A LJMP LED1 LED2: LCALL DELAY2 MOV P1,A LJMP LED1 DELAY1:

MOV R7,#0C8H ;200 LUP1: MOV R6,#64H ;100 LUP2: MOV R5,#64H ;100 DJNZ R5,$ DJNZ R6,LUP2 DJNZ R7,LUP1 RET DELAY2:

MOV R7,#32H ;50 LUP3: MOV R6,#64H ;100 LUP4: MOV R5,#64H ;100 DJNZ R5,$ DJNZ R6,LUP4 DJNZ R7,LUP3 RET END

Program di atas menghasilkan dua jenis delay, jika diasumsikan frekuensi osilator adalah 12MHz maka secara perhitungan kasar pada program ini terdapat delay panjang sebesar 4 detik dan delay pendek sebesar 1 detik. (untuk frekuensi osilator real = 11,0592Mhz; delay real 4,4 detik dan 1,1 detik)

Modifikasi program di atas sehingga pada setiap perpindahan output LED terdapat delay panjang dan delay pendek yang sama, yaitu sebesar x detik. Nilai x ini bergantung pada nomor kelompok Anda, dimana:

X = (No.Kelompok mod 10) +2

Analisis keluaran pada “OUTPUT LED DISPLAY” dan pengaruh dari setiap line program yang Anda buat. Jelaskan perhitungan delay pada program yang Anda buat. Untuk mempermudah perhitungan, Anda boleh menggunakan asumsi f=12Mhz.

Page 25: Petunjuk Praktikum Sismik

Percobaan1: Basic Input/ Output

11

Page 26: Petunjuk Praktikum Sismik
Page 27: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

13

PERCOBAAN 2 TIMER/ COUNTER DAN INTERRUPT

DASAR PENGGUNAAN TIMER

TUJUAN PRAKTIKUM Praktikan mampu membuat program menggunakan timer pada mikrokontroler 8051 dalam berbagai variasi mode timer dan jenis timer.

DASAR TEORI Dalam menggunakan timer, kita memerlukan setting beberapa register yang terkait dengan timer sehingga timer bisa bekerja sesuai dengan keinginan kita. Berikut ini adalah penjelasan mengenai register yang akan digunakan.

TMOD Register ini terdiri dari 8 bit dan tidak bit-addressable. Empat bit pertama (LSB) pada register ini digunakan untuk mengatur timer 0, dan empat bit selanjutnya (MSB) digunakan untuk mengatur timer 1.

MSB LSB

GATE(1) C/~T(1) M1(1) M0(1) GATE(0) C/~T(0) M1(0) M0(0)

Timer 1 | Timer 0

Simbol Fungsi

GATE(X) Jika bit ini bernilai “1”, timer yang bersangkutan akan dimulai jika (~INTX dan TRX) = 1. Sedangkan jika bit ini bernilai “0”, timer yang bersangkutan akan dimulai jika TRX=1.

C/~T(X) JIka bit ini bernilai “1”, maka fungsi yang dijalankan adalah counter, yaitu timer yang bersangkutan akan di-increment setiap transisi “1” ke”0” pada pin TX. Sedangkan jika bit ini bernilai “0” maka fungsi yang dijalankan adalah timer, yaitu timer akan di-increment 1 setiap siklus mesin. Kedua fungsi ini hanya akan berjalan jika TRX diset “1”.

M1(X)/M0(x) Bit ini menentukan mode operasi timer. Lihat pada bit di bawah.

M1 M0 Mode Mode Kerja

Page 28: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

14

0 0 0 Timer 13 bit.

0 1 1 Timer 16 bit

1 0 2 Auto-reload 8 bit

1 1 3 Split timer

TCON Register ini terdiri dari 8 bit dan dapat diakses per-bit. Sesuai namanya register ini merupakan kendali dari timer yang berfungsi untuk mengendalikan kapan timer bekerja, menandakan ketika adanya overflow ataupun penunjuk jika terjadi interupsi pada timer.

MSB LSB

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Simbol Fungsi

TF(x) Bit ini secara otomatis diset bernilai “1” jika Timer(x) overflow. Bit ini juga memicu interrupt pada Timer(x). Bit ini secara otomatis diset bernilai “0” ketika interupsi timer(x) dieksekusi atau bisa juga dilakukan secara manual melalui program.

TR(x) Bit ini berfungsi untuk penanda dimulainya Timer(x). Set bit ini ke nilai”1” jika ingin menjalankan Timer(x).

IE(x) Bit ini diset secara otomatis oleh mikrokontroller untuk mengindikasikan terjadi kondisi interupsi eksternal(x). Perubahan bit ini bisa dipicu oleh transisi 1-0 (falling edge) dari port INT(x) atau ketika INT(x) berlogika 0, hal ini ditentukan oleh konfigurasi IT(x). Jika bit ini bernilai “1” maka rutin dari vector Interupsi Eksternal(x) akan dieksekusi. Bit ini secara otomatis akan dihapus jika interupsi terjadi.

IT(x) Bit ini digunakan untuk konfigurasi apakah interupsi eksternal akan terjadi saat pint INT(x) pada transisi 1-0 atau ketika berlogika “0”. Jika bit ini bernilai “1” interupsi eksternal aka terjadi ketika transisi 1-0.

TH(x) dan TL(x) TH(x) dan (TL(x) merupakan sepasang register yang digunakan untuk menampung nilai yang dibutuhkan untuk timer. Penggunaannya bergantung pada mode timer yang digunakan. Jika mode 16 bit timer, maka nilai TH(x) dan TL(x) dipakai untuk nilai awal timer yang kemudian setiap satu cycle akan ditambah 1 hingga mencapai overflow (peralihan dari FFFFH 0000H). Jika mode 8 bit autoreload maka hanya nilai TH(x) yang ditambah setiap waktu sedangkan nilai TL(x) akan diisikan ke TH(x) jika terjadi overflow dan lain sebagainya.Untuk lengkapnya silahkan baca datasheet 8051.

Page 29: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

15

PERINTAH YANG DIGUNAKAN MOV

CLR, SETB

LJMP, JNB, CJNE, JB

INC

ACALL, RET

PUSH, PULL

SPECIAL FUNCTION REGISTER YANG DIGUNAKAN TMOD

TCON

THx

TLx

SP

PERCOBAAN 2.1 : TIMER/COUNTER 0 SEBAGAI TIMER MODE 0/1

Persiapan Hubungkan PORT1 DT-51 MinSys dengan ”PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board ( sebagai sumber tegangan ) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 2.1 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$MOD51 ORG 4000H LJMP START START: MOV R0,#00H MOV P1,#0FFH CLR P1.4 INITTIM: MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0EFH SETB TR0 MOV A,#0FFH CHECK: JNB TF0,CHECK LCALL RELOAD LJMP PENGALI

Page 30: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

16

PENGALI: INC R0 CJNE R0,#32H,CHECK MOV R0,#00H LJMP LED LED: CJNE A,#00H,NYALA LJMP MATI MATI: CLR P1.4 MOV A,#0FFH LJMP CHECK NYALA: SETB P1.4 MOV A,#00H LJMP CHECK RELOAD: CLR TR0 MOV TH0,#0D8H MOV TL0,#0EFH CLR TF0 SETB TR0 RET

END

Tugas 2.1 Modifikasi program di atas sehingga antara 4bit LSB dengan 4 bit MSB berkedip secara bergantian dengan waktu periode kedip LED berkisar x detik, dimana x = (modulus 9 dari no.grup) + 1; asumsikan frekuensi clock 12MHz. (Petunjuk: perhatikan cara kerja nilai pengali dan nilai register TH/TX serta clock divider yang terdapat pada mikrokontroler).

PERCOBAAN 2.2: TIMER/COUNTER 0 SEBAGAI COUNTER MODE 2 (8-BIT AUTORELOAD)

Persiapan

Hubungkan PORT1 DT-51 MinSys dengan ”PORT OUTPUT” DT-51 Trainer Board menggunakan kabel tipe Y.

Hubungkan IS3 dengan T0 pada DT-51 Trainer Board.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 2.2 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya. Keterangan: Tekan tombol IS3 beberapa kali dan perhatikan keluaran pada “OUTPUT LED DISPLAY”. $mod51 CSEG ORG 4000H LJMP START

Page 31: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

17

START:

INITCO: MOV TMOD, #06H MOV TH0, #0FBH MOV TL0, #0FBH CLR TF0 MOV A, #00H SETB TR0

LED1: MOV A, TL0 SUBB A, #0FBH JB TF0, LED2 MOV P1, A LJMP LED1

LED2: MOV P1, #0FFH ACALL DELAY LJMP START

DELAY: MOV R7, #04H LUP1: MOV R6, #0FFH LUP2: MOV R5, #0FFH

DJNZ R5, $ DJNZ R6, LUP2 DJNZ R7, LUP1 RET END

Tugas 2.2 Modifikasi program diatas sehingga momen LED menyala semua sejenak adalah ketika tombol ditekan sejumlah x kali, dimana x = (modulus 9 dari no.grup) + 1. Untuk referensi jumlah penekanan tombol lihat representasi biner dari jumlah penekanan yang ada pada ”OUTPUT LED DISPLAY”.

DASAR PENGGUNAAN INTERUPT

TUJUAN PRAKTIKUM Praktikan mampu membuat program dengan memanfaatkan fasilitas interupsi yang tersedia pada mikrokontroler

DASAR TEORI Dalam menggunakan interupsi, ada beberapa register yang dimanfaatkan untuk rpses pengaturan jalannya interupsi. Penjelasan singkatnya adalah sebagai berikut:

IE (Interupt Enable) Register ini terdiri dari 8 biat dan bit addressable, register ini digunakan untuk mengaktifkan register yang kita inginkan yang terdapat pada mikrokontroler.

MSB LSB

Page 32: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

18

EA - - ES ET1 EX1 ET0 EX0

Simbol Fungsi

EA Jika kita ingin menggunakan fasilitas interupsi, maka bit ini harus diset pertama kali. Jika bit ini bernilai”0” tidak akan ada interupsi yang bisa terjadi.

ES Bit ini digunakan untuk mengaktifkan Interupsi Serial Port. Jika bernilai “1” maka rutin Interupsi Serial (0023H) akan dipanggil ketika bit TI atau RI bernilai “1”.

ET(x) Bit ini digunakan untuk mengaktifkan interupsi Timer(x). Jika bernilai “1” rutin interupsi timer akan dipanggil ketika bit TF(x) bernilai 1.

EX(x) Bit ini digunakan untuk mengaktifkan interupsi External(x). Jika bernilai “1” rutin interupsi eksternal akan dipanggil ketika bit IE(x) bernilai “1”.

IP (Interrupt Priority) Register ini terdiri dari 8 bit dan bit addressable, register ini digunakan untuk memilih prioritas interupsi, interupsi dengan prioritas lebih tinggi akan dieksekusi terlebih dahulu jika terjadi 2 interupsi pada waktu yang sama.

MSB LSB

- - PT2 PS PT1 PX1 PT0 PX0

Simbol Fungsi

PT(x) Timer 2 Interrupt Priority. 0=Low Priority, 1=High Priority.

PS Serial Interrupt Priority. 0=Low Priority, 1=High Priority.

PX(x) 0=Low Priority, 1=High Priority.

PERCOBAAN 2.3: PENGGUNAAN INT0 DENGAN INTERRUPT ENABLE

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan dan koneksi INT0/INT1) menggunakan kabel tipe X.

Hubungkan IS1 dengan INT0 pada DT-51 Trainer Board.

Page 33: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

19

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 2.3 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 CSEG ORG 4000H LJMP START ORG 4003H INTER: RL A MOV P1, A MOV R7, #04H RETI START: INITINT: MOV TCON, #01H MOV A, #01H MOV P1, #01H MOV IE, #81H SJMP $

END

Catatan:

Untuk menggunakan INT0 dengan falling edge trigger (transisi dari high ke low), maka IT0 (TCON.0) berlogika “1”, sehingga TCON bernilai “00000001b” atau “01h”.

Untuk mengaktifkan interrupt, maka EX0 (IE.0) dan EA (IE.7) berlogika “1” sehingga IE bernilai “10000001b” atau “81h”.

Perhatikan bahwa pada saat interrupt, program akan melompat ke alamat vektor 0003h, tetapi oleh DT-51 MinSys akan langsung dipindah ke alamat 4003h.

Tugas 2.3 Buatlah program untuk menampilkan LED di PORTA dengan IS1 yang dihubungkan ke INT0 pada DT-51 Trainer Board dengan syarat:

Pada kondisi awal, BIT7, BIT6, BIT1 dan BIT0 pada “OUTPUT LED DISPLAY” menyala.

Interrupt trigger bersifat falling edge.

Jika terjadi interrupt, BIT5, BIT4, BIT3 dan BIT2 pada “OUTPUT LED DISPLAY” menyala sejenak.

Setelah interrupt selesai, kondisi “OUTPUT LED DISPLAY” kembali pada kondisi awal.

Page 34: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

20

PERCOBAAN 2.4: PENGGUNAAN INT0 DAN INT1 DENGAN INTERRUPT PRIORITY

Persiapan: Hubungkan PORT1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan dan koneksi INT0/INT1) menggunakan kabel tipe X.

Hubungkan IS1 dengan INT0 dan IS2 dengan INT1 pada DT-51 Trainer Board.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 2.4 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 CSEG ORG 4000H LJMP START ORG 4003H LJMP INTER0 ORG 4013H LJMP INTER1

INTER0: MOV P1, #0H SETB P1.0 LCALL LDELAY CLR P1.0 RETI

INTER1: MOV P1, #0H SETB P1.7 LCALL LDELAY CLR P1.7 RETI

LDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7, #24H

LUPA: MOV R6, #0FFH LUPB: MOV R5, #0FFH

DJNZ R5, $ DJNZ R6, LUPB DJNZ R7, LUPA POP 5 POP 6 POP 7 RET

SDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7, #04H

LUP1: MOV R6, #0FFH LUP2: MOV R5, #0FFH

Page 35: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

21

DJNZ R5, $ DJNZ R6, LUP2 DJNZ R7, LUP1 POP 5 POP 6 POP 7 RET

START: ;inisialisasi

MOV SP,#30H MOV TCON, #05H MOV IP, #04H MOV IE, #85H

;program utama MAIN:

MOV P1, #01010101B ACALL SDELAY MOV P1, #10101010B ACALL SDELAY SJMP MAIN END

Jika tidak ada kesalahan, program tersebut akan menampilkan nyala LED yang bergantian antara nyala LED ”Bit 6”, ”Bit 4”, ”Bit 2”, dan ”Bit 0” dengan nyala LED ”Bit 7”,”Bit 5”, ”Bit 3”, dan ”Bit 1”. Setiap kali ada penekanan tombol ”IS1”, hanya LED ”Bit 0” yang akan menyala. Setiap kali ada penekanan tombol ”IS2”, hanya LED ”Bit 7” yang akan menyala.

Catatan:

Untuk menggunakan INT0 dan INT1 dengan falling edge trigger (transisi dari high ke low), maka IT1 (TCON.2) dan IT0 (TCON.0) berlogika “1”, sehingga TCON bernilai “00000101b” atau “05h”.

Untuk memindah INT1 ke tingkat prioritas lebih tinggi, maka PX1 (IP.2) berlogika “1”, sehingga IP bernilai “00000100b” atau “04h”.

Untuk mengaktifkan INT0 dan INT1, maka EX0 (IE.0), EX1 (IE.2), dan EA (IE.7) berlogika “1”, sehingga IE bernilai “10000101b” atau “85h”.

Rutin interrupt pada alamat vektor 4003h dan 4013h dipindah ke alamat lain dengan perintah LJMP. Hal ini dilakukan agar rutin dapat lebih panjang tanpa khawatir menerjang alamat vektor berikutnya.

Perhatikan bahwa penekanan keypad ”IS2” dapat menginterupsi rutin dari penekanan keypad ”IS1” tetapi tidak dapat sebaliknya. Hal ini dikarenakan INT1 berada pada tingkat prioritas lebih tinggi. Jadi jika keypad ”IS1” ditekan setelah keypad ”IS2” ditekan, LED ”Bit 7” akan menyala hingga delay selesai dieksekusi baru kemudian LED ”Bit 0” akan menyala.

Perhatikan bahwa SDELAY menggunakan alamat yang sama dengan LDELAY. Untuk menghindari kekacauan nilai, maka diperlukan PUSH dan POP. Untuk keperluan ini, alamat 30H digunakan untuk inisialisasi SP.

Page 36: Petunjuk Praktikum Sismik

Percobaan 2: Timer/ Counter dan Interrupt

22

Tugas 2.4 Buatlah program untuk menampilkan LED di PORTA dengan IS1 yang dihubungkan ke ”INT0” dan ”IS2” dihubungkan ke ”INT1” pada DT-51 Trainer Board dengan syarat :

Program utama akan menampilkan data ”0FFh” bergantian dengan data ”00h”.

Interrupt trigger bersifat falling edge dengan prioritas INT0.

Jika terjadi interrupt dari INT0, program akan menampilkan data ”99h” dan ”66h” selama 3 detik. Setelah itu kembali ke program utama.

Jika terjadi interrupt dari INT1, program akan menampilkan data ”0Aah” dan ”55h” selama 3 detik. Setelah itu kembali ke program utama.

Catatan:

Gunakan beberapa alamat atau variabel untuk menyimpan data-data tersebut.

Page 37: Petunjuk Praktikum Sismik

Percobaan 3: Akses Serial dan Review Modul

23

PERCOBAAN 3 AKSES SERIAL DAN REVIEW MODUL

DASAR KOMUNIKASI DENGAN AKSES SERIAL

TUJUAN Praktikan mampu membuat program menggunakan serial port (DB9) dari DT-51 MinSys sebagai jalur komunikasi dalam berbagai kecepatan, baik sebagai penerima data maupun pengirim data.

DASAR TEORI Dalam menggunakan fasilitas serial pada mikrokontroler, ada beberapa register yang digunakan untuk pengaturan komunikasi serial tersebut. Penjelasan singkatnya adalah sebagai berikut:

Register SCON (Serial Control) Register ini terdiri dari 8 bit dan dapat diakses per-bit. Sesuai namanya register ini merupakan kendali dari komunikasi yang berfungsi untuk menentukan mode kerja serial, kapan komunikasi serial mulai beroperasi, mengendalikan interupsi pada serial dan mengendalikan bit ke-9 pada komunikasi serial jika digunakan.

MSB LSB

SM0 SM1 SM2 REN TB8 RB8 TI RI

Simbol Fungsi

SM0/SM1 Serial Port Mode. 2 bit SM0 dan SM1 digunakan bersama-sama untuk memilih mode komunikasi serial yang akan digunakan

SM0 SM1 Mode Serial Mode Kerja Baud Rate

0 0 0 Shift Register Clock Oscilator/12

0 1 1 8-bit UART Diset oleh timer

1 0 2 9-bit UART Clock Oscilator/32 atau /64

1 1 3 9-bit UART Diset oleh timer

Page 38: Petunjuk Praktikum Sismik

Percobaan 4: Akses Interface Input/ Output Tambahan

24

Mode 0: “Shift Register|Oscilator/12”. Kirim/Terima Data terjadi pada RXD (P3.0), sedangkan TXD (P3.1) adalah jalur clock. Tegangan jalur TXD akan beralih dari high ke low setiap ada satu bit output pada RXD. Ketika menerima data, satu bit masukan pada RXD terjadi setiap satu pulsa TXD.

Mode 1: “8-bit UART|Timer Based”. Keluaran serial ditransmisikan melalui TXD (P3.1) dan masukan di RXD (P3.0). Data terdiri dari 10-bit, 1-bit sebagai start bit yang selalu bernilai 0, 8-bit data yang diawali oleh bit LSB dan 1-bit sebagai stop bit yang selalu bernilai 1. Baud rate ditentukan oleh timer.

Mode 2: “9-bit UART|Oscliator/32 atau /64”. Keluaran serial ditransmisikan melalui TXD(P3.1) dan masukan di RXD(P3.0). Data terdiri dari word 11-bit, 1-bit sebagai start bit yang selalu bernilai 0, 9-bit data yang diawali oleh bit LSB, 1-bit sebagai stop bit yang selalu bernilai 1. Ketika mengirim, bit data ke-9 direpresentasikan oleh nilai register “TB8”, sedangkan ketika menerima bit data ke-9 akan disimpan pada register “RB8”. Baud rate merupakan 1/32 dari frekuensi oscillator(1/64 jika bit SMOD adalah set).

Mode 3: “9-bit UART/Timer Based“. Sama seperti mode 2, tetapi baud rate berdasarkan siklus overflow dari Timer 1.

SM2: “Komunikasi Multiprosesor”. Ketika set dan menggunakan Serial Mode 2 atau 3, maka port serial beroperasi dalam mode multiprosesor. Pada mode ini, data hanya diterima di register SBUF

REN: “Receive Enable”. Bit ini harus berstatus set untuk mendapatkan data melalui port serial. Jika bit ini tidak set, data tidak akan diterima dalam SBUF, register RI juga tdak akan set.

TB8: “Transmit Bit-8”. Ketika komunikasi serial dalam mode 2 dan 3, bit ini akan menjadi bit data ke-9 yang akan ditransmisikan melalui port serial.

RB8: “Receive 8-bit”. Ketika komunikasi serial dalam mode 2 dan 3, bit ini akan menyimpan bit data ke-9 yang akan diterima melalui port serial.

TI: “Transmit Interrupt”. Bit ini akan set ketika karakter sudah dikirimkan melalui UART. Bit ini harus di clear oleh program sebelum pengiriman karakter berikutnya melalui port serial.

RI: “Receive Interrupt”. Bit ini akan set ketika karakter sudah diterima oleh UART. Ketika bit ini set, program bisa membaca nilai dari SBUF untuk mendapatkan nilai dari byte yang diterima. Bit ini harus di clear segera setelah nilai dari SBUF sudah dibaca.

Page 39: Petunjuk Praktikum Sismik

Percobaan 3: Akses Serial dan Review Modul

25

SBUF (Serial buffer) Register ini digunakan sebagai penyimpanan sementara dari data yang akan dikirim atau diterima dari port serial. Untuk menerima dan mengirim data menggunakan register ini diperlukan konfigurasi register SCON yang sesuai dan juga konfigurasi timer jika digunakan sebagai pembangkit baud rate.

PERCOBAAN 3.1: PENERIMAAN DATA DARI PC (SERIAL MODE 1)

Persiapan Hubungkan PORT1 DT-51 MinSys dengan ”PORT OUTPUT” DT-51 Trainer

Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Bukalah program Hyper Terminal dan aturlah kecepatan 9600 bit per second (bps) pada posisi serial port yang digunakan. Simpan dan tutuplah program tersebut.

Program 3.1 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 CSEG ORG 4000H LJMP START

;interrupt penerimaan ORG 4023H CLR RI MOV A, SBUF MOV P1, A

RETI

START: ;inisialisasi

MOV SCON, #50H ;Serial Mode 1 dengan REN=1 MOV TMOD, #20H ;Timer1 pada Mode2 MOV TH1, #0FDH ;Baud rate = MOV PCON, #00H ;9600 bps SETB TR1 ;Hidupkan Timer1 SETB ES ;Aktivasi interupsi serial SETB EA ;Aktivasi interupsi global SJMP $ END

Setelah proses download ke DT-51 MinSys, jalankan program Hyper Terminal yang telah dibuat. Kemudian tekan sembarang tombol pada keybord computer (misalnya, huruf “Z”, “F”, angka “3” atau symbol “@”) dan perhatikan bahwa “OUTPUT LED DISPLAY” akan menampilkan kode ASCII dari tombol keyboard yang ditekan.

Catatan :

Page 40: Petunjuk Praktikum Sismik

Percobaan 4: Akses Interface Input/ Output Tambahan

26

Dalam menggunakan komunikasi serial Mode 1 untuk menerima data, maka SM0 (SCON.7) pada SCON berlogika “0”, sedangkan SM1 (SCON.6) dan REN (SCON.4) berlogika “1”, sehingga SCON bernilai “01010000b” atau “50h”.

Untuk menghasilkan baud rate 9600 bps menggunakan Timer 1, maka ada beberapa register yang harus diberi nilai (diinisialisasi) :

Timer1 berada pada Mode 2 (M1 pada TMOD berlogika “1”, bit yang lain berlogika “0”) dan mengisi nilai “0FDh” pada TH1.

SMOD (PCON.7) pada PCON berlogika “0” sehingga PCON bernilai “00000000b” atau “00h”.

TR1 (TCON.6) berlogika “1” untuk mengaktifkan timer1.

Untuk mengaktifkan serial interrupt, ES (IE.4) dan EA (IE.7) berlogika “1”.

Tugas 3.1 Buatlah program untuk mengakses ”OUTPUT LED DISPLAY” melalui PORTA dengan syarat berikut:

Semua led dimulai dari keadaan padam.

Atur komunikasi serial dalam mode 1 dengan kecepatan 19200 bps.

Aktifkan serial interrupt.

DT-51 MinSys akan menerima data dari PC (dari penekanan keyboard) dan menampilkan data tersebut ke led bergantian dengan komplemen data tersebut ke LED bergantian dengan komplemen data tersebut hingga ada data lain yang masuk. Misalkan data yang diterima “35h” atau “00110101b”, maka nyala led akan merepresentasikan/ menampilkan data “00110101b” dan “11001010b” secara bergantian.

Catatan :

Tambahkan prosedur delay untuk memperlama tampilan.

PERCOBAAN 3.2: PENGIRIMAN DATA KE PC

Persiapan Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Bukalah program Hyper Terminal dan aturlah kecepatan 19200 bps pada posisi serial port yang digunakan. Simpan dan tutuplah program tersebut.

Program 3.2

Jalankan program di bawah ini, analisis dan buatlah diagram alirnya. $mod51

CSEG ORG 4000H LJMP START

Page 41: Petunjuk Praktikum Sismik

Percobaan 3: Akses Serial dan Review Modul

27

;interrupt pengiriman

ORG 4023H CLR TI CJNE A, #39H, PLUS MOV A, #30H SJMP EXIT

PLUS: INC A EXIT: RETI DELAY: MOV R7, #0FFH

MOV R6, #0FFH DJNZ R6, $ DJNZ R7, $ RET

START: CLR ET1 MOV SCON, #40H ;Serial Mode 1 dengan REN=0 MOV TMOD, #20H

MOV TH1, #0FDH ;Baud rate = MOV PCON, #80H ;19200 bps SETB TR1 SETB ES SETB EA MOV A, #30H

ULANG: MOV SBUF, A

LCALL DELAY SJMP ULANG END

Setelah proses download ke DT-51 MinSys, jalankan program Hyper Terminal yang telah dibuat. Jika semua tahap diikuti dengan benar, akan ditampilkan angka “0” sampai “9” secara berulang-ulang pada jendela Hyper Terminal.

Catatan:

Untuk menggunakan komunikasi serial pada mode 1 hanya untuk mengirimkan data, maka SM0 (SCON.7) dan REN(SCON.4) pada SCON berlogika “0”, sendangkan SM1 (SCON.6) berlogika “1”, sehingga SCON bernilai “01000000b” atau “40h”.

Untuk menghasilkan baud rate 19200 bps menggunakan Timer 1, maka ada beberapa register yang harus diberi nilai:

Timer1 berada pada Mode 2 (M1 pada TMOD berlogika “1”, bit yang lain berlogika “0”) dan mengisi nilai “0FDh” pada TH1.

SMOD (PCON.7) pada PCON berlogika “1” sehingga PCON bernilai “10000000b” atau “80h”

TR1 (TCON.6) berlogika “1” untuk mengaktifkan Timer1.

Untuk mengaktifkan serial interrupt, ES (IE.4) dan EA (IE.7) berlogika “1”

Tugas 3.2 Buatlah program untuk menampilkan huruf “a” sampai “z” kemudian “A” sampai “Z” secara berulang-ulang pada Hyper Terminal dengan syarat:

Atur komunikasi serial dalam mode 1 dengan kecepatan 9600 bps.

Page 42: Petunjuk Praktikum Sismik

Percobaan 4: Akses Interface Input/ Output Tambahan

28

Aktifkan serial interrupt.

Catatan:

Tambahkan prosedur delay untuk memperlama tampilan.

PERCOBAAN 3.3: PENGIRIMAN DAN PENERIMAAN DATA KE PC

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer

Board mengunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (Sebagai sumber tegangan) mengunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Bukalah program Hyper Terminal dan aturlah kecepatan 960 bps pada posisi serial port yang digunakan. Simpan dan tutuplah program tersebut.

Program 3.3 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya. $mod51 CSEG

ORG 4000H LJMP START

;interrupt penerimaan ORG 4023H CLR RI MOV A, SBUF MOV P1, A

;mengirimkan data ke PC MOV SBUF, A JNB TI, $ CLR TI RETI

;interrupt diaktifkan dan serial berada pada mode 1 ;dengan REN = 1 START:

MOV SCON, #50H

;inisialisasi baud rate (9600 bps) MOV TMOD, #20H MOV TL1, #0FDH MOV TH1, #0FDH MOV PCON, #00H SETB TR1 SETB ES SETB EA SJMP $ END

Setelah proses download ke DT-51 MinSys, jalankan program Hyper Terminal yang telah dibuat. Seperti pada Percobaan 3.1, perhatikan “OUTPUT LED DISPLAY” ketika

Page 43: Petunjuk Praktikum Sismik

Percobaan 3: Akses Serial dan Review Modul

29

sembarang tombol keyboard komputer ditekan. Namun, pada Percobaan 3.3 ini, data (yang bersesuaian dengan tombol keyboard yang ditekan) tadi akan dikirimkan balik ke PC dan muncul pada jendela Hyper Terminal.

Catatan:

Untuk menggunakan komunikasi serial pada mode 1 untuk menerima data, maka SM0 (SCON.7) pada SCON berlogika “0”, sedangkan SM1 (SCON.6) dan REN (SCON.4) berlogika “1”, sehingga SCON bernilai “01010000b” atau “50h”.

Untuk menghasilkan baud rate 9600 bps menggunakan Timer 1, maka ada beberapa register yang harus diberi nilai:

Timer1 berada pada Mode 2 (M1 pada TMOD berlogika “1”, bit yang lain berlogika “0”) dan mengisi nilai “0FDh” ada TH1.

SMOD (PCON.7) pada PCON berlogika “0” sehingga PCON bernilai “00000000b” atau “00h”.

TR1 (TCON.6) berlogika “1” untuk mengaktifkan Timer.

Untuk mengaktifkan serial interrupt, ES (IE.3) dan EA (IE.7) berlogika “1”.

Tugas 3.3: Buatlah program untuk komunikasi serial dengan syarat:

Semua led pada “OUTPUT LED DISPLAY” (penggunaan port bebas) dimulai dari keadaan padam.

Atur komunikasi serial dalam mode 1 dengan kecepatan 19200 bps.

Aktifkan serial interrupt.

DT-51 MinSys akan menerima 2 set data dari PC, menampilkannya di “OUTPUT LED DISPLAY”, dan mengirimnya kembali secara terbalik. Misalkan data yang diterima berturut-turut adalah “30h” dan 31h”. LED akan menampilkan data “30h” kemudian “31h”. Data yang dikirimkan dan ditampilkan di PC secara berturut-turut adalah “31h” dan “30h”.

Catatan:

Gunakan beberapa register bantu untuk membalik urutan data.

Gunakan delay untuk memperlama tampilan LED.

REVIEW MATERI PRAKTIKUM SISMIK

TUJUAN Praktikan mampu memanfaatkan pengetahuan dari praktikum sebelumnya untuk membuat program yang memanfaatkan secara bersama-sama fasilitas yang disediakan oleh mikrokontroler.

Page 44: Petunjuk Praktikum Sismik

Percobaan 4: Akses Interface Input/ Output Tambahan

30

Tugas 3.4 Buatlah sebuah program yang berfungsi untuk memeriksa password atau kata kunci yang diberikan melalui komunikasi serial dan toggle switch (SWITCH INPUT) dengan spesifikasi sebagai berikut:

Ada dua buah kata kunci yang akan diberikan kepada sistem;

Pada saat idle, menjalankan program running led;

Jika sebuah tombol ditekan, maka sistem akan berpindah pada mode menerima kata kunci 1;

Pada mode kata kunci 1, sistem hanya menyediakan waktu 5 detik untuk menerima input dari switch toogle. Sementara itu, “OUTPUT LED DISPLAY” akan merepresentasikan kenaikan waktu per-detik (dimulai dari detik ke-nol) dengan nyala led yang terus bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga led Bit0 sampaidengan Bit5 menyala). Setelah 5 detik berlalu, program mengecek apakah kata kunci yang direpresentasikan dengan switch toggle adalah benar atau salah? Jika salah, akan kembali ke program running led;

Jika kata kunci 1 benar, semua led pada “OUTPUT LED DISPLAY” akan menyala sejenak kemudian mati;

Setelah itu sistem akan berpindah pada mode counter;

Pada mode counter, ada sebuah tombol yang digunakan sebagai penghitung. Jika tombol itu ditekan sebanyak 5 kali, maka program akan berpindah ke mode kata kunci 2. Setiap representasi biner dari jumlah penekanan tombol ditampilkan pada “OUTPUT LED DISPLAY”;

Pada mode kata kunci 2, sistem akan menerima input dari komunikasi serial dalam jangka waktu 5 detik juga. Sementara itu, “OUTPUT LED DISPLAY” akan merepresentasikan kenaikan waktu per-detik (dimulai dari detik ke-nol) dengan nyala led yang terus bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga led Bit0 sampaidengan Bit5 menyala). Setelah 5 detik berlalu, program mengecek apakah kata kunci yang direpresentasikan dengan switch toggle adalah benar atau salah? Jika salah, akan kembali ke program running led;

Jika kata kunci 2 benar, program akan membuat seluruh led pada “OUTPUT LED DISPLAY” nyala dan mati, bergantian tiap detik, sebanyak 2 kali . Setelah itu kembali pada program running led.

Catatan:

Port, mode timer dan kombinasi kata kuci yang digunakan bebas.

Buatlah keterangan/ komentar pada program yang dibuat sehingga setiap bagian program tersebut dapat dengan mudah dipahami;

Kerjakanlah tugas di atas secara berurutan. Dengan demikian, jika tugas tersebut tidak selesai dikerjakan, asisten masih mungkin memberikan penilaian;

Page 45: Petunjuk Praktikum Sismik

Percobaan 3: Akses Serial dan Review Modul

31

Page 46: Petunjuk Praktikum Sismik
Page 47: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

33

PERCOBAAN 4 7 SEGMENT, KEYPAD DAN LCD DOT MATRIKS

DASAR PEMAKAIAN 7-SEGMENT DAN KEYPAD

TUJUAN PRAKTIKUM Praktikan mampu membuat program menggunakan teknik scanning seven segment dan scanning keypad pada DT-51 MinSys.

DASAR TEORI

Scanning Seven Segment Teknik scanning digunakan untuk menghemat penggunaan input/ output port. Scanning seven segment sebenarnya hanyalah suatu proses untuk menyalakan satu seven segment pada satu saat. Karena ada lebih dari satu seven segment, seven segment tersebut menyala bergantian secara cepat. Dengan cara tersebut di atas, seolah-olah semua seven segment menyala pada waktu yang bersamaan. Lebar jalur data yang dibutuhkan = 8 bit (ket: 8bit adalah lebar jalur data untuk satu seven segment) + n bit ( ket: n = jumlah seven segment ).

Untuk menyalakan seven segment 1 (DIGIT1) pada DT-51 Tutorial Board, maka DO1 (”I/P S KEY” pin 9) harus diberi logika “0” (bersifat active low). Sedangkan untuk dapat menyalakan seven segment 2 (DIGIT1) maka DO2 (”I/P S KEY” pin 10) harus diberi logika “0”.

Data seven segment pada rangkaian ini bersifat active high (logika “1” = nyala, logika “0” = padam), dengan urutan dari MSB ke LSB adalah DP (titik), G, F, E, D, C, B, A.

Gambar 1 Seven Segment

Scanning Keypad Scanning keypad sebenarnya hanyalah mengirimkan data output ke satu bagian keypad (baris/ kolom) kemudian membaca perubahan input pada bagian tersebut (kolom/ baris) keypad pada satu saat. Jika ada perubahan berarti telah terjadi penekanan keypad. Karena ada lebih dari satu bagian (baris/ kolom), pembacaan dilakukan bergantian secara cepat. Dengan cara seperti ini, seolah-olah semua keypad dibaca pada waktu yang bersamaan.

Lebar jalur data yang dibutuhkan = n bit (jumlah tombol keypad dalam satu baris) + m bit (m = jumlah tombol keypad dalam satu kolom) .

Page 48: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

34

DT-51 Tutorial Board memiliki keypad 2x2. Data output-nya adalah KBO1 (“I/P S KEY” pin 7) dan KBO2 (“I/P S KEY” pin 8) dan bersifat active low. Sedangkan data input-nya adalah KBI1 (“I/P S KEY” pin 3) dan KBI2 (“I/P S KEY” pin 4) yang juga bersifat active low.

Scanning keypad dilakukan pertama-tama dengan mengaktifkan KBO1 (KBO1 berlogika “0”, KBO2 berlogika “1”), kemudian memeriksa logika dari data input KBI1. Jika logikanya berubah dari “1” ke “0” berarti ada penekanan keypad yang terletak antara KBO1 dan KBI1. Selanjutnya KBI2 diperiksa; jika logikanya berubah dari “1” ke “0” berarti ada penekanan keypad antara KBO1 dan KBI2. Setelah pemeriksaan selesai, data output berikutnya diaktifkan, yaitu KBO2 (KBO1 berlogika “1”, KBO2 berlogika “0”). Kemudian tiap-tiap data input-nya diperiksa, seperti pemeriksaan pada KBO1.

Gambar 2 Skematik Keypad 2x2 pada DT-51 Trainer Board

PERCOBAAN 4.1: SCANNING SEVEN SEGMENT

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “DATA 7S“ DT-51 Trainer Board

menggunakan tipe Y.

Hubungkan PORTC DT-51 MinSys dengan “I/P S KEY“ DT-51 Trainer Board menggunakan kabel tipeY.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Page 49: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

35

Program 4.1 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 PORTC EQU 2002H CW EQU 2003H ANGKA5 EQU 6DH ANGKA7 EQU 07H

CSEG ORG 4000H LJMP START

DELAY: MOV R6, #0FH LUP: MOV R7, #0FFH

DJNZ R7, $ DJNZ R6, LUP RET

START: ;mengaktifkan PPI (dalam hal ini adalah PORTC) ;lihat kembali Modul 1

MOV DPTR, #CW MOV A, #80H MOVX @DPTR, A

LOOP: ;menampilkan angka 5 di seven segment 1

MOV DPTR, #PORTC MOV A, #80H MOVX @DPTR, A MOV P1, #ANGKA5 LCALL DELAY

;menampilkan angka 7 di seven segment 2 MOV A, #40H MOVX @DPTR, A MOV P1, #ANGKA7 LCALL DELAY SJMP LOOP END

Jika setiap tahap diikuti dengan benar, program tersebut akan menampilkan angka ”7” pada seven segment 2 (DIGIT2) dan angka ”5” pada seven segment 1 (DIGIT1) secara serentak tanpa berkedip.

Catatan :

Pada program tersebut, DO1 terhubung dengan PORTC bit ke-6 (PC.6) dan ”DO2” terhubung dengan PORTC bit ke-7 (PC.7).

Untuk menampilkan angka ”7” pada seven segment 2, maka DO2 berlogika “0” dan DO1 berlogika “1”. Data seven segment yang dikirimkan ke PORT1 bernilai “00000111b” atau “07h”.

Untuk menampilkan angka ”5” pada seven segment 2, maka DO2 berlogika “1” dan DO1 berlogika “0”. Data seven segment yang dikirimkan ke PORT1 bernilai “01101101b” atau “6Dh”.

Perhatikan bahwa program diberi delay setiap kali setelah data dikirimkan ke seven segment. Hal ini dilakukan karena waktu akses PPI lebih lama dibandingkan dengan cycle mikrokontroler.

Page 50: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

36

Tugas 4.1: Latihan Mandiri untuk Scanning Seven Segment Buatlah program menggunakan seven segment (port yang digunakan bebas) dengan syarat:

Pada saat pertama kali program dijalankan, seven segment akan menampilkan angka ”00”.

Selang waktu kira-kira 3 detik, seven segment akan menampilkan angka ”10”.

Selang waktu kira-kira 3 detik, seven segment akan menampilkan angka ”32”.

Selang waktu kira-kira 3 detik, seven segment akan menampilkan angka ”54”.

Selang waktu kira-kira 3 detik, seven segment akan menampilkan angka ”76”.

Selang waktu kira-kira 3 detik, program kembali menampilkan ”00”.

PERCOBAAN 4.2: SCANNING KEYPAD

Persiapan Hubungkan PORT1 DT-51 MinSys dengan “I/P S KEY” DT-51 Trainer Board

menggunakan kabel tipe Y.

Hubungkan PORTA DT-51 MinSys dengan “PORT OUTPUT” DT-51 Trainer Board menggunakan kabel tipe Y.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 4.2 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya. $mod51 PORTA EQU 2000H CW EQU 2003H CSEG ORG 4000H LJMP START DELAY: MOV R7, #0FFH DJNZ R7, $ RET START: MOV SP, #30H MOV DPTR, #CW MOV A, #81H MOVX @DPTR, A MOV DPTR, #PORTA LOOP: MOVX @DPTR, A LCALL DELAY MOV A, #00H ;scanning key berada di baris 1 (KBO1) MOV P1, #00101111B

Page 51: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

37

;memeriksa penekanan tombol 1 JB P1.0, KEY3 SETB ACC.0 AJMP LOOP

;memeriksa penekanan tombol 3 KEY3: JB P1.1, INPUT2 SETB ACC.2 AJMP LOOP ;scanning key berada di baris 2 (KBO2) INPUT2: MOV P1, #00011111B

;memeriksa penekanan tombol 2 JB P1.0, KEY4 SETB ACC.1 AJMP LOOP ;memeriksa penekanan tombol 4 KEY4: JB P1.1, LOOP SETB ACC.3 AJMP LOOP END

Jika setiap tahap diikuti dengan benar, program tersebut akan bekerja sebagai berikut:

Jika keypad 1 (KEY1) ditekan maka Bit0 pada ”OUTPUT LED DISPLAY” akan menyala sejenak.

Jika keypad 2 (KEY2) ditekan maka LED Bit1 pada ”OUTPUT LED DISPLAY” akan menyala sejenak.

Jika keypad 3 (KEY3) ditekan maka LED Bit2 pada ”OUTPUT LED DISPLAY” akan menyala sejenak.

Jika keypad 4 (KEY4) ditekan maka LED Bit3 pada ”OUTPUT LED DISPLAY” akan menyala sejenak.

Catatan:

Pada program tersebut,KBO1 terhubung dengan PORT1 bit ke-4 (P1.4) dan KBO2 terhubung dengan PORT1 bit ke-5 (P1.5). KBI1 terhubung dengan PORT1 bit ke-0 (P1.0) dan KBI2 terhubung dengan PORT1 bit ke-1 (P1.1). Program akan memeriksa pada data output baris bawah (KBO1 = “0” , KBO2 = “1”). Lalu memeriksa logika KBI1 (keypad 1). Jika KBI1 berlogika “0” berarti keypad 1 tersebut ditekan.

Jika keypad 1 tidak ditekan, program akan memeriksa logika KBI2 (keypad3). Jika KBI2 berlogika “0” berarti keypad 3 tersebut ditekan.

Jika tidak ada penekanan keypad pada baris bawah, program akan memeriksa pada data output baris atas (KBO2 = “0”, KBO1 = “1”). Lalu memeriksa logika KBI1 (keypad 2).

Jika ”KBI1” berlogika “0” berarti keypad 2 tersebut ditekan. Jika keypad 1 tidak ditekan, program akan memeriksa logika KBI2 (keypad 4). Jika KBI2 berlogika “0” berarti keypad 4 tersebut ditekan.

Page 52: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

38

Tugas 4.2: Latihan Mandiri Scanning Keypad Buatlah program dengan menggunakan keypad dan seven segment.

Pada saat pertama kali program dijalankan, maka seven segment akan menampilkan angka ”00”.

Jika keypad pertama ditekan, maka seven segment akan menampilkan angka ”11”.

Jika keypad kedua ditekan, maka seven segment akan menampilkan angka ”22”.

Jika keypad ketiga ditekan, maka seven segment akan menampilkan angka ”33”.

Jika keypad keempat ditekan, maka seven segment akan menampilkan angka ”44”.

DASAR PEMAKAIAN LCD

TUJUAN PRAKTIKUM Praktikan mampu membuat program untuk menampilkan karakter ke layar LCD dengan menggunakan “PORT LCD” dan rutin-rutin pada DT-51 MinSys. Praktikan mampu membuat kreasi karakter sendiri dan menampilkannya pada layar LCD.

DASAR TEORI DT-51 memiliki rutin-rutin yang dapat langsung digunakan untuk menampilkan karakter ke layar LCD. Rutin-rutin tersebut adalah:

CBF (0715h)

Fungsi CBF adalah untuk memeriksa Busy Flag LCD jika LCD akan diakses secara manual tanpa menggunakan rutin-rutin. Jika menggunakan rutin-rutin DT-51 MinSys, tidak perlu lagi mengakses CBF.

InitLCD (0740h) Rutin ini digunakan untuk menginisialisasi LCD sebelum menggunakan LCD.

CommandLCD (070h) Rutin ini digunakan untuk memberikan perintah pada LCD. Rutin CommandLCD dipanggil setelah kita mengisi Accumulator dengan nilai command word (perintah). Ada beberapa command word yang memiliki nilai tersendiri seperti dalam tabel 3.

Tabel 1 Daftar Command Word

Command word Nilai Fungsi Display Clear 01h Menghapus semua tampilan di LCD. Cursor Home 02h Meletakkan kursor dan tampilkan pada posisi awal. Dee Cursor 04h Kursos decrement setiap kali selesai menulis atau membaca LCD. Inc Cursor 06h Kursos increment setiap kali selesai menulis atau membaca LCD.

Page 53: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

39

CDDSR 05h Kursor decrement dan tampilan bergeser ke kanan setiap kali selesai menulis atau membaca LCD

ICDSL 07h Kursor increment dan tampilan bergeser ke kiri setiap kali selesai menulis atau membaca LCD

Display off 08h Memadamkan layar LCD, tampilan dapat muncul kembali jika ada perintah untuk menyalakan layar (dapat dilihat di manual LCD). Tetapi dari command word yang ada disini, mengakses kursor (memadamkan, menghidupkan, atau blinking) dapat digunakan untuk menyalakan layar. Selama layar padam, LCD masih dapat ditulisi tapi tidak menampilkan apa-apa.

CursorOff 0Ch Memadamkan kursor CursorOn 0Eh Menghidupkan kursor. CursorBlink 0Fh Kursor menjadi blinking (berkedip). CurShLeft 10h Menggeser kursor ke kiri CurShRight Menggeser kursor ke kanan. DispShLeft 18h Menggeser tampilan ke kiri. DispShRight 1Ch Menggeser tampilan ke kanan.

WriteLCD(07D0h) Rutin ini berfungsi untuk menuliskan karakter ke LCD. Kode karakter disimpan pada Accumulator. Karakter pada LCD membutuhkan 8 bit data. Karena DT-51 MinSys menggunakan mode 4 bit, maka seharusnya kita mengirimkan dua set data untuk menampilkan satu karakter. Dengan adanya rutin ini, kita tidak perlu mengirimkan dua set data. Untuk menampilkan satu karakter kita cukup mengisi Accumulator satu kali dengan karakter yang diinginkan.

Kode DDRAM(Display Data Random Access Memory) dari setiap karakter dapat dilihat pada manual LCD. Jika tidak ada, maka table 4 memuat table referensi dari manual LCD buatan Seiko Instruments, Inc. Tabel ini hanya memuat karakter yang umum digunakan (LCD Seiko juga dapat menampilkan karakter Jepang, Yunani, dan karakter lain yang jarang digunakan. Alamat “00000000h” sampai “0000FFFFh”digunakan untuk menyimpan 8 karakter CGRAM (Character Generator Random Access Memory). Karena yang digunakan hanya 3 bit terakhir, maka alamat “00000000h” sama dengan alamat “00001000h”. Bagian kosong pada kolom “Upper 0010” memang berupa karakter “spasi”.

Jika ingin menampilkan huruf J, Accumulator diberi nilai “01001010b” atau “4Ah” dan memanggil rutin WriteLCD. Sebagian dari karakter di tabel sama dengan karakter ASCII, sehingga tidak menutup kemungkinan untuk menampilkan karakter lain.

Tabel 2 Kode Data DDRAM

Upper Lower

0000 0010 0011 0100 0101 0110 0111

xxxx 0000 (1) 0 @ P ` p

xxxx 0001 (2) . 1 A Q a q

Page 54: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

40

xxxx 0010 (3) “ 2 B R b r

xxxx 0011 (4) # 3 C S c s

xxxx 0100 (5) $ 4 D T d t

xxxx 0101 (6) % 5 E U e u

xxxx 0110 (7) & 6 F V f v

xxxx 0111 (8) “ 7 G W g w

xxxx 1000 (1) ( 8 H X h x

xxxx 1001 (2) ) 9 I Y i y

xxxx 1010 (3) * : J Z j z

xxxx 1011 (4) + ; K [ k {

xxxx 1100 (5) , < L ¥ l |

xxxx 1101 (6) - = M ] m }

xxxx 1110 (7) . > N ^ n →

xxxx 1111 (8) / ? O _ o ←

ReadLCD (07F0h)

Rutin ini berfungsi untuk membaca karakter dari LCD atau CGRAM kemudian memindahkannya ke Accumulator. Pembacaan karakter dari LCD didahului dengan penentuan alamat DDRAM yang diinginkan dan pemanggilan rutin SetDDRAM. Sedangkan pembacaan karakter dari CGRAM didahului dengan penentuan alamat CGRAM yang diinginkan dan pemanggilan rutin SetCGRAM.

ReadAddrLCD (0820h)

Rutin ini berfungsi untuk membaca alamat LCD atau CGRAM kemudian memindahkannya ke Accumulator. Pembacaan alamat dari LCD didahului dengan penentuan alamat yang diinginkan dan pemanggilan rutin SetDDRAM. Sedangkan pembacaan alamat dari CGRAM didahului dengan penentuan alamat yang diinginkan dan pemanggilan rutin SetCGRAM.

SetDDRAM (0850h) Rutin ini berfungsi untuk menentukan alamat DDRAM pada alamat tertentu yang terdapat pada Accumulator sebelum memulai menulis atau membaca LCD. Alamat DDRAM adalah alamat pada tampilan LCD.

Konfigurasi alamat DDRAM untuk dua baris adalah sebagai berikut:

Display baris I : 00h – 27h

Display baris II : 40h – 67h

Jika LCD yang ada berformat 16 x 2, maka pada baris I adalah alamat DDRAM “00h – 0Fh” dan baris II adalah alamat “40h – 4Fh”. Jika display digeser ke kiri satu kali, maka yang tampil pada baris I adalah alamat “01h – 10h” dan baris II adalah alamat “41h – 50h”.

SetCGRAM (0870h)

Page 55: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

41

Rutin ini berfungsi untuk menentukan alamat CGRAM sebelum memulai menulis atau membaca pada CGRAM. Alamat tersebut disimpan pada Accumulator. Alamat CGRAM adalah alamat per baris pada setiap kotak tampilan. Satu karakter memiliki 8 alamat CGRAM (7 baris untuk karakter dan 1 baris terakhir umumnya untuk kursor) yang masing-masing datanya selebar 8 bit. Tetapi dari 8 bit tersebut, yang digunakan hanya 5 bit LSB (bit 4 – bit 0). Karakter I dan E pada program “TESLCD” DT-51 MinSys juga menggunakan CGRAM.

Konfigurasi alamat CGRAM terdapat pada “00h – 3Fh” (karena alamat CGRAM hanya selebar 6 bit) dengan kemampuan untuk menampung 8 karakter (1 karakter butuh 8 a1amat). Satu contoh untuk membuat karakter “I” dan “E” pada alamat DDRAM “00h” dan “01h” akan diberikan pada tabel 5.

Tabel 3 Contoh Data CGRAM

Data DDRAM Alamat CGRAM Data CGRAM

0 0 0 0 * 0 0 0 0 0 0

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0

0 0 0 0 * 0 0 1 0 0 1

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0

Jadi untuk membuat karakter sendiri, yang pertama dilakukan adalah menentukan alamat CGRAM, kemudian diisi dengan dengan data CGRAM. Penampilan karakter tersebut dilakukan dengan mengisi Accumulator dengan data DDRAM (bernilai antara “00h – 0Fh” pada tabel 4) lalu memanggil perintah WRITELCD.

PERCOBAAN 4.3: PENAMPILAN KARAKTER DAN VARIASINYA

Persiapan: Hubungkan “PORT LCD” DT-51 MinSys dengan modul LCD.

Hubungkan CONTROL DT-51 MinSys dengan CONTROL DT-51 Trainer Board (sebagai sumber tegangan) menggunakan kabel tipe X.

Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

Page 56: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

42

Hubungkan DT-51 MinSys dengan sumber tegangan.

Program 4.3.1 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 ;built-in routine

INITLCD EQU 0740H COMMANDLCD EQU 07B0H WRITELCD EQU 07D0H

;command word

CURSORHOME EQU 02H DISPLAYOFF EQU 08H CURSOROFF EQU 0CH CURSORON EQU 0EH CURSORBLINK EQU 0FH CURSHLEFT EQU 10H CURSHRIGHT EQU 14H DISPSHLEFT EQU 18H DISPSHRIGHT EQU 1CH

CSEG ORG 4000H LJMP START ORG 4100H LDELAY: MOV R7, #08H

LOP1: MOV R6, #0FFH LOP2: MOV R5, #0FFH

DJNZ R5, $ DJNZ R6, LOP2 DJNZ R7, LOP1 RET

START: LCALL INITLCD LCALL LDELAY

;menampilkan "ABC" MOV A, #41H LCALL WRITELCD LCALL LDELAY MOV A, #42H LCALL WRITELCD LCALL LDELAY MOV A, #43H LCALL WRITELCD LCALL LDELAY

;menampilkan kursor blinking MOV A, #CURSORBLINK LCALL COMMANDLCD LCALL LDELAY

;memadamkan kursor MOV A, #CURSOROFF LCALL COMMANDLCD LCALL LDELAY

;menampilkan kursor MOV A, #CURSORON LCALL COMMANDLCD LCALL LDELAY

;memadamkan display MOV A, #DISPLAYOFF

Page 57: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

43

LCALL COMMANDLCD LCALL LDELAY

;menyalakan tampilan dengan mengakses kursor MOV A, #CURSORON LCALL COMMANDLCD LCALL LDELAY

;menggeser kursor ke kanan MOV A, #CURSHRIGHT LCALL COMMANDLCD LCALL LDELAY

;menggeser kursor ke kiri MOV A, #CURSHLEFT LCALL COMMANDLCD LCALL LDELAY

;meletakkan kursor pada posisi awal MOV A, #CURSORHOME LCALL COMMANDLCD LCALL LDELAY

;menggeser display ke kanan 1 kali MOV A, #DISPSHRIGHT LCALL COMMANDLCD LCALL LDELAY

;menggeser display ke kiri 2 kali MOV A, #DISPSHLEFT LCALL COMMANDLCD LCALL LDELAY MOV A, #DISPSHLEFT LCALL COMMANDLCD SJMP $ END

Jika setiap tahap diikuti dengan benar, program tersebut akan bekerja sebagaimana yang sudah tercantum pada komentar di awal masing-masing bagian.

Catatan:

Perhatikan bahwa meskipun layar LCD dipadamkan, karakter “ABC” masih tersimpan dalam memori.

Salah satu cara untuk menyalakan layar adalah dengan menyalakan kursor. Perhatikan juga pada bagian terakhir dimana accumulator diisi ulang dengan perintah untuk menggeser tampilan ke kiri meskipun perintahnya sama. Hal ini dilakukan untuk mengantisipasi berubahnya accumulator akibat pemanggilan rutin CommandLCD.

Program 4.3.2 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 ;built-in routine

INITLCD EQU 0740H COMMANDLCD EQU 07B0H WRITELCD EQU 07D0H SETDDRAM EQU 0850H

;command word DISPLAYCLEAR EQU 01H DECCURSOR EQU 04H INCCURSOR EQU 06H

Page 58: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

44

CSEG ORG 4000H LJMP START ORG 4100H LDELAY: MOV R7, #08H LOP1: MOV R6, #0FFH LOP2: MOV R5, #0FFH DJNZ R5, $ DJNZ R6, LOP2 DJNZ R7, LOP1 RET START: LCALL INITLCD ;memindahkan kursor ke alamat 6h MOV A, #6H LCALL SETDDRAM LCALL LDELAY ;menulis "Lab." (dari belakang) dengan diawali perintah ;DecCursor MOV A, #DECCURSOR LCALL COMMANDLCD LCALL LDELAY MOV A, #2EH LCALL WRITELCD LCALL LDELAY MOV A, #62H LCALL WRITELCD LCALL LDELAY MOV A, #61H LCALL WRITELCD LCALL LDELAY MOV A, #4CH LCALL WRITELCD LCALL LDELAY ;memindahkan kursor ke alamat 8h MOV A, $8H LCALL SETDDRAM LCALL LDELAY ;mengembalikan ke penulisan normal dengan ;IncCursor lalu menuliskan "Sismik" MOV A, #INCCURSOR LCALL COMMANDLCD LCALL LDELAY MOV A, #53H LCALL WRITELCD LCALL LDELAY MOV A, #69H LCALL WRITELCD LCALL LDELAY MOV A, #73H LCALL WRITELCD LCALL LDELAY MOV A, #6DH LCALL WRITELCD LCALL LDELAY MOV A, #69H LCALL WRITELCD LCALL LDELAY MOV A, #6BH LCALL WRITELCD LCALL LDELAY SJMP $

END

Page 59: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

45

Jika setiap tahap dikerjakan dengan benar, program tersebut akan bekerja sebagaimana yang sudah tercantum pada komentar di awal masing-masing bagian.

Catatan:

Perintah “DecCursor” hanya menggeser kursor ke kiri setiap kali program selesai menuliskan satu karakter pada LCD. Perintah ini tidak menggeser tampilan. Perintah “IncCursor” menampilkan penulisan normal dimana kursor akan bergeser ke kanan setiap kali selesai menuliskan satu karakter. Perintah ini juga tidak menggeser tampilan. Jika sebelumnya terdapat perintah “DecCursor”, perintah “DisplayClear” akan menghapus semua tampilan sekaligus mengembalikan ke penulisan normal.

PERCOBAAN 4.4: PEMBUATAN DAN PENAMPILAN KARAKTER

Persiapan: hubungkan “PORT LCD” DT-51 MinSys dengan modul LCD

hubungkan DT-51 MinSys dengan PC menggunakan kabel serial

hubungkan DT-51 MinSys dengan sumber tegangan

Program 4.4 Jalankan program di bawah ini, analisis dan buatlah diagram alirnya.

$mod51 ;built-in routine

INITLCD EQU 0740H WRITELCD EQU 07D0H SETDDRAM EQU 0850H SETCGRAM EQU 0870H

CSEG

ORG 4000H LJMP START

ORG 4100H

LDELAY: MOV R7, #08H LOP1: MOV R6, #0FFH LOP2: MOV R5, #0FFH DJNZ R5, $ DJNZ R6, LOP2 DJNZ R7, LOP1 RET START: MOV SP, #40H LCALL INITLCD LCALL LDELAY ;membuat karakter di data DDRAM 00000000 ;(00h) dan 00000100 (04h)

MOV A, #00H LCALL SETCGRAM MOV A, #00000111B LCALL WRITELCD MOV A, #00001000B LCALL WRITELCD MOV A, #00011110B LCALL WRITELCD

Page 60: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

46

MOV A, #00001000B LCALL WRITELCD MOV A, #00011110B LCALL WRITELCD MOV A, #00001000B LCALL WRITELCD MOV A, #00000111B LCALL WRITELCD MOV A, #00000000B LCALL WRITELCD MOV A, #20H LCALL SETCGRAM MOV A, #00011000B LCALL WRITELCD MOV A, #00010100B LCALL WRITELCD MOV A, #00011000B LCALL WRITELCD MOV A, #00010100B LCALL WRITELCD MOV A, #00010110B LCALL WRITELCD MOV A, #00010101B LCALL WRITELCD MOV A, #00010110B LCALL WRITELCD MOV A, #00010100B LCALL WRITELCD LCALL LDELAY

;menampilkan karakter di data DDRAM 00h dan 04h pada awal LCD

MOV A, #00H LCALL SETDDRAM MOV A, #00H LCALL WRITELCD LCALL LDELAY MOV A, #04H LCALL WRITELCD LCALL LDELAY SJMP $

END

Jika seluruh tahap dikerjakan dengan benar, program tersebut akan menampilkan logo menyerupai “€” dan “Rp”.

Catatan:

Untuk membuat karakter di data DDRAM “00h” (0000*000), maka alamat CGRAM harus dipindah ke “00h” (000|000).

Untuk membuat karakter di data DDRAM “04h” (0000*100), maka alamat CGRAM harus dipindah ke “20h” (100|000).

Penulisan data CGRAM dilakukan secara berurutan mulai dari baris paling atas ( alamat CGRAM terkecil, 000|000 dan 100|000) ke baris paling bawah ( alamat CGRAM terbesar, 000|111 dan 000|111 ). Alamat CGRAM akan bertambah secara otomatis.

Baris terakhir umumnya dikosongkan sebagai tempat untuk kursor, tetapi dapat juga diisi.

Langkah selanjutnya untuk menampilkan karakter yang telah dibuat adalah mengisi Accumulator dengan data DDRAM “00h” dan “04h” lalu memanggil perintah “WriteLCD”.

Data CGRAM juga dapat disimpan dalam EEPROM.

Page 61: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

47

Tugas 4.4 Untuk praktikan hari senin dan selasa: Buatlah suatu counter yang akan mencacah setiap kali tombol interrupt ditekan dan nilai hasil pencacahan ditampilkan pada LCD

Untuk praktikan hari rabu dan kamis: Buatlah suatu program untuk menampilkan input dari keyboard pada LCD.

Untuk praktikan hari jumat:

Buatlah suatu program untuk menampilkan input dari keypad pada LCD.

Page 62: Petunjuk Praktikum Sismik

Percobaan 4: 7 Segment, Keypad dan LCD Dot Matriks

48

Page 63: Petunjuk Praktikum Sismik

Percobaan 5 dan 6: Perancangan Aplikasi

49

PERCOBAAN 5 DAN 6 PERANCANGAN APLIKASI

Percobaan 5 dan 6 adalah praktikum perancangan suatu aplikasi sederhana yang memanfaatkan fasilitas mikrokontroler 89S51. Percobaan ini dilakukan secara mandiri dan mengharuskan praktikan mengajukan dan membuat deskripsi perancangan aplikasi tersebut.

Informasi rinci mengenai Perancangan Aplikasi ini dapat diperoleh di papan pengumuman dan http://labdasar.ee.itb.ac.id

Page 64: Petunjuk Praktikum Sismik

50

Page 65: Petunjuk Praktikum Sismik

Apendiks A DT-51

51

APENDIKS A DT-51

DT-51 MINIMUM SYSTEM

Blok Diagram

Gambar 6 Blok Diagram DT-51 Minimum System

Konektor Ekspansi

Gambar 7 Konektor Ekspansi DT 51 Minumum System

Page 66: Petunjuk Praktikum Sismik

Apendiks A: DT-51

52

Peta Memori

Gambar 8 Peta Memori DT 51 Minimum System

Page 67: Petunjuk Praktikum Sismik

Apendiks A DT-51

53

DT-51 TRAINER BOARD

Tata Letak

Gambar 9 Tata Letak DT-51 Trainer Board

Konektor Ekspansi

Gambar 10 Konektor Ekspasi pada DT-51 Tainer Board

Page 68: Petunjuk Praktikum Sismik

Apendiks A: DT-51

54

Page 69: Petunjuk Praktikum Sismik

APENDIKS B: Set Instruksi 8051

55

APENDIKS B SET INSTRUKSI 8051

Page 70: Petunjuk Praktikum Sismik

Apendiks B: Set Instruksi 8051

56

Page 71: Petunjuk Praktikum Sismik

APENDIKS B: Set Instruksi 8051

57

Page 72: Petunjuk Praktikum Sismik

Apendiks B: Set Instruksi 8051

58

Page 73: Petunjuk Praktikum Sismik

APENDIKS C Kabel-Kabel

59

APENDIKS C KABEL-KABEL

Gambar 11 Kabel Tipe X

Gambar 12 Kabel Tipe Y

Page 74: Petunjuk Praktikum Sismik

APENDIKS C: Kabel-kabel

60

Gambar 13 Kabel Serial

Gambar 14 Kabel Jumper

Page 75: Petunjuk Praktikum Sismik

APENDIKS D Kode ASCII

61

APENDIKS D KODE ASCII