Blog ini dibuat untuk memenuhi tugas sebagai prasyarat mata kuliah Mikroprosessor dan Mikrokontroller kelas C dan Praktikum Mikroprosessor dan Mikrokontroller

Dosen Pengampu :

Darwison, MT
Muhammad Ilhamdi R., Dr.Eng

  • 1. Darwison, 2010, "Teknik Interface (antarmuka): Perancangan hardware dan simulasi software serta aplikasinya ", ISBN: 978-602-9081-10-7, CV Ferila, Padang.
  • 2. Darwison, 2007 "Teori, Rancangan, Simulasi dan Aplikasi Mikroprosesor Dan Mikrokontroller", ISBN: 978-602-9487-09-1", CV Ferila, Padang.


Sisri Anisar Putri
1510951043




JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS ANDALAS
PADANG

Modul III

Modul III 

Mikrokontroller ATMEGA 8535

1. Tujuan     [kembali]
  1. Merangkai dan menguji aplikasi output pada mikrokontroller ATMEGA 8535 
  2. Merangkai dan menguji  aplikasi input pada mikrokontroller ATMEGA 8535 
  3. Merangkai dan menguji I/O pada mikrokontroller ATMEGA 8535 
2. Landasan Teori     [kembali] :

A. Mikrokontroller AVR

Mikrokontroller AVR (Alf and Vegard’s Risc processor) memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit dan sebagian besar instruksi dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced Instruction Set Computing). Secara umum, AVR dapat dikelompokan ke dalam 4 kelas, yaitu keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing-masing adalah kapasitas memori, peripheral dan fungsinya.Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hamper sama. Pada praktikum kali ini yang membedakan antara ATMEGA 128 dengan ATMEGA 8535 selain pada kapasistas memori, jug dari Bahasa program yang digunakan.


Berikut gambar dari ATMEGA8535 :


Berikut merupakan gambar konfigurasi pin pada ATMEGA8535  :






B. SEVENT SEGMENT


Layar tujuh segmen ini seringkali digunakan pada jam digital, meteran elektronik, dan perangkat elektronik lainnya yang menampilkan informasi numerik. Layar tujuh segmen ini terdiri dari 7 buah LED yang membentuk angka 8 dan 1 LED untuk titik/DP. Angka yang ditampilkan di seven segmen ini dari 0-9. Cara kerja dari seven segmen disesuaikan dengan LED. LED merupakan komponen diode yang dapat memancarkan cahaya. kondisi dalam keadaan ON jika sisi anode mendapatkan sumber positif dari Vcc dan katode mendapatkan sumber negatif dari ground.

Berdasarkan cara kerjanya, tujuh segmen dibagi menjadi 2 bagian:

1. Common Cathode
Cara kerja dari seven segmen common katode akan aktif pada kondisi high "1" dan akan off pada kondisi low "0".


2. Common Anode
Cara kerja dari seven segmen common anode akan aktif pada kondisi low "0" dan akan off pada kondisi high "1".




3. Tugas Pendahuluan    [kembali]

Kondisi 2 Percobaan 5 : Ketika switch 5 diaktifkan, 7 segment akan menampilkan angka 5

Screenshoot :




4. Flowchart    [kembali]






5. Listing Program    [kembali] 

$regfile = "m8535.dat"                                      'aktifkan library atmega 8535
$crystal = 16000000                                         'kristal eksternal 16 MHz
Config Portd = Output                                       'port a sebagai output high
Portb = &B00000000                                          'portb aktif low
Ddrb = &B11111111                                           'setting portb sebagai output

Ddra = &B1110000                                            'setting untuk aktifkan keypad
Porta = &B11111111                                          'portd aktif high

Portd = &B00001111                                          'porta yang akan digunakan untuk 7 segment

Do                                                          'lakukan perulangan
Porta = &B00000000                                          'penekanan pada keypad
Waitms 10                                                   'delay 10 ms
If Pina.5 = 1 Then                                          'jika ditekan pina.5 dengan aktif low, maka
Portb = &B10010010                                          'portb sebagai 7segment akan menampilkan angka
Waitms 10
Elseif Pina.5 = 0 Then
Portb = &B11111111
End If                                                      'akhir kondisi
Loop                                                        'akhir perulangan
End       


6. Video Simulasi Rangkaian    [kembali]


7. Analisa Hubungan Rangkaian dan Program    [kembali]
   Pada percobaan kali ini dilakukan menggunakan ATMEGA 8535, dimana dalam membuat program ini dibutuhkan switch sebanyak 8 buah, Seven segment, serta tombol reset dan crystal. Fungsi dari crystal ada sebagai 'detak jantung' bagi ATMEGA. Setelah switch terhubung dengan ATMEGA, maka program akan membaca masing masing PIN pada PORT yang terpasang, dimana port yang dipakai adalah PORT A dengan pin sebanyak 7 buah.    Lalu apabila PINA.5 aktif, maka ATMEGA akan merespon dengan menampilkan angka 5 melalui pin B yang terhubung sebagai output. Lalu PORTB tadi akan menampilkan angka 5 pada seven segment


8. Link Download    [kembali]
  1. File HTML : Download
  2. File Proteus : Download
  3. Video Rangkaian : Download
  4. File Program : Download

Modul IV - PIC 16F877A


Modul IV

Mikrokontroller PIC 16F877A

1. Tujuan     [kembali]
  1. Merangkai dan menguji output pada mikrokontroller PIC 16F877A 
  2. Merangkai dan menguji input pada mikrokontroller PIC 16F877A 
  3. Merangkai dan menguji aplikasi I/O pada mikrokontroller PIC 16F877A 
2. Landasan Teori     [kembali] :

A. Mikrokontroller PIC 16F877A

Mikrokontroler PIC16F877A merupakan salah satu mikrokontroler dari keluarga PICmicro yang popular digunakan sekarang ini, mulai dari pemula hingga para profesional. Hal tersebut karena PIC16F877A sangat praktis dan menggunakan teknologi FLASH memori sehingga dapat di program-hapus hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.


Anggota keluarga PICmicro buatan Microchip Inc. cukup banyak. Ada yang menggunakan FLASH memori dan ada pula yang jenis OTP (One Time Programmable). Mikrontroler dari keluarga PICmicro yang popular, antara lain PIC2C08, PIC16C54, PIC16F84. Agar lebih mengenal PIC16F877A, berikut ini diberikan fitur-fitur penting yang terdapat pada PIC16F877A.

  1. RISC CPU yang mempunyai performance tinggi
  2. Hanya 35 jenis instruksi yang perlu dipelajari
  3. Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.
  4. Kecepatan Instruksi: DC – 20 MHz clock input DC – 200 ns instruction cycle
  5. 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory
  6. Pinout compatible dengan PIC16C73B/74B/76/77
  7. Interrupt (14 sumber interrupt)
  8. Delapan level hardware stack
  9. Direct, indirect dan relative addressing modes
  10. Power-on Reset (POR)
  11. Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)
  12. Watchdog Timer (WDT) dengan on-chip RC oscillator
  13. Programmable code protection dan Fully static design
  14. Power saving SLEEP mode
  15. Selectable oscillator options
  16. Low power, high speed CMOS FLASH/EEPROM technology
  17. In-Circuit Serial Programming (ICSP) hanya dengan dua pin
  18. Single 5V In-Circuit Serial Programming capability
  19. Processor read/write access to program memory
  20. Wide operating voltage range: 2.0V to 5.5V
  21. High Sink/Source Current: 25 mA
  22. Commercial, Industrial and Extended temperature ranges

Deskripsi Pin Pin
Mikrokontroler PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line) maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi ganda.



Organisasi Memori
Memori pada PIC16F877A dapat dipisahkan menjadi dua blok memori, satu untuk memori program dan satu untuk memori data. Memori EEPROM dan register GPR didalam RAM merupakan memori data, sedangkan memori FLASH merupakan memori program.



B. SEVENT SEGMENT


Layar tujuh segmen ini seringkali digunakan pada jam digital, meteran elektronik, dan perangkat elektronik lainnya yang menampilkan informasi numerik. Layar tujuh segmen ini terdiri dari 7 buah LED yang membentuk angka 8 dan 1 LED untuk titik/DP. Angka yang ditampilkan di seven segmen ini dari 0-9. Cara kerja dari seven segmen disesuaikan dengan LED. LED merupakan komponen diode yang dapat memancarkan cahaya. kondisi dalam keadaan ON jika sisi anode mendapatkan sumber positif dari Vcc dan katode mendapatkan sumber negatif dari ground.

Berdasarkan cara kerjanya, tujuh segmen dibagi menjadi 2 bagian:

1. Common Cathode
Cara kerja dari seven segmen common katode akan aktif pada kondisi high "1" dan akan off pada kondisi low "0".


2. Common Anode
Cara kerja dari seven segmen common anode akan aktif pada kondisi low "0" dan akan off pada kondisi high "1".




3. Tugas Pendahuluan    [kembali]
Kondisi 2 Percobaan 4 :Bila ditekan switch pada pin 1 akan muncul sevensegmen down counter 9-0

Screenshoot :







4. Flowchart    [kembali]







5. Listing Program    [kembali] 
void main(void)
{
  PORTB=0x00;              //Deklarasi PORT B dengan kondisi awal LOW
  TRISB=0x00;              //Deklarasi PORT B secara keseluruhan sebagai OUTPUT
  PORTD=0x00;              //Deklarasi PORT D dengan kondisi awal LOW
  TRISD=0xFF;              //Deklarasi PORT D sebagai OUTPUT dan INPUT
  
  s:
  while(1)                 //Fungsi perulangan
  {
       if(PORTD.RD1==1){ (PORTB=0x6F); } else { (PORTB=0x00); goto s;}          //menyatakan bahwa Port B menampilkan angka 9
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x7F); } else { (PORTB=0x00); goto s; } // Menampilkan angka 8
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x07); } else { (PORTB=0x00); goto s; } // Menampilkan angka 7
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x7D); } else { (PORTB=0x00); goto s; } // Menampilkan angka 6
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x6D); } else { (PORTB=0x00); goto s; } // Menampilkan angka 5
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x66); } else { (PORTB=0x00); goto s; } // Menampilkan angka 4
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x4F); } else { (PORTB=0x00); goto s; } // Menampilkan angka 3
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x5B); } else { (PORTB=0x00); goto s; }  // Menampilkan angka 2
       delay_ms(100);
       if(PORTD.RD1==1){ (PORTB=0x06); } else { (PORTB=0x00); goto s; } // Menampilkan angka 1
       delay_ms(100);
       PORTB=0x3F; // Menampilkan angka 0
       delay_ms(100);
 }
}

6. Video Simulasi Rangkaian    [kembali]


7. Analisa Hubungan Rangkaian dan Program    [kembali]
   Pada percobaan ini dilakukan menggunakan mikrokontroller berupa PIC 16F877A, dimana PIC ini menggunakan bahasa C sebagai bahasa standar pemrogramannya serta menggunakan software khusus bernama MicroC untuk mengcompile nya menjadi HEX agar dapat dibaca oleh PIC.    Setelah itu dilakukan perangkaian reset serta crystal pada rangkaian, tak lupa PORTB dan PORT D dihubungkan pula ke PIC. PORT B bertindak sebagai output yang akan aktif ketika HIGH. Setelah itu ketika PIC membaca input dari user berupa switch 1 maka PIC akan merespon untuk mengcounter UP dari 0-9 yang dioutputkan melalui PORT B tadi.    Ketika user mendadak menghidupkan switch 2, seven segment akan berhenti mengcounter UP dan seven segment akan langsung mati.


8. Link Download    [kembali]
  1. File HTML : Download
  2. File Proteus : Download
  3. Video Rangkaian : Download
  4. Video Rangkaian : Download
">

Modul 2 - ARDUINO 2560


Modul II 

Mikrokontroller ARDUINO 2560

1. Tujuan     [kembali]
  1. Merangkai dan menguji aplikasi output pada mikrokontroller Arduino 
  2. Merangkai dan menguji input pada mikrokontroller Arduino 
  3. Merangkai dan menguji I/O pada mikrokontroller Arduino 
2. Landasan Teori     [kembali] :

A. Mikrokontroller ARDUINO 2560

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain. 

Beberapa fitur dari Arduino Mega 2560 ini adalah :




BAGIAN-BAGIAN DARI ARDUINO MEGA 2560
  • Soket USB

     Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop.
Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial.
Input / Output Digital
     Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan
komponen  atau  rangkaian  digital.  Pada  Arduino  Mega  terdapat  53  I/O  Digital  dimana  16
diantaranya dapat dijadikan sebagai output PWM
  
  • Input Analog

    Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb.
Terdapat 16 input analog pada arduino mega 2560.

  • Pin POWER

     Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset.Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor.

  • Tombol RESET

     Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal.

  • Jack Baterai/Adaptor

     Soket baterai  atau adaptor digunakan untuk menyuplai Arduino dengan tegangan  dari  baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.


B. SEVENT SEGMENT


Layar tujuh segmen ini seringkali digunakan pada jam digital, meteran elektronik, dan perangkat elektronik lainnya yang menampilkan informasi numerik. Layar tujuh segmen ini terdiri dari 7 buah LED yang membentuk angka 8 dan 1 LED untuk titik/DP. Angka yang ditampilkan di seven segmen ini dari 0-9. Cara kerja dari seven segmen disesuaikan dengan LED. LED merupakan komponen diode yang dapat memancarkan cahaya. kondisi dalam keadaan ON jika sisi anode mendapatkan sumber positif dari Vcc dan katode mendapatkan sumber negatif dari ground.

Berdasarkan cara kerjanya, tujuh segmen dibagi menjadi 2 bagian:

1. Common Cathode
Cara kerja dari seven segmen common katode akan aktif pada kondisi high "1" dan akan off pada kondisi low "0".


2. Common Anode
Cara kerja dari seven segmen common anode akan aktif pada kondisi low "0" dan akan off pada kondisi high "1".




3. Tugas Pendahuluan    [kembali]
Kondisi 2 Percobaan 6 : Pada saat angka ganjil pada keypad ditekan, maka seven segment akan menampilkan karakter O berkedip dengan delay 100 ms 

Screenshoot :






4. Flowchart    [kembali]




5. Listing Program    [kembali] 

#include <Keypad.h>

char tombol[4][4] =
{
  {'O', '0', '=', '+'},
  {'1', '2', '3', '-'},
  {'4', '5', '6', 'X'},
  {'7', '8', '9', '/'},
};

byte pin[] = {2, 3, 4, 5, 6, 7, 8};
byte pinBaris[] = {18, 19, 20, 21};
byte pinKolom[] = {14, 15, 16, 17};

Keypad keypad = Keypad(makeKeymap(tombol),
                pinBaris, pinKolom, 4, 4);


void setup()
{
  pinMode(10,OUTPUT);
  for (int i=2;i<=8;i++) {
    pinMode(i,OUTPUT);
  }
}

void loop()
{
   char kode = keypad.getKey();
   digitalWrite(10,LOW);
   
   if(kode == '1' || kode == '3' ||  kode == '5' ||  kode == '7' || kode == '9' ) {
    digitalWrite(2,LOW);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    delay(150);
      for (int i=2;i<=8;i++)
      {
      digitalWrite(i,LOW);
      }
   }
}

6. Video Simulasi Rangkaian    [kembali]


7. Analisa Hubungan Rangkaian dan Program    [kembali]
   Dalam penggunaan mikrokontroller arduino 2560 ini, dilakukan penambahan library pada proteus, yakni linrary SIMULINO, agar arduino dapat digunakan pada proteus. Setelah library diinstal maka dilakukan penguhubungan dari arduino dengan keypad menggunakan PIN 14,15,16,17,18,19,20 setelah itu pin 2,3,4,5,6,7,8,9,10 dijadikan output pada program.    Ketika arduino pertama dimulai maka akan berkedip seven segment. Kemudian dilakukan pengecekan pada pin-pin Keypad, apabila mendapatkan pin 16 dan 20 hidup maka arduino membaca karakter '#' lalu akan dilakukan counter down seven segment melalui pin 2,3,4,5,6,7,8,9 sampai menuju 0.


8. Link Download    [kembali]
  1. File HTML : Download
  2. File Proteus : Download
  3. Video Rangkaian : Download
  4. File Program : Download