salih_yavuz
Newbie level 3
- Joined
- May 17, 2013
- Messages
- 4
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- 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....
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: