Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

hello everyone its very important !!!!

Status
Not open for further replies.

salih_yavuz

Newbie level 3
Newbie level 3
Joined
May 17, 2013
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,315
hello everyone here again ı will be glad who help me about my project ı would like to tell about it... my project's name is cable cut machine it has desinged by myself but ı have a problem ın my ccs c program...i mean ı just want to scan once my keypad when i press a button and ı want to keep it and then when i press another button again i want to keep it another variable.....

here is my project....
Code:
#include <16f877A.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.


#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) 



#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor

#define sut1   pin_d0 // sut1 ifadesi pin_d0 ifadesine eşitleniyor
#define sut2   pin_d1 // sut2 ifadesi pin_d1 ifadesine eşitleniyor
#define sut3   pin_d2 // sut3 ifadesi pin_d2 ifadesine eşitleniyor
#define sut4   pin_d3 // sut3 ifadesi pin_d2 ifadesine eşitleniyor

#define sat1   pin_d4 // sat1 ifadesi pin_d4 ifadesine eşitleniyor
#define sat2   pin_d5 // sat2 ifadesi pin_d5 ifadesine eşitleniyor
#define sat3   pin_d6 // sat3 ifadesi pin_d6 ifadesine eşitleniyor
#define sat4   pin_d7 // sat4 ifadesi pin_d7 ifadesine eşitleniyor

 char tus=0; // karakter tipinde değişken tanımlanıyor
 int32 uzun=0;
 int i=0;
 int j=0;
 int a,b,d,e,f;
 int c=0;
 int keyoku=0;
 const int yarim_adim[]={1,2,4,8};

//*********** Keypad Tarama Fonksiyonu *********

char keypad_oku() // Fonksiyon ismi
{

   output_d(0x00); // D portu çıkışı sıfırlanıyor




   output_high(sat1); // 1. satır lojik-1 yapılıyor
   
   
   if (input(sut1))   // 1. sütun okunuyor
      { delay_ms(20); tus=1;  }
   if (input(sut2))   // 2. sütun okunuyor
      { delay_ms(20); tus=2; }
   if (input(sut3))   // 3. sütun okunuyor
      { delay_ms(20); tus=3; }
  
   output_low(sat1); // 1. satır lojik-0 yapılıyor






   output_high(sat2); // 2. satır lojik-1 yapılıyor
   
   if (input(sut1))   // 1. sütun okunuyor
      { delay_ms(20); tus=4; }
   if (input(sut2))   // 2. sütun okunuyor
      { delay_ms(20); tus=5; }
   if (input(sut3))   // 3. sütun okunuyor
      { delay_ms(20); tus=6; }
  
   output_low(sat2); // 2. satır lojik-0 yapılıyor







   output_high(sat3); // 3. satır lojik-1 yapılıyor
   
   
   
   if (input(sut1))   // 1. sütun okunuyor
      { delay_ms(20); tus=7; }
   if (input(sut2))   // 2. sütun okunuyor
      { delay_ms(20); tus=8; }
   if (input(sut3))   // 3. sütun okunuyor
      { delay_ms(20); tus=9; }
   
   
    output_low(sat3); // 3. satır lojik-0 yapılıyor






   output_high(sat4); // 3. satır lojik-1 yapılıyor
   
   
   if (input(sut1))   // 1. sütun okunuyor
      { delay_ms(20); tus=0xE;}
   if (input(sut2))   // 2. sütun okunuyor
      { delay_ms(20); tus=0;}
   if (input(sut3))   // 3. sütun okunuyor
      { delay_ms(20); tus=0xF; }
 
   output_low(sat4); // 3. satır lojik-0 yapılıyor

   return tus; // Fonksiyon "tus" değeri ile geri döner
}

//********** ANA PROGRAM FONKSİYONU*******

void main ( )
{
  

   set_tris_b(0x00);   // B portu komple çıkış
   set_tris_d(0xF0);   // Yüksek değerlikli 4 bit çıkış, düşük değerlikli 4 bit giriş

   lcd_init();   // LCD hazırlanıyor

  /* printf(lcd_putc,"\fBasilan Tus="); // LCD'ye string yazdırılıyor*/

   while(1) // Sonsuz döngü
   {
     lcd_gotoxy(1,1);
     printf(lcd_putc,"kablo kesme");
     
     
     
     tus=keypad_oku();
     
     
      if(input(pin_a0))          /*when you press this button you will entire your cable height */
      { 
       
       d=1; 
       lcd_gotoxy(1,1);
       printf(lcd_putc,"\fboy gir");
       delay_ms(10000);
       
       
      } 
    
      if(d==1)
      {
       lcd_gotoxy(1,1);
       printf(lcd_putc,"\fuzunluk=%d",tus);
       delay_ms(2000);
             
      }
       
       if(input(pin_a1))    /* custom button*/ /* when you press this button you will entire you price */
       {
       
        c=1;
        lcd_gotoxy(1,1);
        printf(lcd_putc,"\fadet gir");
        delay_ms(5000);
        
        
       }
       if(c==1)
       {
       lcd_gotoxy(1,1);
       printf(lcd_putc,"\fadet=%d",tus);
       delay_ms(5000);
       A=lcd_getc(6,1);
       e=1;
       
    
       }
       
       
       if(input(pin_a2))  /* start button */when you press this button our machine is going to work according to your value (height and custom ) 
       {
       if(e==1)
       {
       for(i=0;i<A;i++)
       {
         output_c(yarim_adim[j]);  // Step motor 1 adım ileri
         delay_ms(500);
         j++;
       }
      }
    }
  }
}
 
Last edited by a moderator:

u may use only one key at a time sense. After first press then second or anything else ?
 

    V

    Points: 2
    Helpful Answer Positive Rating
hello golden electronıc ı m using just 1 keypad and when i press eighter two button ı want ıt to scan just one tıme after this it must be close to scan itself (keypad)
for example ı press pin_a0 then it must scan and it must stop itself(keypad) and then when i press the pin_a1(second button) it must scan again if ı dont press all the button it must not scan keypad.....

- - - Updated - - -

hello golden electronıc ı m using just 1 keypad and when i press eighter two button ı want ıt to scan just one tıme after this it must be close to scan itself (keypad)
for example ı press pin_a0 then it must scan and it must stop itself(keypad) and then when i press the pin_a1(second button) it must scan again if ı dont press all the button it must not scan keypad.....
 

means if key_0 sense then auto disable key sensing till key_1 is press. Same for next key_n

When u sense key_0 then u set one flag say key1_flg=1. Then check status of key_2 if it press then set key2_flg like this u save all keyn_flg. After Last Key press clear all key1_flg to keyn_flg.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top