CCS PİC 16f877 İLE BASİT HESAP MAKİNASİ(keypadli)

Başlatan tatarhakan_19, 31 Mayıs 2009, 22:49:58

tatarhakan_19

Proje ödevi olarak verildi fazlada bilgim olmadığı için yapamıyorum devre cızım kısmınını sımılasyonda hallettım ccs kodu lazım yardım!!!!!!


Bu forumda öğrencilere verilen ödevler onların yerine yapılmamaktadır,
eğer size bir ödev verildiyse bunu siz yapacaksınız, biz yardım edenleriz.
Siz bir yerlerden başlayın, gerektiği yerlerde biz devamını getiririz .
Hazıra konmak size birşey öğretmeyecektir.
PicProje Moderatörü

ilker_32

Bence herşey erkenken git hocanla konuş ben bunun üstesinden gelemedim projemi değiştirmek istiyorum diye.

tatarhakan_19

#include <lcd.c>   // lcd.c

#define sut1   pin_d0 // sut1 ifadesi pin_d0
#define sut2   pin_d1 // sut2 ifadesi pin_d1
#define sut3   pin_d2 // sut3 ifadesi pin_d2
#define sut4   pin_d3 // sut3 ifadesi pin_d2

#define sat1   pin_d4 // sat1 ifadesi pin_d4
#define sat2   pin_d5 // sat2 ifadesi pin_d5
#define sat3   pin_d6 // sat3 ifadesi pin_d6
#define sat4   pin_d7 // sat4 ifadesi pin_d7

char tus=0;



char keypad_oku()
{
  output_d(0x00);

  output_high(sat1);
  if (input(sut1))  
     { delay_ms(20); tus=1; }
  if (input(sut2))  
     { delay_ms(20); tus=2; }
  if (input(sut3))  
     { delay_ms(20); tus=3; }
  if (input(sut4))  
     { delay_ms(20); tus=0xA; }
  output_low(sat1);

  output_high(sat2);
  if (input(sut1))  
     { delay_ms(20); tus=4; }
  if (input(sut2))  
     { delay_ms(20); tus=5; }
  if (input(sut3))  
     { delay_ms(20); tus=6; }
  if (input(sut4))  
     { delay_ms(20); tus=0xB; }
  output_low(sat2);

  output_high(sat3);
  if (input(sut1))  
     { delay_ms(20); tus=7; }
  if (input(sut2))  
     { delay_ms(20); tus=8; }
  if (input(sut3))  
     { delay_ms(20); tus=9; }
  if (input(sut4))  
     {delay_ms(20); tus=0x0C; }
  output_low(sat3);

  output_high(sat4);
  if (input(sut1))  
     { delay_ms(20); tus=0xE; }
  if (input(sut2))  
     { delay_ms(20); tus=0; }
  if (input(sut3))  
     { delay_ms(20); tus=0xF; }
  if (input(sut4))  
     {delay_ms(20); tus=0xD; }
  output_low(sat4);
  return tus;
}



void main ( )
{
int dizi[10],sonuc=0,i=0;


  set_tris_b(0x00);  
  set_tris_d(0x0F);  

  lcd_init();  
  printf(lcd_putc,"\fBasilan Tus=");
  for( i=0;i<2;i++){
dizi=keypad_oku();
sonuc=sonuc+dizi;}

  while(1)
  {
     lcd_gotoxy(1,2);
     
     if (keypad_oku()>9)  
        printf(lcd_putc,"%d",dizi);  
     else                  
        printf(lcd_putc,"%d ",sonuc);
  }
}


ben bu kodda keypad_oku fonksıyonundan gelen degerlerı dizi veya değişken gibi bişeyın ıcıne almak ıstıyorum hesaplamada kullanacagım ıcın bırcok sey denememe ragmen aldıgım degerler hep keypadden girilen son değer oluyor. bunun hakkında yardım alabilirmiyim ?