Laporan Mikrocontroler 1 UNM Makassar upload by me

48
A. Tujuan Praktikum 1. Mahasiswa memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED. 2. Mahasiswa dapat memahami program assembly untuk menghidupkan dan mematikan LED 3. Mahasiswa memahami beberapa intruksi assembly dasar. 4. Mahasiswa memahami pembuatan intruksi waktu tunda. B. Teori Dasar Mikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara masal (dalam jumlah banyak) membuat harganya menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat- alat bantu bahkan mainan yang lebih baik dan canggih. Tidak seperti sistem komputer, yang mampu menanganiberbagai macam program aplikasi (misalnya pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang 1

description

cukup untuk referensi bukan untuk di jadikan laporan langsung..

Transcript of Laporan Mikrocontroler 1 UNM Makassar upload by me

A. Tujuan Praktikum

1. Mahasiswa memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED.2. Mahasiswa dapat memahami program assembly untuk menghidupkan dan mematikan LED3. Mahasiswa memahami beberapa intruksi assembly dasar.4. Mahasiswa memahami pembuatan intruksi waktu tunda.

B. Teori DasarMikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara masal (dalam jumlah banyak) membuat harganya menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu bahkan mainan yang lebih baik dan canggih. Tidak seperti sistem komputer, yang mampu menanganiberbagai macam program aplikasi (misalnya pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada Mikrokontroler, perbandingan ROM dan RAM-nya yang besar, artinya program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan. Adapun kelebihan dari mikrokontroller adalah sebagai berikut : 1. Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan. 2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem. 3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah. 4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem. 5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat.

Arsitektur Mikrokontroler AVRMikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori rogram dan memori data, baik bus alamat maupun bus data sehingga pengaksesan data dan program dapat dilakukan secara bersamaan (concurrent). Adapun blog diagram arsitektur ATMega16 terdiri dari :

1. Arsitektur RISC dengan Troughput mencapai 16 MIPS pada frekuensi 16 MHz2. Memiliki kapasitas flash memori 16 Kbyte, EEPROM 512 Byte, dan SRAM 1 Kbyte3. Saluran I/O 32 buah , yaitu Port A, Port B, Port C, dan Port D.4. CPU terdiri dari 32 buah register5. User interupsi internal dan eksternal6. Port antarmuka SPI dan port USART sebagai komunikasi serial.7. Fitur Peripheral Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare Satu buah 16-bit timer/counter dengan prescaler terpisah dan mode compare, dan mode capture Real time counter dengan osilator tersendiri Empat kanal PWM dan antarmuka komparator analog 8 kanal, 10 bit ADC Byte-oriented Two-wire Serial interface Watchdog timer dengan osilator internal

Deskripsi Mikrokontroler ATMega16 VCC (Power Supply) dan GND (Ground) Port A(PA7..PA0)Porti A berfungsisebagai input analog pada contverter A/D. Port A juga sebagai suatu port I/O 8-bit dua arah, jika A/D konverter tidak digunakan. Pin-pin port dapat menyediakan resistor internal pullup (yang di pilih untuk masing-masing bit). Port A output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika Pin PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, pin-pin akan memungkinkan arus sumber jika resistor internal pull-up diaaktifkan.Prt A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis Port B (PB7..PB0)Pin B adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang di pilih untuk beberapa bit ). Pin B output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber jika resistor pull-up diaktifkan. Pin B adalah tri-stated manakala suatu kondisi reset menjadi aktif , sekalipun waktu habis Port C (PC7..PC0)Pin C adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pin C output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemapuan sumber. Sebagai input pin C yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin C adalah tri-stated manakala suatu kondisi reset menjadi aktif , sekalipun waktu habis. Port D(PD7..PD0)Pin D adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pin D output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemapuan sumber. Sebagai input pin D yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin D adalah tri-stated manakala suatu kondisi reset menjadi aktif , sekalipun waktu habis. RESET (Reset Input) XTAL1(Input Oscillator) XTAL2(Output Oscillator) AVCC adalah pin penyedia tegangan utuk port A dan Konverter A/D AREF adalah reverensi analog untuk Konverter A/D

LED adalah singkatan dari Light Emiting Dioda, merupakan kompnen yang dapat mengeluarkan emisi cahaya. LED merupakan produk temuan lain setelah dioda. Strukturnya juga sama dengan diode, tetapi belakangan ini di temukan bahwa electron yang menerjang sambungan P-N juga melepaskan energy panas dan energy cahaya. LED di buat agar lebih efesien jika mengeluarkan cahaya. Untuk mendapatkan emisi cahaya pada semi konduktor, doping yang di pakai adalah gallium, arsenic dan phosphorus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.

AVR mempunyai bahasa assembly tersendiri dan lain dengan MCS51. Hal ini terjadi karena arsitektur dari keduanya berbeda. Pada bahasa assembly AVR untuk menghidupkan LED pada port, port harus dikirim atau diberi logika 1. Dan untuk mematikan LED pada port, port harus di beri logika 0. Pada mikrokontroler AVR bekerja dengan aktif hight, sedangkan MCS51 bekerja dengan aktif Low.1. Intruksi SET digunakan untuk memberikan logika 1 pada bit operand2. Pada Intruksi RESET digunakan untuk memberikan logika 0 pada bit operand3. Intruksi WAITMS di gunakan untuk memberikan waktu tunda/delay dengan satuan mili second

C. Alat & Bahan1. PC2. Software Basic Compiler (BASCOM)3. Microsoft word

D. Langkah Kerjaa. Tugas Modul :1. Menyalakan LED2. Menyalakan LED berkedip3. Menyalakan LED berjalan

Pertama, buka aplikasi basic compiler, lalu akan muncul tampilan lembar kerja dari basic compiler Kemudian masukkan program untuk menyalakan LED sepeti gambar di bawah

Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan LED yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Lalu hapus program yang pertama tadi, kemudian masukkan sintax untuk menyalakan LED berkedip seperti gambar di bawah Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan LED secara berkedip yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah Lalu hapus program, kemudian masukkan sintax untuk menyalakan LED berjalan seperti gambar di bawah Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan LED secara berjalan yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

b. Tugas 8 nomor1. Menyalakan 8 lampu led 2. Menyalakan 4 lampu led3. Menyalakan 4 lampu led secara bergantian4. Menyalakan 8 led secara bergantian5. Menyalakan 8 lampu led secara berurutan 6. Menyalakan lampu led secara bergantian7. Led bar8. WiperMasukkan program untuk menyalakan 8 LED pada lembar kerja basic compiler

Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan 8 LED yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Lalu hapus program sebelumnya tadi, kemudian masukkan program untuk menyalakan 4 LED

Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan 4 LED yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Lalu masukkan program untuk menyalakan 4 LED secara bergantian

Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan 4 LED secara bergantian yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Lalu masukkan program untuk menyalakan 8 LED secara bergantian Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan 8 LED secara bergantian yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperti di bawah

Kemudian masukkan program untuk menyalakan 8 LED secara berurutan Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk menyalakan 8 LED secara berurutan yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah Kemudian masukkan program untuk menyalakan lampu LED secara bergantian

Lalu pilih compile / assemble Kemudian akan terlihat bahwa program untuk menyalakan lampu LED secara bergantian yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Selanjutnya masukkan program untuk menyalakan lampu LED bar Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk menyalakan lampu LED bar yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah Lalu masukkan program untuk menyalakan lampu wiper Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk menyalakan lampu wiper yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

c. Tantangan1. Menyalakan 4 lampu LED2. Menyalakan 8 lampu LED dengan intruksi 8 bit3. Menyalakan 8 lampu LED dengan instruksi set dan resetMasukkan program untuk menyalakan 4 lampu LED

Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk menyalakan 4 lampu LED yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

Selanjutnya masukkan program untuk Menyalakan 8 lampu LED dengan intruksi 8 bit Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk Menyalakan 8 lampu LED dengan intruksi 8 bit yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah Selanjutnya masukkan program untuk menyalakan 8 lampu LED dengan instruksi set dan reset Lalu pilih compile / assemble

Kemudian akan terlihat bahwa program untuk menyalakan 8 lampu LED dengan instruksi set dan reset yang kita masukkan itu benar, yang di tandai dengan angka 0 pada gambar seperi di bawah

E. Hasil Praktikum

1. Menyala lampu LED

2. Menyala Led berkedip

3. Menyala LED berjalan

4. Menyala lampu 8 buah

5. Menyala 4 buah lampu

6. Menyala 4 lampu bergantian

7. Menyala 8 Lampu Blink

8. Menyala lampu secara berurutan

9. Menyala lampu secara bergantian

10. Menyala lampu Bar

11. Menyala lampu Wifer

12. Menyala 4 buah lampu Led

13. Menyala 8 lampu LED dengan instruksi 8 bit

14. Menyala 8 lampu LED dengan instruksi set dan reset

F. AnalisisPercobaan 1: Pada percobaan ini, kita akan mencoba menyalakan LED dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. program di akhiri dengan instruksi End

Percobaan 2 : pada percobaan ini, kita akan menyalakan lampu LED berkedip dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.Percobaan 3 : pada percobaan ini, kita akan menyalakan lampu LED berjalan dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 4 : Pada percobaan ini, kita akan mencoba menyalakan 8 buah LED dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. program di akhiri dengan instruksi End.

Percobaan 5 : Pada percobaan ini, kita akan mencoba menyalakan 4 buah LED dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. program di akhiri dengan instruksi End

Percobaan 6 : pada percobaan ini, kita akan menyalakan lampu 4 LED bergantian dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 7 : pada percobaan ini, kita akan menyalakan 8 LED blink dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 8 : pada percobaan ini, kita akan menyalakan LED secara berurutan dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 9 : pada percobaan ini, kita akan menyalakan LED secara bergantian dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 10 : pada percobaan ini, kita akan menyalakan LED bar dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 11 : pada percobaan ini, kita akan menyalakan LED wifer dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan dan program di akhiri dengan instruksi End.

Percobaan 12 : Pada percobaan ini, kita akan mencoba menyalakan 4 buah LED dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. program di akhiri dengan instruksi End

Percobaan 13 : Pada percobaan ini, kita akan mencoba menyalakan 8 buah LED dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. program di akhiri dengan instruksi End.

Percobaan 14 : pada percobaan ini, kita akan mencoba Menyala 8 LED dengan instruksi set dan reset dengan hal ini telah di demonstrasikan pada program $regfile "m16def.dat" . Adapun LED yang menunjukkan Output pada program ini berada pada PortB, yang pada program ditulis Config PORTB. Sebagai penghitung waktu / sinkronisasi waktu digunakan instruksi crystal 1000000, karena hal ini di anggap lebih stabil untuk semua program dibandingkan dengan instruksi waitms 100. Instruksi DO dan LOOP digunakan untuk perulangan Intruksi SET digunakan untuk memberikan logika 1 pada bit operand Intruksi RESET digunakan untuk memberikan logika 0 pada bit operand. Program di akhiri dengan intruksi End.

G. Kesimpulan

LED adalah singkatan dari Light Emiting Dioda, merupakan kompnen yang dapat mengeluarkan emisi cahaya. LED merupakan produk temuan lain setelah dioda. Strukturnya juga sama dengan diode, tetapi belakangan ini di temukan bahwa electron yang menerjang sambungan P-N juga melepaskan energy panas dan energy cahaya. LED di buat agar lebih efesien jika mengeluarkan cahaya. Untuk mendapatkan emisi cahaya pada semi konduktor, doping yang di pakai adalah gallium, arsenic dan phosphorus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.AVR mempunyai bahasa assembly tersendiri dan lain dengan MCS51. Hal ini terjadi karena arsitektur dari keduanya berbeda. Pada bahasa assembly AVR untuk menghidupkan LED pada port, port harus dikirim atau diberi logika 1. Dan untuk mematikan LED pada port, port harus di beri logika 0. Pada mikrokontroler AVR bekerja dengan aktif hight, sedangkan MCS51 bekerja dengan aktif Low.4. Intruksi SET digunakan untuk memberikan logika 1 pada bit operand5. Pada Intruksi RESET digunakan untuk memberikan logika 0 pada bit operand6. Intruksi WAITMS di gunakan untuk memberikan waktu tunda/delay dengan satuan mili second

38