Formulir Kontak

 

Tutorial Mikro Part 3

  Modul Evaluation Board Mikrokontroler

Sebelum memulai memprogram mikrokontroler kita harus mempunyai Evaluation Board AVR, Evaluation Board ini digunakan untuk belajar dasar mikrokontroler AVR. Berikut spesifikasi dari Evaluation Board AVR:
·         IC ATMega 16
·         Programmer ISP + DB25 + Kabel (menggunakan parallel port computer)
·         Programmer AVRDude + USB + Kabel (menggunakan port USB computer)
·         8 buah LED
·         2 buah Seven Segment
·         4 buah Push Button
·         Konektor/Interface ke LCD
·         4 buah port konektor yang dapat diekspansi ke luar (PORT A, PORT B, PORT C, PORT D)
·         Regulator LM7805
·         Kabel-kabel konektor

Modul Evaluation Board  mempunyai skema tampak atas seperti pada gambar:


Input/Output Mikrokontroler AVR ATMEGA16/ATMEGA32

Tegangan keluaran pada pin I/O mikrokontroler ketika logika “1” besarnya sekitar 4.2 dan arusnya sebesar 20mA. Port I/O sebagaioutput hanya memberikan arus sebasar 20mA, keluaran dari suatu port mikrokontroler hanya dapat mengemudikan perangkat output dengan arus yang kecil, sehingga untuk peralatan elektronik yang membutuhkan arus yang besar misalnya untuk menggerakkan motor perlu diberikan penguat tambahan, oleh karena itu biasanya dipergunakan penguat lagi seperti transistor atau IC penguat (driver) agar port tersebut tidak terbebani, atau dapat juga dengan konfigurasi port sebagai sinking current, seperti pada port untuk menyalakan LED, yang akan menyala saat port diberi logika low dan mati saat port diberi logika high.


Praktik1:Blink LED
Menyala matikan LED secara bergantian dengan delay 1 s.
Hubungkan Pin LED dengan salah satu port misal PORT A.


Program:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : prakrik1
Version :
Date    : 5/5/2008
Author  : Hatmantyo Sardana                       
Company :                         
Comments:

Chip type           : ATmega16
Program type        : Application
Clock frequency     : 8.000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/
#include
#include              //tambahkan fungsi delay pada library

// Declare your global variables here

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

// Input/Output Ports initialization
// Port A 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
PORTA=0xFF;                   // semua port A mengeluarkan logika 1 (high) (hasil dari codewizardAVR)
DDRA=0xFF;                      // port A dikonfigurasikan sebagai output (hasil dari codewizardAVR)

// 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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)                 // program akan selalu berulang di dalam while(1) tempat penulisan program utama
      {
      // Place your code here 
      PORTA=0xFF;             // semua port A mengeluarkan logika 1 (high)
      delay_ms(1000);           // delay 1 s
      PORTA=0x00;              // semua port A mengeluarkan logika 0 (low)
      delay_ms(1000);           // delay 1 s

      };
}
           
Catatan:
0xFF (FF dalam hexadecimal) berarti pin0..pin7 dalam port tersebut berurutan bernilai 11111111 (dalam biner)
0x00 (00 dalam hexadecimal) berarti pin0..pin7 dalam port tersebut berurutan bernilai 00000000 (dalam biner)
Contoh lainnya:
0xAA (AA dalam hexadecimal) berarti pin0..pin7 dalam port tersebut berurutan bernilai 10101010 (dalam biner)





Total comment

Author

irfanfachrudin

0   komentar

Cancel Reply