Minggu, 13 April 2014

Pecobaan seven segment AVR ATmega8535







PERCOBAAN SEVEN SEGMENT

-          Percobaan 1 (Seven Segment Counter Up)
#include <mega8535.h>
#include <delay.h>
int baca_digit1(int data)
{              
       int digit1=data;
       //////////////////////////////////////status digit1//////////////////////////////////////
       if (digit1==0) {PORTE.0=0;PORTE.1=0;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 0
       if (digit1==1) {PORTE.0=0;PORTE.1=0;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 1
       if (digit1==2) {PORTE.0=0;PORTE.1=0;PORTE.2=1;PORTE.3=0; goto selesai;} //digit1 2
       if (digit1==3) {PORTE.0=0;PORTE.1=0;PORTE.2=1;PORTE.3=1; goto selesai;} //digit1 3
       if (digit1==4) {PORTE.0=0;PORTE.1=1;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 4
       if (digit1==5) {PORTE.0=0;PORTE.1=1;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 5
       if (digit1==6) {PORTE.0=0;PORTE.1=1;PORTE.2=1;PORTE.3=0; goto selesai;} //digit1 6
       if (digit1==7) {PORTE.0=0;PORTE.1=1;PORTE.2=1;PORTE.3=1; goto selesai;} //digit1 7
       if (digit1==8) {PORTE.0=1;PORTE.1=0;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 8
       if (digit1==9) {PORTE.0=1;PORTE.1=0;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 9
       selesai:                                                                
       /////////////////////////////////////////////////////////////////////////////////////////
}
int baca_digit2(int data)
{                
       int digit2=data;
       /////////////////////////////////////status digit1//////////////////////////////////////
       if (digit2==0) {PORTE.4=0;PORTE.5=0;PORTE.6=0;PORTE.7=0; goto end;} //digit2 0     
       if (digit2==1) {PORTE.4=0;PORTE.5=0;PORTE.6=0;PORTE.7=1; goto end;} //digit2 1
       if (digit2==2) {PORTE.4=0;PORTE.5=0;PORTE.6=1;PORTE.7=0; goto end;} //digit2 2
       if (digit2==3) {PORTE.4=0;PORTE.5=0;PORTE.6=1;PORTE.7=1; goto end;} //digit2 3
       if (digit2==4) {PORTE.4=0;PORTE.5=1;PORTE.6=0;PORTE.7=0; goto end;} //digit2 4
       if (digit2==5) {PORTE.4=0;PORTE.5=1;PORTE.6=0;PORTE.7=1; goto end;} //digit2 5
       if (digit2==6) {PORTE.4=0;PORTE.5=1;PORTE.6=1;PORTE.7=0; goto end;} //digit2 6
       if (digit2==7) {PORTE.4=0;PORTE.5=1;PORTE.6=1;PORTE.7=1; goto end;} //digit2 7
       if (digit2==8) {PORTE.4=1;PORTE.5=0;PORTE.6=0;PORTE.7=0; goto end;} //digit2 8
       if (digit2==9) {PORTE.4=1;PORTE.5=0;PORTE.6=0;PORTE.7=1; goto end;} //digit2 9    
       end:
       //////////////////////////////////////////////////////////////////////////////////////
}
void main(void)
{
int digit1, digit2;
int a,b;
PORTE=0x00;
DDRE=0xff;
while (1)
      {
        for(a=0;a<=9;a++)
        {
         baca_digit1(a);
         delay_ms(30);
         for(b=0;b<=9;b++)
        {
         baca_digit2(b);
         delay_ms(30);
        }
       }
      }  
 }
-          Percobaan 2 (Seven Segment Counter Down)
#include <mega8535.h>
#include <delay.h>
int baca_digit1(int data)
{              
       int digit1=data;
       //////////////////////////////////////status digit1//////////////////////////////////////
       if (digit1==0) {PORTE.0=0;PORTE.1=0;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 0
       if (digit1==1) {PORTE.0=0;PORTE.1=0;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 1
       if (digit1==2) {PORTE.0=0;PORTE.1=0;PORTE.2=1;PORTE.3=0; goto selesai;} //digit1 2
       if (digit1==3) {PORTE.0=0;PORTE.1=0;PORTE.2=1;PORTE.3=1; goto selesai;} //digit1 3
       if (digit1==4) {PORTE.0=0;PORTE.1=1;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 4
       if (digit1==5) {PORTE.0=0;PORTE.1=1;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 5
       if (digit1==6) {PORTE.0=0;PORTE.1=1;PORTE.2=1;PORTE.3=0; goto selesai;} //digit1 6
       if (digit1==7) {PORTE.0=0;PORTE.1=1;PORTE.2=1;PORTE.3=1; goto selesai;} //digit1 7
       if (digit1==8) {PORTE.0=1;PORTE.1=0;PORTE.2=0;PORTE.3=0; goto selesai;} //digit1 8
       if (digit1==9) {PORTE.0=1;PORTE.1=0;PORTE.2=0;PORTE.3=1; goto selesai;} //digit1 9
       selesai:                                                                
       /////////////////////////////////////////////////////////////////////////////////////////
}
int baca_digit2(int data)
{                
       int digit2=data;
       ////////////////////////////////////status digit1//////////////////////////////////////
       if (digit2==0) {PORTE.4=0;PORTE.5=0;PORTE.6=0;PORTE.7=0; goto end;} //digit2 0     
       if (digit2==1) {PORTE.4=0;PORTE.5=0;PORTE.6=0;PORTE.7=1; goto end;} //digit2 1
       if (digit2==2) {PORTE.4=0;PORTE.5=0;PORTE.6=1;PORTE.7=0; goto end;} //digit2 2
       if (digit2==3) {PORTE.4=0;PORTE.5=0;PORTE.6=1;PORTE.7=1; goto end;} //digit2 3
       if (digit2==4) {PORTE.4=0;PORTE.5=1;PORTE.6=0;PORTE.7=0; goto end;} //digit2 4
       if (digit2==5) {PORTE.4=0;PORTE.5=1;PORTE.6=0;PORTE.7=1; goto end;} //digit2 5
       if (digit2==6) {PORTE.4=0;PORTE.5=1;PORTE.6=1;PORTE.7=0; goto end;} //digit2 6
       if (digit2==7) {PORTE.4=0;PORTE.5=1;PORTE.6=1;PORTE.7=1; goto end;} //digit2 7
       if (digit2==8) {PORTE.4=1;PORTE.5=0;PORTE.6=0;PORTE.7=0; goto end;} //digit2 8
       if (digit2==9) {PORTE.4=1;PORTE.5=0;PORTE.6=0;PORTE.7=1; goto end;} //digit2 9    
       end:
       ////////////////////////////////////////////////////////////////////////////////////////
}
void main(void)
{
int digit1, digit2;
int a,b;
PORTE=0x00;
DDRE=0xff;




while (1)
      {
        for(a=9;a>0;a--)
        {
         baca_digit1(a);
         for(b=9;b>=0;b--)
         {
         baca_digit2(b);
         delay_ms(30);
         }
       }
      }  
}

0 komentar:

Posting Komentar