Minggu, 03 Agustus 2014

SEVEN SEGMEN DENGAN TOMBOL DAN LED


Seven segmen dengan tombol dan LED dengan awal perinsip kerja nilai seven segmen dimulai dari nilai 320 dan LED pertama aktif dan LED lainnya tidak aktif, saat tombol UP ditekan bersamaan dengan tombol Key ditekan maka akan menghasilkan nilai 320 menjadi 330 maka LED kedua aktif dan LED lainnya tidak aktif  sampai dengan nilai 370.



PROGRAM CV AVR

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

Project :   PUSH BUTTON 7seg dan LED
Version :
Date    : 19/11/2013
Author  :
Company : Gunawan Amsari
Comments:


Chip type               : ATmega8535
Program type            : Application
AVR Core Clock frequency: 11.059200 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 128
*****************************************************/
#include 
#include 
unsigned char angka[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
int satuan,puluhan,ratusan,data,data_temp,x;  

void ambil_data()
{
data_temp=data;
puluhan=(data_temp/10)%10;
ratusan=(data_temp/100)%10;
}

void tampilkan_seven_segment()
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTB=angka[satuan];
delay_ms(1);
          
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTB=angka[puluhan];
delay_ms(1);
            
PORTD.0=1;
PORTD.1=0;
PORTD.2=0;
PORTB=angka[ratusan];
delay_ms(1);
           
}

void main(void)
{
data=320;

PORTA=0xFF;
DDRA=0x00;

PORTB=0xFF;
DDRB=0xFF;

PORTC=0xFF;
DDRC=0xFF;

PORTD=0xFF;
DDRD=0xFF;

while (1)
      {
      for(x=0;x<50 br="" nbsp="" x="">        {
        ambil_data();
        tampilkan_seven_segment();
        } 
      if (PINA.0==0)
      if (PINA.1==0)
        {
        data++;
        if (data>=370)
            data=370;
            PORTC.2=data;
            PORTC.2=0;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1; 
        }
       else if (data>=370)
       {
            data=370;
            PORTC.2=data;
            PORTC.2=0;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1; 
        } 
       
      else  if (data>=360) 
        {
            data=360;
            PORTC.3=data;
            PORTC.2=1;
            PORTC.3=0;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1;  
        }
        else if (data>=350)    
        {
            data=350;
            PORTC.4=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=0;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1;  
        }         
        else if (data>=340)   
        {
            data=340;
            PORTC.5=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=0;
            PORTC.6=1;
            PORTC.7=1;  
        }   
        else if (data>=330)    
        {
            data=330;
            PORTC.6=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=0;
            PORTC.7=1; 
        }
        else if (data>=320)   
        {
            data=320;
            PORTC.7=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=0;
        }
      if (PINA.0==0)      
      if (PINA.2==0)
        {
        data--;
        if (data<=320)
            data=320;
            PORTC.7=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=0;
        }  
        else if (data<=320)
        {
            data=320;
            PORTC.7=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=0;
        }
      else if (data<=330)
        {
            data=330;
            PORTC.6=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=0;
            PORTC.7=1;
        } 
        else if (data<=340)   
        {
            data=340;
            PORTC.5=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=0;
            PORTC.6=1;
            PORTC.7=1;   
        }   
        else if (data<=350)   
        {
            data=350;
            PORTC.4=data;
            PORTC.2=1;
            PORTC.3=1;
            PORTC.4=0;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1; 
        } 
        else if (data<=360)  
       {
            data=360;
            PORTC.3=data;
            PORTC.2=1;
            PORTC.3=0;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1;   
        }  
        else if (data<=370)
        {
            data=370;
            PORTC.2=data;
            PORTC.2=0;
            PORTC.3=1;
            PORTC.4=1;
            PORTC.5=1;
            PORTC.6=1;
            PORTC.7=1; 
            }
                  
      };
}

0 komentar: