MateriKu

Blog Kumpulan Materi Soal Laporan

Breaking

Showing posts with label Mikrokontroller. Show all posts
Showing posts with label Mikrokontroller. Show all posts

Saturday, May 13, 2017

8:50 AM

Laporan Antarmuka Mikrokontroler Dengan Toggle Switch

 TUJUAN
  • Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian input saklar toggle.
  • Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca data input dari saklar toggle.
SAKLAR TOGGLE
Saklar toggle adalah salah satu saklar elektrik yang digerakkan secara manual oleh batang mekanik. Saklar toggle tersedia dalam berbagai bentuk dan ukuran, serta digunakan dalam berbagai aplikasi. Dalam modul I/O yang dipakai dalam praktikum, saklar toggle yang digunakan diberi rangkaian tambahan berupa rangkaian LED untuk melihat secara langsung logika yang ada pada saklar. Rangkaian LED sama dengan rangkaian dalam Modul I. Kedelapan rangkaian saklar  tersebut dihubungkan ke sebuah soket jumper bernama INPUT.

PERINTAH DASAR MEMBACA DATA
  • Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan. Data bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal pada main program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;
…
  • Untuk membaca data byte ke PORTX (X=A, B, C, D) digunakan statement
                                                data_in = PINX;
contoh:  data_in = PINB;
  • Untuk membaca data bit ke PORTX.Y (X=A, B, C, D dan Y=0, 1, 2 , 3, 4, 5, 6, 7) digunakan statement
                                                data_in = PINX.Y;
contoh: data_in = PINB.1;

ALAT DAN BAHAN YANG DIGUNAKAN
  • 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
  • 1 buah catu daya DC +5V
  • 1 buah multimeter
  • 1 buah ISP Downloader AVR
  • 1 buah sistem minimum AVR
  • 1 buah I/O
  • 1 buah kabel printer USB
  • 2 buah kabel pita hitam

 PROSEDUR
1.      Hubungkan soket jumper PORTB pada minimum system dengan soket jumper OUTPUT pada I/O dan soket jumper PORTC pada minimum system dengan soket jumper INPUT pada I/O
2.      Buka program Code Vision AVR
3.      Buatlah project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan output value = 0 (PORTB=00H), dan  PORTC sebagai input (DDRC = 00H) dan resistor pullup dihubungkan  (PORTC=FFH) sehingga pada program bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff;                  //portb sebagai output, 0b11111111, nilai awal 0
PORTC=0xff;
DDRC=0x00;                // portc sebagai input, 0b00000000, pull up
4.      Tambahkan deklarasi variabel lokal dalam program utama
unsigned char data_in;
5.      Tuliskan dalam program utama sebagai berikut:
// Program Saklar1
data_in=PINC; //baca saklar di PORTC
     PORTB=data_in;     //tampilkan logika saklar ke LED di PORTB
6.      Pindahkan saklar sesuai tabel 2.1 dibawah, amati dan catat nyala LED. 
7.      Ulangi langkah 3-4 untuk program berikut:
//Program Saklar2
            data_in = PINC.0;        // baca saklar bit ke 0
     PORTB.7 = data_in;            // tampilkan logika saklar pada LED bit ke 7
8.      Pindah saklar sesuai tabel 3.1 dibawah, Amati dan catat nyala LED.
9.      Buat program untuk masing–masing algoritma berikut dengan menggunakan if :
a)      Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b)      Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
10.  Buat satu program untuk masing–masing algoritma berikut dengan menggu­na­kan if-else.
a)      Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b)      Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
c)       Jika switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi
ON-OFF-ON-OFF-ON-OFF-ON-OFF (bit7-bit0).
d)      Jika switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi
OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-bit0).
e)      Jika switch bit 4 berlogika 1 maka LED menyala semua.
f)        JIka switch bit 5 berlogika 1 maka LED mati semua.
g)      Jika switch bit 6 berlogika 1 maka LED menyala berurutan mulai dari bit0 ke bit7 lalu kembali lagi ke bit0 dengan delay 1 detik
h)      Jika switch bit 7 berlogika 1 maka LED akan menyala dengan nilai sama dengan dua digit terakhir NIM anda.

DATA HASIL PERCOBAAN
1.      Tabel 2.1
No.
Saklar
LED

7    6    5    4    3    2    1    0
7    6    5    4    3    2    1    0
1
0    0    0    0    0    0    0    1

2
0    0    0    0    0    0    1    1

3
0    0    0    0    0    1    0    1

4
0    0    0    0    1    0    0    1

5
0    0    0    1    0    0    0    1

6
0    0    1    0    0    0    0    1

7
0    1    0    0    0    0    0    1

8
1     0    0    0    0    0    0    1

9
1    1    1    1    1    1    1    1


2.      Tabel 3.1
No.
Saklar
LED

7    6    5    4    3    2    1    0
7    6    5    4    3    2    1    0
1
0    0    0    0    0    0    0    1

2
0    0    0    0    0    0    1    1

3
0    0    0    0    0    1    0    0

4
0    0    0    0    1    0    0    1

5
0    0    0    1    0    0    0    0

6
0    0    1    0    0    0    0    1

7
0    1    0    0    0    0    0    0

3.      Source code program pada percobaan langkah 9
4.      Source code program pada percobaan langkah 10

File CV AVR dan Simulasi Proteus
Project File CVAVR | Mirror
Project Sim Proteus | Mirror

ANALISA DATA
1.      Analisa Program Saklar1 dan Saklar2
2.      Instruksi apa yang digunakan untuk membaca data input?

3.      Apakah perbedaan program yang menggunakan if dan if-else?

8:49 AM

Laporan Antarmuka Mikrokontroler Dengan Seven Segmen

 TUJUAN
  • Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian seven segment.
  • Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menampilkan karakter ke seven segment.
SEVEN SEGMENT
Penampil seven segment adalah sebuah piranti penampil untuk menampilkan angka desimal. Penampil seven segment banyak digunakan dalam jam digital, meter elektronik, dan piranti elektronik yang lain. Gambar 3.1 memperlihatkan bentuk fisik dan layout dasar penampil seven segment. Penampil seven segment terdiri atas 8 LED yang disusun seperti dalam Gambar 3.1(b). Setiap LED diidentifikasi sebagai huruf a, b, c, d, e, f, g, yang dimulai dari huruf a di sebelah atas. Di sebelah kanan terdapat satu LED tambahan yang digunakan sebagai koma (dp).
Untuk menampilkan sebuah karakter, minimal 2 LED harus dinyalakan. Tabel 3.1 memperlihatkan kode heksadesimal untuk menampilkan angka 0 sampai 9.
Dalam modul I/O yang dipakai dalam praktikum, seven segment yang digunakan ada 2 buah, semuanya bertipe common anoda.  Kedua seven segment tersebut dimultipleks sehingga data diperoleh dari satu kaki (D0-D7), sedangkan untuk menyalakannya digunakan kaki kontrol yang berbeda (DO1 dan DO2). Rangkaian lengkap seven segment dapat dilihat dalam Gambar 3.2.
  
Tabel 3.1 Kode heksadesimal untuk angka 0-9
Digit
gfedcba
g
f
e
d
c
b
a
0
0x3F
off
on
on
on
on
on
on
1
0x06
off
off
off
off
on
on
off
2
0x5B
on
off
on
on
off
on
on
3
0x4F
on
off
off
on
on
on
on
4
0x66
on
on
off
off
on
on
off
5
0x6D
on
on
off
on
on
off
on
6
0x7D
on
on
on
on
on
off
on
7
0x07
off
off
off
off
on
on
on
8
0x7F
on
on
on
on
on
on
on
9
0x6F
on
on
off
on
on
on
on
Gambar 3.2 Rangkaian penampil seven segment

Dalam Gambar 3.2, kaki a, b, c, d, e, f, g, dp dihubungkan ke soket jumper DATA 7S, sedangkan kaki kontrol (DO1 dan DO2 dihubungkan dengan soket jumper I/P S KEY.

ALAT DAN BAHAN YANG DIGUNAKAN
  • 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
  • 1 buah catu daya DC +5V
  • 1 buah multimeter
  • 1 buah ISP Downloader AVR
  • 1 buah sistem minimum AVR
  • 1 buah I/O
  • 1 buah kabel printer USB
  • 2 buah kabel pita hitam
PROSEDUR
1.      Hubungkan soket jumper PORTB pada minimum system dengan soket jumper DATA7S pada I/O dan soket jumper PORTC pada minimum system dengan soket jumper I/P S KEY pada I/O.
2.      Buka program Code Vision AVR
3.      Buatlah project baru dengan inisialisasi PORTB sebagai output (DDRB = FFH) dan output value = 0 (PORTB=00H), dan  PORTC.0-PORTC.3 sebagai input, PORTC.4-PORTC.7 sebagai output (DDRC = F0H) dan (PORTC=F0H) sehingga pada program bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0x00;
DDRB=0xff; //portb sebagai output, 0b11111111
//untuk data 7s
PORTC=0xf0;
DDRC=0xf0; //portc sebagai input dan output, 0b11110000 
//untuk kontrol DO1, DO2
4.      Tuliskan dalam program utama sebagai berikut:
PROGRAM SEGMEN1
//Menampilkan angka 8 pada seven segmen sebelah kanan.
while (1)
      {
 PORTC.7=1;    //nonaktifkan seven segment kiri
      PORTC.6=0;           //aktifkan seven segmen kanan
      PORTB=0x7f;         //tampilkan data angka 8
      delay_ms(10);
      }
5.      Amati nyala seven segment.
6.      Ulangi langkah 3-5 untuk program berikut:
PROGRAM SEGMEN2
//Menampilkan angka 4 pada seven segmen sebelah kiri.
while (1)
      {
 PORTC.7=0;    //aktifkan seven segment kiri
      PORTC.6=1;           //nonaktifkan seven segmen kanan
      PORTB=0x66;        //tampilkan data angka 4
      delay_ms(10);
      }
7.      Gabungkan kedua program di atas dan lihat nyala seven segmen.
8.      Ubah nilai delay untuk masing-masing seven segment menjadi 100 ms dan amati tampilan seven segmen.
9.      Ulangi langkah 3-5 untuk program berikut:
PROGRAM SEGMEN3
//Membuat counter 0-9 di segmen sebelah kanan
// Declare your global variables here
unsigned char bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
// Declare your local variables here
int kanan;
while (1)
     {
// Place your code here
     kanan=0;
     for (kanan=0;kanan<10;kanan++)
        {  
         PORTC.7=1;
         PORTC.6=0;  
         PORTB=bil[kanan];
         delay_ms(1000);
        }
}

10.  Ubah nilai delay untuk program SEGMEN3 menjadi 100 ms dan amati tampilan seven segmen.
11.  Buat program SEGMEN4 untuk menampilkan 00-99 di kedua seven segmen sehingga kedua angka tampil bersamaan.
12.  Buat program SEGMEN5 untuk menampilkan 00 hingga dua digit terakhir NIM anda (counter up) lalu menghitung mundur dari dua digit NIM terakhir anda ke 00 (counter down). (kedua seven segment menyala bersamaan).

DATA HASIL PERCOBAAN
1.      Program SEGMEN1
2.      Program SEGMEN2
3.      Gabungan SEGMEN1 dan SEGMEN2 delay 100ms
4.      Program SEGMEN3
5.      Program SEGMEN3 delay 100ms
6.      Source code Program SEGMEN4
7.      Source code Program SEGMEN5

ANALISA DATA
1.      Analisa Program SEGMEN1 sampai SEGMEN5
2.      Instruksi apa yang digunakan untuk mengeluarkan data ke seven segment?
3.      Instruksi apa yang digunakan untuk mengontrol nyala seven segment?
4.      Jika nilai delay pada Gabungan Program SEGMEN1 dan SEGMEN2 diperbesar, apa yang terjadi pada tampilan seven segment?

5.      Jika nilai delay pada program SEGMEN3 diperkecil, apa yang terjadi pada tampilan seven segment?