Web viewLAPORAN PRAKTIKUM . MIKROKONTROLLER. UNIT . IV ... Hanya ada pada kemasan TQPF dan QFN/MLF,...
Transcript of Web viewLAPORAN PRAKTIKUM . MIKROKONTROLLER. UNIT . IV ... Hanya ada pada kemasan TQPF dan QFN/MLF,...
LAPORAN PRAKTIKUM MIKROKONTROLLER
UNIT IV“Pemograman 3 input“
Nama : Fajar Ahmad FauziNo Induk : 20133010032Hari/Tanggal Praktikum : Selasa/ 19 Mei 2015Dosen : Inda Rusdia Sofiani,S.T.,MS.c
LABORATORIUM MIKROKONTROLLERJURUSAN TEKNIK ELEKTROMEDIK – VOKASI
UNIVERSITAS MUHAMMADIYAHYOGYAKARTA
2015
I. Pendahuluan
I. Mikrokontroller
Mikrokontroler, jika diterjemahkan secara harfiah, berarti pengendali yang berukuran
mikro. Sekilas mikrokontroler hampir sama dengan mikroprosesor. Namun mikrokontroler
memiliki banyak komponen yang terintegrasi didalamnya, misalnya timer/counter.Sedangkan
pada mikroprosesor, komponen tersebut tidak terintegrasi. Mikroprosesor umumnya terdapat
pada komputer dimana tugas dari mikroprosesor adalah untuk memproses berbagai macam
data input maupun output dari berbagai sumber. Mikrokontroler lebih sesuai untuk tugas-
tugas yang lebih spesifik.
Gambar 1.1 Perbedaan mikrokontroler dengan mikroprosesor
II. Bahasa C
Bahasa pemrograman C adalah sebuah bahasa 'mid-level', namun memiliki fitur
'highlevel' (seperti support pada fungsi dan modul) dan juga memiliki fitur 'lowlevel' (seperti
mengakses hardware melalui pointer). Dengan menggunakan bahasa C, kita dapat dengan
mudah untuk pindah ke jenis mikrokontroler yang lain, lebih mudah dan cepat dalam menulis
kode program, dan lebih mudah dimengerti, dan lebih mudah dalam melakukan debugging.
Kelebihan bahasa C :
1. Bahasa yang mudah dipahami
2. Banyak progammer yang menggunakannya seperti Linux.
3. Tools open source CodeVison AVR berbasis bahasa C
4. Bahasa HLL(High Level Language) atau bahasa menengah lebih manusiawi
sehingga program yang dibuat mudah dibaca dan dibuat
5. Menghemat waktu dan tenaga dalam pembuatan program dibandingkan dengan
assembler (bahasa mesin).
III. Deskripsi Hardware Atmega 8
Chip yang di jelaskan disini menggunakan kemasan PDIP, untuk kemasan
yang lain (TQPF,QFN/MLF) tidak jauh berbeda, untuk lebih lanjut silahkan merujuk
pada datasheet. Nama-nama pin dibawah usahakan lebih sering dikenal, hal ini
berguna untuk penggunaan pheripheral internal yang berhubungan dengan fungsi
alternatif pin, misalnya pin PD2 selain sebagai saluran I/O bisa juga digunakan oleh
pheripheral internal “interupsi eksternal o” sebagai (INTo) saluran triger interupsi
eksternal o.
VCC = Tegangan supply
GND = Ground
Port B (PB7...PB0):
Port I/O 8-Bit dengan resistor pull-up internal tiap pin. Buffer portB mempunyai kapasitas
menyerap (Sink) dan mencatu (source). Khusus PB6 dapat digunakan sebagai input kristal (Inverting
oscillator amplifier) dan input ke rangkaian clock internal, bergantung pada pengaturan Fuse Bit (ada
dalam software programmer/downloader yang digunakan untuk memilih sumber clock. Khusus PB7
dapat digunakan output kristal (output inverting oscillator amplifier) bergantung pada pengaturan Fuse
Bit /yang digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih dari oscillator
internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunkan Asyncronous
Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan untuk saluran input counter.
Port C (PC5...PC0)
Port I/O 7-Bit (PC6,PC5,...PCO) dengan resistor pull up internal tiap pin. Buffer fuse port C
mempunyai kapasitas menyerap (sink) dan mencatu (Source).
Reset/PC6
Jika fuse bit RSTDISBL di “Programed”, PC6 digunakan sebagai pin I/O. Jika fuse bit
RSTDISBL di “unprogramed”,PC6 digunakan sebagai pin reset (aktif low).
Port D (PD7...PD0):
Port I/O 8-Bit dengan resistor pull up internal tiap pin. Buffer portC mempunyai kapasitas
menyerap (Sink) dan mencatu (Source).
Avcc
Avcc adalah pin tegangan catu untuk A/D converter, PC3....PC0, dan ADC (7...6). Avcc harus
dihubungkan Vcc, walaupun ADC tidak digunakan. Jika ADC digunakan, maka Avcc harus
dihubungkan ke VCC melalui “low pass filter”.
Catatan: PC5,PC4 digunakan catu tegangan Vcc digital
AREF:
Untuk pin tegangan referensi analog ADC.
ADC7...6 (TQPF,QFN/MLF)
Hanya ada pada kemasan TQPF dan QFN/MLF, ADC7..6 digunakan untuk pin input ADC.
III. Program Bahasa C
A. IF...ELSE
Pernyataan if...else hampir sama dengan pernyataan if diatas yaitu digunakan untuk
melakukan pengambilan keputusan terhadap dua buah kemungkinan, hanya yang berbeda adalah
bahwa kedua kemungkinan tersebut berupa mengerjakan mengerjakan suatu blok pernyataan if..else
adalah sebagai berikut:
If (kondisi)
{ pernyataan-1}
Else {pernyataan-2}
B. Struktur
Struktur adalah kumpulan dari variabel-variabel data baik dengan tipe yang sama ataupun
berbeda yang dikemas dalam satu wadah kemudian diberi sebuah nama. Untuk mendefinisikan sebuah
struktur dilakukan dengan cara sebagai berikut:
Struct (nama_struktur)
{ deklarasi variabel};
Contoh :
Struct strukturku
{
Unsigned char suhu;
Unsigned int kecepatan;
Unsigned char level;
}:
II. Alat dan Bahan yang digunakan untuk Praktikum
ALAT :
1. PC/ Notebook 1 buah BAHAN :
1. Aplikasi CodeVision AVR Ver.3.15
III. Analisa Gambar Rangkaian
Permasalahan:
Sebuah pesawat jet menggunakan sistem unit pemantauan nilai RPM(Rate Per Menit), tekanan (pressure), temperatur (Temp). Mesin jet dengan menggunakan sensor yang operasinya sebagai berikut:
1. Kombinasi I: Jika output sensor temperatur >=200°F, output sensor tekanan >=200 psi A output putaran mesin diabaikan, maka lampu led peringatan menyala (on).
2. Komninasi II: Jika output sensor temperatur >200°F, output sensor kecepatan <480 RPM, output sensor tekanan diabaikan, maka led peringtan menyala (on) .
3. Kombinasi III: selain keadaan diatas , led mati (off).
Mengatasi Permasalahan :Kombinasi
Temperatur Tekanan Kecepatan mesin
Indikator led
I x>=200 °Fnilai 1
x>=200 Psinilai 1
___ Hidup
II x>=200 °Fnilai 1
___ < 480 rpmnilai 1
Hidup
III Nilai 0 Nilai 0 PadamKeterangan x=nilai pembanding
Permasalahan diatas di konvert ke dalam bahasa C, maka dihasilkan pogram sebagai berikut:Pogram 1:#include <mega16.h>struct kar_sensor {unsigned char temp_sensor; unsigned char pressure_sensor; unsigned int fast_sensor;};char temp_sensor,pressure_sensor;int fast_sensor;void main(void) {struct kar_sensor sen_indikator; DDRA=0xFF; DDRB=0xFF; DDRB=0xFF; if(temp_sensor>=200){sen_indikator.temp_sensor=0x01;}else{sen_indikator.temp_sensor=0x00;} if(pressure_sensor>=200){sen_indikator.pressure_sensor=0x01;}else{sen_indikator.pressure_sensor=0x00;} if(fast_sensor<480){sen_indikator.fast_sensor=0x01;}else{sen_indikator.fast_sensor=0x00;} PORTA=sen_indikator.temp_sensor; PORTB=sen_indikator.pressure_sensor; PORTC=sen_indikator.fast_sensor; }
Pogram 2:#include <mega16.h>struct kar_sensor { unsigned char temp_pressure_sensor; unsigned char temp_fast_sensor;}; //unsigned int fast_sensor;}; char temp_sensor,pressure_sensor; int fast_sensor;void main(void) { struct kar_sensor sen_indikator; DDRA=0xFF; DDRB=0xFF; pressure_sensor=PINC.0; temp_sensor=PINC.1; fast_sensor=PINC.2; //DDRC=0xFF; if(temp_sensor>=200&&pressure_sensor>=200) {sen_indikator.temp_pressure_sensor=0x01;} else {sen_indikator.temp_pressure_sensor=0x00;} if(temp_sensor>=200&&fast_sensor<480) {sen_indikator.temp_fast_sensor=0x02;} else {sen_indikator.temp_fast_sensor=0x00;} // if(fast_sensor<480){sen_indikator.fast_sensor=0x01;}else{sen_indikator.fast_sensor=0x00;} while(1); { PORTA=sen_indikator.temp_pressure_sensor; PORTB=sen_indikator.temp_fast_sensor; PORTC=PINC.0; PORTC=PINC.1; PORTC=PINC.2; }} //PORTC=sen_indikator.fast_sensor;
Langkah kerja :
1. Membaca soal dengan teliti kemudian dianalisis dan di analogikan kedalam logika sederhana.
2. Buat pogram sederhana menggunakan Codevision AVR, dari logika sederhana tersebut.3. Compile dan debug4. Jika no error , pogram secara teknis sudah benar.
IV. Hasil Pengujian
Dari permasalahn diatas, maka dapat disimpulkan bahwa pogram berhasil jalan/ no error. Namun untuk dapat mengetahui lebih lanjut, pogram tersebut berjalan efektif sesuai logika sederhana dari soal itu, maka harus dibutuhkan sebuah simulasi sederhana. Dibutuhkan rangkaian berupa sensor tekanan,suhu, dan kecepatan untuk mengetes hasil pogram tersebut. Kendalanya adalah pogram yang dibuat diatas hanyalah pogram sederhana yang hanya membutuhkan logika untuk menjawab permasalahan diatas.
Jalannya pogram tersebut sebagai berikut:1. Jika temperatur suhu dibawah sama dengan 200°F , dan tekanan dibawah 200 Psi maka led akan hidup dengan catatan mesin (kecepatan putaran motor mesin jet) diabaikan.2.Jika temperatur suhu dibawah sama dengan 200°F, dan mesin (kecepatan putaran motor mesin jet) di atas 480 rpm , dengan catatan tekanan diabaikan maka led indikator akan menyala.3. Led akan mati jika kondisi tidak pada kenyataan 1, dan 2.
V. Kesimpulan
1. Mikrokontroller adalah pengendali yang berukuran mikro.2. Bahasa C adalah sebuah bahasa 'mid-level', namun memiliki fitur 'highlevel' (seperti support pada fungsi dan modul) dan juga memiliki fitur 'lowlevel' (seperti mengakses hardware melalui pointer)3. Port A,B,C adalah bagian dari register Ic atmega untuk I/O 8-bit bi-directional yang masing-masing pin dapat difigurasikan secara individual.
VI. Lampiran
Pogram pada Code Vision AVR.
LEMBAR PENGESAHAN
Dengan ini saya menyatakan bahwa
Nama : Fajar Ahmad FauziNo Induk : 20133010032Hari/Tanggal Praktikum : Selasa, 19 Mei 2015 Dosen : Inda Rusdia Sofiani,S.T.,MS.c
Telah menyelesaikan laporan praktikum MikrokontrollerUNIT IV
PENGENALAN KOMPONEN MIKROKONTROLLER“Pemograman 3 input“
Dengan Point:
TertandaInstruktur Laboratorium
Inda Rusdia Sofiani, ST,MSc
Assisten Instruktur
Abdul Latif