MODUL III

[menuju akhir]


MODUL III
MIKROKONTROLLER ATMEGA 8535

1. Tujuan kembali
a.    Mempelajari aplikasi output pada mikrokontroller ATMEGA 8535
b.    Mempelajari aplikasi input pada mikrokontroller ATMEGA 8535
c.    Mempelajari aplikasi I/O pada mikrokontroller ATMEGA 8535

2. Alat dan Bahan kembali
          a.    Module Atmega 8535
          b.    LED
          c.    Jumper

3. Dasar Teori kembali
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.




4. Hardware kembali




5. Rangkaian Simulasi kembali


6. Prinsip Kerja kembali
Rangkaian terdiri dari LED dan Keypad, Keypad dihubungkan ke port A dan LED dihubungkan ke PORT B. keypad bersifat aktif low. apabilan ditekan angka 5 pad keypad maka mikrokontroller akan memproses dan sesuai program dan menghidupkan led dari kanan kekiri, apabila ditekan angka 8 maka led akan hidup satu persatu, dan apabila ditekan angka 0 maka led akan berkedip

7. Flowchart kembali

8. Listing Program kembali
'Program 4 : LED dan Keypad
$regfile = "m8535.dat"

$crystal = 16000000
Ddra = &B1110000
Porta = &B11111111
Ddrb = &B11111111
Do
Porta = &B1011111
   Waitms 1

   If Pina.1 = 0 Then
   Portb = &H80
   Waitms 200
   Portb = &H40
   Waitms 200
   Portb = &H20
   Waitms 200
   Portb = &H10
   Waitms 200
   Portb = &H08
   Waitms 200
   Portb = &H04
   Waitms 200
   Portb = &H02
   Waitms 200
   Portb = &H01
   Waitms 200
   End If

   If Pina.2 = 0 Then
   Portb = &H80
   Waitms 20
   Portb = &HC0
   Waitms 20
   Portb = &HE0
   Waitms 20
   Portb = &HF0
   Waitms 20
   Portb = &HF8
   Waitms 20
   Portb = &HFC
   Waitms 20
   Portb = &HFE
   Waitms 20
   Portb = &HFF
   Waitms 20
   End If

   If Pina.3 = 0 Then
   Do
   Portb = &HFF
   Waitms 20
   Portb = &H00
   Waitms 20
   Loop
   End If


Loop
End

9. Video kembali

10. Link Download kembali
file rangkaian >>download<<
video >>download<<
listing program >>download<<
kembali

Mikrokontroller PIC 16F877A

[menuju akhir]


MODUL IV 
Mikrokontroller PIC 16F877A

1. Tujuan kembali
a.       Mempelajari aplikasi output pada mikrokontroller PIC 16F877A
b.      Mempelajari aplikasi input pada mikrokontroller PIC 16F877A
c.   Mempelajari aplikasi I/O pada mikrokontroller PIC 16F877A

2. Alat dan Bahan kembali
          a.    Module PIC 16F877A
          b.    LED
          c.    Seven Segment
          d.    Buzzer
          e.    LCD
          f.    Jumper

3. Dasar Teori kembali
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.

MIkrokontroller PIC16F877A

fitur fitur PIC
  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.

Prosedur Percobaan
1. Pastikan semua supply dalam keadaan off
2. Hubungkan jumper seperti rangkaian dibawah
3. Buatlah listing program yang telah ada pada modul
4. periksakan rangkaian kepada asisten yang mengawas
5. Hidupkan semua supply
6. Upload program dari laptop ke modul
7. Tekan tombol Reset
8. Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
9. Jika sesuai, maka selesai dan demokan pada asisten yang mengawas
10.Jelaskan prinsip k78erja + program dan hubungan keduanya kepada asisten
11.Demokan ke pembimbing praktikum
12.Matikan supply


4. Hardware kembali




5. Rangkaian Simulasi kembali

6. Prinsip Kerja kembali
Pada percobaan ini komponen yang digunakan adalah PIC16F877A sebagai mikrokontroler dan switch sebagai input serta LCD sebagai output. Tombol reset digunakan untuk memulai program. Saat salah satu tombol pada keypad ditekan maka akan menampilkan angka bergerak dari kanan ke kiri pada LCD. Pada praktikum ini ditentukan angka yang ditekan adalah angka 2 pada keypad dan pada LCD akan menampilkan angka 2 bergerak dari kana kekiri.

7. Flowchart kembali

8. Listing Program kembali

unsigned short kp;
int i;
char  keypadPort at PORTD;
sbit LCD_RS at RC0_bit;
sbit LCD_EN at RC1_bit;
sbit LCD_D4 at RC2_bit;
sbit LCD_D5 at RC3_bit;
sbit LCD_D6 at RC4_bit;
sbit LCD_D7 at RC5_bit;
sbit LCD_RS_Direction at TRISC0_bit;
sbit LCD_EN_Direction at TRISC1_bit;
sbit LCD_D4_Direction at TRISC2_bit;
sbit LCD_D5_Direction at TRISC3_bit;
sbit LCD_D6_Direction at TRISC4_bit;
sbit LCD_D7_Direction at TRISC5_bit;

void main()
{ Keypad_Init();
  Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Cmd(_LCD_CURSOR_OFF);
  while(1)
  {kp = 0;
  kp = Keypad_Key_Press();
  i=16  ;
  if(kp==2)
  {while (i>=1)
   {Lcd_Out(1,i,"2");delay_ms(100) ;Lcd_Cmd(_LCD_CLEAR); i--;}
  }
  }

}

9. Video kembali
10. Link Download kembali
file rangkaian >>download<<
video >>download<<
listing program >>download<<
kembali

MIKROKONTROLLER ARDUINO 2560

[menuju akhir]



1. Tujuan kembali
a.    Mempelajari aplikasi output pada mikrokontroller Arduino
b.    Mempelajari aplikasi input pada mikrokontroller Arduino 
c.    Mempelajari aplikasi I/O pada mikrokontroller Arduino 

2. Alat dan Bahan kembali
a.    Module Arduino
b.   Jumper
c.   7 Segment


3. Dasar Teori kembali
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 :



1. Microcontroller                                 ATmega2560
2. Operating Voltage                             5V
3. Input Voltage (recommended)           7-12V
4. Input Voltage (limits)                         6-20V
5. Digital I/O Pins                                 54 (of which 15 provide PWM output)
6. Analog Input Pins                             16
7. DC Current per I/O Pin                    20 mA
8. DC Current for 3.3V Pin                  50 mA
9. Flash Memory                                  256 KB of which 8 KB used by bootloader
10. SRAM                                             8 KB
11. EEPROM                                        4 KB
12. Clock Speed                                    16 MHz

I.    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.



4. Rangkaian kembali




5. Prinsip Kerja kembali
Pada percobaan kali ini kita menggunakan komponen arduino sebagai mikrokontroler, keypad dan switch sebagai input, dan seven segment digunakan sebagai output. Untuk memulai percobaan pertama-tama tekan tombol reset. Jika kita ingin menampilkan angka 7 pada seven segment maka kita menginputkan data dari keypad dengan menekan angka 7. Jika kita menekan switch 4 yang terhubung dengan pin 29 maka angka 4 akan muncul pada seven segment.


6. Flowchart kembali




7. Listing Program kembali
#include <Keypad.h>                                               
char tombol[4][3] =                                                     
{                                                                                  
  {'1', '2', '3'},
  {'4', '5', '6'},                                                               
  {'7', '8', '9'},
  {'*', '0', '#'}
};                                                                                

byte pin[] = {2, 3, 4, 5, 6, 7, 8, 9};                             
int sakelar[] = {23, 25, 27, 29, 31, 33, 35, 37};          
byte pinBaris[] = {17, 18, 19, 20};                        
byte pinKolom[] = {14, 15, 16};                            
Keypad keypad = Keypad(makeKeymap(tombol),    
pinBaris, pinKolom, 4, 3);                                          
void setup()                                                                
{                                                                               
pinMode(10,OUTPUT);                                          
digitalWrite(10,LOW);                                          
for(int i=0;i<9;i++)                                                   
    {                                                                  
      pinMode(sakelar[i],INPUT);                          
    }                                                                        
}                                                                           
void loop()                                                               
{                                                                              
if(digitalRead(29)==LOW)                                    
   {                                                                     
   char kode = keypad.getKey();                              

  if (kode == NO_KEY)                                        
    return;                                                                
  if (kode == '*' || kode == '#')                            
     {                                                                    
        return;                                                             
     }                                                                    
if(kode == '7')                                                         
{                                                                          
digitalWrite(2,HIGH);                                               
digitalWrite(3,HIGH);                                              
digitalWrite(4,HIGH);                                             
digitalWrite(5,LOW);                                                
digitalWrite(6,LOW);                                                
digitalWrite(7,LOW);                                                
digitalWrite(8,LOW);                                                
digitalWrite(9,LOW);                                       
}  
else
{ digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    digitalWrite(8,LOW);
    digitalWrite(9,LOW); }
}
else if (digitalRead(29)==HIGH)
  { digitalWrite(2,LOW);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,LOW);
    digitalWrite(8,HIGH);
    digitalWrite(9,LOW); 
  }
else
  { digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    digitalWrite(8,LOW);
    digitalWrite(9,LOW); }//penutup fungsi jika angka 7 ditekan


}



8. Video kembali



9. Link Download kembali
Rangkaian >>download<<
Video >>download<<
Listing Program >>download<<
[menuju awal]