Sayfalar

Menü

1 Nisan 2020 Çarşamba

ccs c Hesap Makinesi yapma

Pic Programlama ccs c Hesap Makinası


#Include  <16F877a.h>
#INCLUDE  <ctype.h>
#INCLUDE  <stdlib.h>
#Fuses XT
#Use Delay(clock=4M)
#define use_portd_lcd TRUE
#Include <Lcd.c>

char Tus_Oku()
{   
      Output_High(Pin_B4);
      Output_High(Pin_B5);
      Output_High(Pin_B6);
      Output_High(Pin_B7);
      Output_Low(Pin_B4);
      Delay_ms(1);
      if (!input(Pin_B0)) Return('7');
      if (!input(Pin_B1)) Return('4');
      if (!input(Pin_B2)) Return('1');
      if (!input(Pin_B3)) Return('C');
      Output_High(Pin_B4);
      Output_Low(Pin_B5);
      Delay_ms(1);
      if (!input(Pin_B0)) Return('8');
      if (!input(Pin_B1)) Return('5');
      if (!input(Pin_B2)) Return('2');
      if (!input(Pin_B3)) Return('0');
      Output_High(Pin_B5);
      Output_Low(Pin_B6);   
      Delay_ms(1);         
      if (!input(Pin_B0)) Return('9');
      if (!input(Pin_B1)) Return('6');
      if (!input(Pin_B2)) Return('3');
      if (!input(Pin_B3)) Return('=');
      Output_High(Pin_B6);
      Output_Low(Pin_B7);   
      Delay_ms(1);         
      if (!input(Pin_B0)) Return('/');
      if (!input(Pin_B1)) Return('*');
      if (!input(Pin_B2)) Return('-');
      if (!input(Pin_B3)) Return('+');
      Return(0);
}
#Define     Topla 1
#Define     Cikar 2
#Define     Carp  3
#Define     Bol   4

char tus,otus;
char satir1[17]={"Hesap Makinesi\0"},satir2[17]={"\0"};
int8 yaz=1,sayac=0,islem=0;
int16 say1,say2,son;
#Int_Timer1
void Timer1_Kesme()
{
   if (yaz)
   Printf(lcd_putc,"\f%s\n%s",satir1,satir2);
   yaz=0;
}
Void Main()
{
   Setup_psp(PSP_DISABLED);
   Setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
   setup_timer_2(T2_DISABLED,0,1); 
   Setup_adc_ports(NO_ANALOGS);
   Setup_adc(ADC_OFF);
   Setup_CCP1(CCP_OFF);
   Setup_CCP2(CCP_OFF);
   ENABLE_INTERRUPTS(Global);
   ENABLE_INTERRUPTS(INT_TIMER1);
   Port_B_Pullups(True);
   output_C(0);
   
   Lcd_init();
   delay_ms(10);
     delay_ms(500);
      Printf(lcd_putc,"\nsifirzero.com");
      While(True)
      {
         tus = tus_oku();
         if ((tus!=otus)&&(tus))
         {
              if (isdigit(tus))
                  {
                     satir1[sayac]=tus;
                     satir1[sayac+1]=0;
                     if (sayac < 5 ) sayac++;
                  }
               
                  if (isamong(tus,"+-/*"))
                     {
                       Switch(tus)
                       {
                        case '+' : islem = topla;break;
                        case '-' : islem = cikar;break;
                        case '*' : islem = carp;break;
                        case '/' : islem = bol;break;
                        default  :;                     
                       }
                        say1        = atol(satir1);
                        satir2[0]   = tus;
                        satir2[1]   = 0;
                        strcopy(satir1,"0\0");
                        sayac       = 0;                     
                     }
                  if  (tus=='=')
                     {
                       say2        = atol(satir1);
                       if (islem==topla) son = say1 + say2;
                       if (islem==cikar) son = say1 - say2;
                       if (islem==carp)  son = say1 * say2;
                       if (islem==bol)   son = say1 / say2;
                       itoa(son,10,satir1);
                       strcopy(satir2,"=\0");
                     }
                 
                             if (tus=='C')
                                 {
                                    strcpy(satir1,"0\0");
                                    sayac=0;
                                 }
              yaz=1;
         }
               delay_ms(10);
               otus=tus;
      }
}

YouTube kanalımızda videosunu izleyebilir siniz.
Abone olmayı unutmayın...



Hiç yorum yok:

Yorum Gönder

Her yorum bilgidir. Araştırmaya devam...