Laporan Praktikum Sistem Embedded Modul 1

Kali ini, kembali kita menggunakan program Proteus 8 dan CodeVision AVR bajakan.

Dengan percobaan ini, mahasiswa diharapkan dapat menggunakan CodeVision AVR dan Proteus 8.

  1. Penjelasan modul dan kasus
    Dalam percobaan kali ini, modul yang akan disimulasikan adalah ATMega8535. Modul ini punya 32 kaki pin yang terhubung ke PORTA, PORTB, PORTC, dan PORTD.
    Percobaan ini akan membuat :

    1. Menghidupkan 8 buah LED dengan keadaan semua lampu LED hidup.
    2. Menghidupkan 4 buah LED dan 4 LED yang lainnya dalam keadaan mati.
    3. Menghidupkan 32 buah LED dengan kondisi keseluruh LED hidup.
  2. Dasar teori
    1. ATMega8535
      Mikrokontroller merupakan suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer. Di dalam mikrokontroller, ada komponen seperti prosesor, memory, clock, I/O, dan lain lain.
      Spesifikasi ATMega8535 adalah sebagai berikut

      1. I/O sebanyak 32 buah
      2. ADC 10 bit sebanyak 8 channel
      3. 3 buah timer
      4. 32 register
      5. SRAM sebanyak 512 byte
      6. Flash memory sebesar 8kb
      7. Sumber Interrupt Internal dan Eksternal
        Port SPI
      8. EEPROM sebanyak 512 byte
    2. LED
      LED adalah singkatan dari Light Emmiting Diode, merupakan komponen yang mengeluarkan emisi cahaya.
    3. Perancangan:
      1. Daftar komponen
        1. ATMega8535
        2. LED Anode
      2. Kode program

Untuk menghidupkan 4 buah LED :

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

Project : 
Version : 
Date : 3/9/2017
Author : PC-19-320
Company : 
Comments: 


Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/

#include 

// Declare your global variables here

void main(void)
{
// Declare your local variables here
x
// 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=0xFF;

// 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=0xFF;

// Port D 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 
PORTD=0x00;
DDRD=0xFF;

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

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 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: Timer2 Stopped
// Mode: Normal top=0xFF
// 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;

// USART initialization
// USART disabled
UCSRB=0x00;

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

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
 {
 PORTA=0x0F;
 }


}


Untuk menghidupkan 8 buah LED

while (1)
 {
 PORTA=0xFF;
 }

Untuk menghidupkan 32 buah LED

while (1)
 {
 PORTA=0xFF;
 PORTB=0xFF;
 PORTC=0xFF;
 PORTD=0xFF;
 }

Pembahasan :

Pada percobaan pertama, hanya 4 LED yag menyala karena hanya 4 kaki yang diberikan logika 0.
Pada percobaan kedua, semua LED menyala karena 8 kaki diberikan nilai logika 1. Karena LED terhubung dengan ground yang berlogika 0, dan terhubung juga dengan ATMega8535 yang memberi logika 1, maka LED menyala.
Pada percobaan ketiga, semua PORT diberi logika 1, lalu disambungkan dengan 32 buah LED.

Share

Tentang Rinaldo Jonathan

Admin of this site.

Tulisan ini dipublikasikan di Laporan Kampus. Tandai permalink.

Tinggalkan Balasan