SELAMAT DATANG --- SELAMAT MEMBACA --- SALAM SATU JIWA --- TERIMA KASIH ATAS KUNJUNGANNYA ---
Showing posts with label mikrokontroler. Show all posts
Showing posts with label mikrokontroler. Show all posts

Wednesday, February 22, 2012

Aplikasi Sederhana Antarmuka Mikrokontroler dengan LED

Berikut ini ada beberapa aplikasi sederhana antarmuka mikrokontroler ATMEGA16 dengan LED yang bisa dicoba khususnya bagi yang masih newbi dibidang mikrokontroler. Program keseluruhan dibuat menggunakan CodeVision yang mudah dipahami dan disimulasikan menggunakan ISIS Proteus. Ada beberapa aplikasi antara lain : blink LED, shift right LED, read data.

1. Blink LED
Menyalakan dan mematikan LED secara bergantian dengan delay 100ms (LED akan berkedip)
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0xFF;
DDRD=0xFF;
......................
while (1)
      {
      PORTD=0xFF;
      delay_ms(100);
      PORTD=0x00;
      delay_ms(100);   
      };

2. Shift Right LED
Menggeser nyala 8 buah LED ke kanan
Gambar rangkaian sama dengan rangkaian Blink LED

#include <mega16.h>
#include <delay.h>
int temp;
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
......................
temp=1<<8;              //bit ke-8 diberi logika 1
PORTD=~temp;
while (1)
      {   
      delay_ms(100);
      temp>>=1;         //geser ke kanan satu kali  
      PORTD=~temp;
      if(temp==1)
      {
      temp=1<<8;        //bit ke-8 diberi logika 1 kembali
      }  
      };

3. Read Data
Membaca data dari push button dan data dikeluarkan ke LED, push button dihubungkan ke PORTC sebagai input, dan LED dihubungkan ke PORTD sebagai output. Apabila push button A ditekan maka LED pada PORTD akan menyala 1 kali. Jika push button B ditekan maka LED pada PORTD akan menyala 2 kali.
#include <mega16.h>  
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0xFF;
DDRC=0x00;
PORTD=0xFF;
DDRD=0xFF;
.......................
while (1)
      {
      if(PINC.0==0)
      {
      PORTD=0;          //led nyala
      delay_ms(5);
      } 
      if(PINC.1==0)
      {
      PORTD=0;          //led nyala
      delay_ms(5);
      PORTD=255;        //led padam
      delay_ms(5);
      PORTD=0;          //led nyala
      delay_ms(5);
      }  
      PORTD=255;        //led padam
      };


-SELAMAT MENCOBA-

Saturday, January 21, 2012

Aplikasi Antarmuka Mikrokontroler dengan LCD

LCD (Liquid Crystal Display) adalah suatu display dari bahan cairan kristal yang pengoperasiannya menggunakan sistem dot matriks. LCD banyak digunakan sebagai display dari alat-alat elektronika seperti kalkulator, multimeter digital, jam digital, dsb. LCD dapat dengan mudah dihubungkan dengan mikrokontroler. Disini akan saya berikan contoh aplikasinya untuk LCD 2x16, yang mempunyai 16 pin konektor yang didefinisikan sebagai berikut :

No Nama Pin Deskripsi
____________________________________________________________
1 GND          0V
2 VCC          +5V
3 VEE           Tegangan Kontras LCD
4 RS             Register Select, 0 = Register Perintah, 1 = Register Data
5 R/W          1 = Read, 0 = Write
6 E                Enable LCD, logika 1 setiap pengiriman/pembacaan data
7 D0             Data Bus 0
8 D1             Data Bus 1
9 D2             Data Bus 2
10 D3           Data Bus 3
11 D4           Data Bus 4
12 D5           Data Bus 5
13 D6           Data Bus 6
14 D7           Data Bus 7
15 Anoda      Tegangan positif backlight 
16 Katoda     Tegangan negatif backlight
Dengan menggunakan CodeWizardAVR kita dapat dengan mudah mendefinisikan Port yang terhubung dengan LCD, langkah-langkahnya yaitu :
Buka program CodeVision >> pilih File|New >> pilih Type|Project 
Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan menggunakan CodeWizard, pilih Yes
Untuk setting IC(Chip yg digunakan) pilih Chip
Untuk mendefinisikan Port yang terhubung dengan LCD pilih LCD|Pilih Port B pada LCD Port
Jika sudah mengonfirmasi project, pilih File|Generate, Save and Exit, sehingga akan muncul source code dalam bahasa C. Setelah itu kita tinggal menambahkan instruksi-instruksi tambahan ke dalam program yang sudah ada.
Beberapa contoh instruksi pengendalian LCD dalam bahasa C antara lain:
lcd_init(n) : inisialisasi LCD dengan jumlah kolom sebanyak n buah
lcd_gotoxy(x,y) : pindah kursor LCD ke kolom x baris y
lcd_putsf("karakter") : cetak tulisan "karakter" ke LCD
lcd_puts(teks) : cetak isi dari variabel teks ke LCD
itoa(Z,Cetak) : mengubah bil integer Z ke ascinya dan disimpan di variabel cetak 

Berikut adalah contoh program menampilkan karakter ke LCD :
#include <mega16.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00;
DDRA=0xFF;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTD=0xFF;
DDRD=0x00;

// .............

// LCD module initialization
lcd_init(16); 
//Tambahkan program dibawah ini pada program utama.
lcd_gotoxy(2,0);
lcd_putsf("SUGENG RAWUH");
delay_ms(100);


while (1)
      {
if (PIND.1==1){
lcd_gotoxy(1,0);
lcd_putsf("Tekan Tombol !");
PORTA = 0x00;        //Led Mati
delay_ms(50);
}   
else{
lcd_gotoxy(1,0);
lcd_putsf("Tombol Ditekan!");
PORTA = 0xFF;        //Led Nyala
delay_ms(50);
lcd_clear();
}
      };
}
dan ini adalah gambar skematik rangkaian antarmukanyanya

Monday, November 21, 2011

Rangkaian Sistem Minimum AVR ATtiny 2313 + Regulator 5V

Sistem minimum (sismin) mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Dengan bentuk yang mungil, ATtiny 2313 hanya dilengkapi dengan 2 port I/O yaitu port  B dan D. Port B berisi 8 pin I/O, sedangkan PORT D berisi 7 pin I/O. Sehingga jumlah pin I/O yang tersedia adalah sebanyak 15 pin.

Untuk membuat rangkaian sismin Atmel AVR ATtiny2313 diperlukan beberapa komponen yaitu:
·        IC mikrokontroler  ATtiny2313.
·        1 XTAL 4 MHz atau 8 MHz (XTAL1) .
·        2 kapasitor kertas 22 pF.
·        1 kapasitor elektrolit 10 uF, dan 2 kapasitor elektrolit 100uF.  
·        2 resistor 300 ohm dan 1 resistor  4K7 ohm.
·        1 tombol reset pushbutton.
·        1 LED.
·        1 IC 7805.
·        konektor header (sesuai dengan kebutuhan).

Gambar Rangkaian Sistem Minimum ATTiny 2313 :

Untuk file skematiknya (design with ISIS Proteus) silakan download disini .
atau disini
Untuk file lay out PCB (design with ARES Proteus) silakan download disini.
atau disini

Rangkaian Sistem Minimum AVR ATmega 16, 32, dan 8535

Sistem minimum (sismin) mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Di keluarga mikrokontroler AVR, seri 8535, 16 dan 32 adalah seri yang sangat banyak digunakan. Ketiga seri tersebut memiliki jumlah dan karakteristik I/O yang sama. Ketiganya memiliki 4 port A, B, C, dan D yang masing-masing port memiliki 8 pin. Sehingga jumlah pin I/O yang tersedia adalah sebaya 32 pin.

Untuk membuat rangkaian sismin Atmel AVR 16, 32, dan 8535 diperlukan beberapa komponen yaitu:
·        IC mikrokontroler ATmega8535
·        1 XTAL 4 MHz atau 8 MHz (XTAL1)
·        2 kapasitor kertas 22 pF.
·        1 kapasitor elektrolit 10 uF.  
·        2 resistor yaitu 300 ohm dan 4K7 ohm.
·        1 tombol reset pushbutton.
·        1 LED.
·        konektor header (sesuai dengan kebutuhan).

Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC.

Gambar Rangkaian Sistem Minimum ATmega 16 :

Untuk file skematiknya (design with ISIS Proteus) silakan download disini.
Untuk file lay out PCB (design with ARES Proteus) silakan download disini.

Entri Populer