SELAMAT DATANG --- SELAMAT MEMBACA --- SALAM SATU JIWA --- TERIMA KASIH ATAS KUNJUNGANNYA ---

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-

No comments:

Post a Comment

Silakan Tuliskan Komentar Anda Untuk Kemajuan Blog Ini
Terima Kasih Atas Kunjungannya

Entri Populer