Friday, January 10, 2014

PROGRAM MEMBUAT KAKULATOR DENGAN BAHASA C

ASALAMUALAIKUM..

pada kesempatan ini saya ingin memosting program calculator yang nantinya akan saya simulasikan dengan proteus isis profesional..

langsung aja,, ini dia,, rangkaian di proteus isis profesional



untuk pembuatan isis profesionalnya saya rasa teman teman sudah tau.. bisa liat di sini.. klik
selanjutnya,, masuk ke intinya.. programnya.. di sini saya menggunakan bahasa C temen teman yang sudah bergelut di dunia robot pasti familiar dengan bahasa ini. langsung aja ini source code lengkap nya,,:
#include <mega16.h>
#include <delay.h>
#include <lcd.h>
#include <stdlib.h>
#include <math.h>

#asm
   .equ __lcd_port=0x18
#endasm
//#############################################
int key(void);
float _Main(void);
void Mohandes(void);
void Mohasebe(void);
void Alamat(int,int);
float Emoji(int);
//#############################################
float a = 0 , b = 0 , c = 0 , q , t;
int i ;
char y=0 , lcd[25] , z   ;
//#############################################
void main(void){

DDRB=0x0F;
DDRC=0x07;
DDRD=0x0F;

lcd_init(16);
while (1){
_Main();
}
}
//#############################################################
void _Main(void){
int Loop = 1 ;
y = key();
if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
if( y < 10 ){
        a = (a*10)+y ;
        itoa(y , lcd);
        lcd_puts(lcd);
        delay_ms(50);
}



if( y > 9 && y < 16 ){
        if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
        z = y ;
        Alamat(y,1);
        while(Loop){
        y = key();
        if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
        if( y < 10 ){
                b = (b*10)+y ;
                itoa(y , lcd);
                lcd_puts(lcd);
                delay_ms(50);
        }else if(y == 14){
                lcd_putchar('=');
                Mohasebe();
                y = 0 ;
                Loop = 0 ;
        }
        }
}
if( y > 15 ){
lcd_clear();
a= 0 ; b = 0 ; c = 0;
Alamat(y , 2);
z = y ;
Loop = 1 ;
while(Loop){
y = key();
if( y == 15 ){a = 0 ;b = 0 ;c = 0 ;lcd_clear();return 0 ;}
if(y <  10){
        a = (a*10) + y ;
        itoa(y , lcd);
        lcd_puts(lcd);
        delay_ms(50);
}else if ( y == 14){
        lcd_putchar('=');
        Mohandes();
}
Loop = 1 ;
}
}
return 0;
}
//##########################################################
void Mohasebe(void){                                        
if(z == 10)c = a / b ;
if(z == 11)c = a * b ;
if(z == 12)c = a - b ;
if(z == 13)c = a + b ;
ftoa(c , 3 , lcd);          
lcd_puts(lcd);
delay_ms(100);
}
//#########################################################
float Emoji(int rr){
q=1;
for(i=0;i<rr;i++)q = q * 2.71728 ;
return q;
}
//#########################################################
void Mohandes(void){
t = (3.1415926535897932384626433832795/180)*a ;
if(z == 16)c = sin(t) ;
if(z == 17)c = cos(t) ;
if(z == 18)c = tan(t) ;
if(z == 19)c = 1/tan(t) ;
if(z == 20)c = asin(t) ;
if(z == 21)c = acos(t) ;
if(z == 22)c = log(a) ;
if(z == 23)c = sqrt(a) ;
if(z == 24)c = Emoji(a) ;
floa(c , 3 , lcd);          
lcd_puts(lcd);
delay_ms(100);
}
//#########################################################
void Alamat(int Mojiint Halat){
if(Halat = 1){
        if(Moji == 10)lcd_putchar('/') ;
        if(Moji == 11)lcd_putchar('*') ;
        if(Moji == 12)lcd_putchar('-') ;
        if(Moji == 13)lcd_putchar('+') ;
        delay_ms(100);    
}
if(Halat == 2){
        if(Moji == 16)lcd_putsf("Sin ") ;
        if(Moji == 17)lcd_putsf("Cos ") ;
        if(Moji == 18)lcd_putsf("Tan ") ;
        if(Moji == 19)lcd_putsf("Cot ") ;
        if(Moji == 20)lcd_putsf("aSin") ;
        if(Moji == 21)lcd_putsf("aCos") ;
        if(Moji == 22)lcd_putsf("Log ") ;
        if(Moji == 23)lcd_putsf("Sqrt ") ;
        if(Moji == 24)lcd_putsf("exp ") ;
        delay_ms(100);

}
}
//#########################################################
int (void){
char KEY = 1 ;
while(KEY){

        PORTD.0 = 1 ;
        PORTD.1 = 0 ;
        PORTD.2 = 0 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 7 ; KEY = 0;delay_ms(50);}  
        if(PIND.5 == 1){return 8 ; KEY = 0;delay_ms(50);}  
        if(PIND.6 == 1){return 9 ; KEY = 0;delay_ms(50);}
        if(PIND.7 == 1){return 10; KEY = 0;delay_ms(50);}    
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 1 ;
        PORTD.2 = 0 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 4 ; KEY = 0;}  
        if(PIND.5 == 1){return 5 ; KEY = 0;}  
        if(PIND.6 == 1){return 6 ; KEY = 0;}
        if(PIND.7 == 1){return 11; KEY = 0;}    
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 0 ;
        PORTD.2 = 1 ;
        PORTD.3 = 0 ;
        if(PIND.4 == 1){return 1 ; KEY = 0;}      
        if(PIND.5 == 1){return 2 ; KEY = 0;}    
        if(PIND.6 == 1){return 3 ; KEY = 0;}    
        if(PIND.7 == 1){return 12; KEY = 0;}      
        //==========================================
        PORTD.0 = 0 ;
        PORTD.1 = 0 ;
        PORTD.2 = 0 ;
        PORTD.3 = 1 ;
        if(PIND.4 == 1){return 15; KEY = 0;}      
        if(PIND.5 == 1){return 0 ; KEY = 0;}      
        if(PIND.6 == 1){return 14; KEY = 0;}    
        if(PIND.7 == 1){return 13; KEY = 0;}

        //=============================================================================
        PORTC.0 = 1 ;
        PORTC.1 = 0 ;
        PORTC.2 = 0 ;
        if(PINC.5 == 1){return 16 ; KEY=0;}
        if(PINC.6 == 1){return 17; KEY=0;}
        if(PINC.7 == 1){return 18 ; KEY=0;}
        //=====================================================
        PORTC.0 = 0 ;
        PORTC.1 = 1 ;
        PORTC.2 = 0 ;
        if(PINC.5 == 1){return 19 ; KEY=0;}      
        if(PINC.6 == 1){return 20 ; KEY=0;}
        if(PINC.7 == 1){return 21 ; KEY=0;}
        //=====================================================
        PORTC.0 = 0 ;
        PORTC.1 = 0 ;
        PORTC.2 = 1 ;
        if(PINC.5 == 1){return 22 ; KEY=0;}
        if(PINC.6 == 1){return 23 ; KEY=0;}
        if(PINC.7 == 1){return 24 ; KEY=0;}

KEY = 1 ;    
}
}
//############################################################

oke.. ini adalah gambar hasil jadi nya..



Terimakasih telah berkunjung,, untuk file souce code nya dan file aslinya silahkan kirim email teman,. hanya du tujukan untuk yang ingin benar benar belajar..
//[ ]

10 komentar:

  1. gan ane mau dong file nya buat belajar hehe :)
    kesini ya : klita46@gmail.com

    ReplyDelete
  2. gan,ane jga dong file ny.email : budisetiawan735@ymail.com
    terima kasih

    ReplyDelete
  3. Gan gue mina filenya buat belajar
    hendriksatrio1@gmail.com

    ReplyDelete
  4. Gan gua juga mau filenya email: rienaldysabarlele1305@gmail.com

    ReplyDelete
  5. bang boleh mmta file nya juga bang buat tugas mid nihh buat belajar juga : kfanatin06@gmail.com

    ReplyDelete
  6. Minta file nya bang buat belajar @ahmadsolahuddin896@gmail.com

    ReplyDelete
  7. minta fileny bang buat belajar terima kasih @dediismail250399@gmail.com

    ReplyDelete
  8. gan.. saya mau coba belajar buat, mintol untuk file souce code nya dan file aslinya
    kirim kesini ya : salamking007@gmail.com

    ReplyDelete
  9. minta dong gan file dan sc nya, buat blajar
    ke aminzihni@gmail.com yaa thanksss

    ReplyDelete