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...