Tuşa basıldığında 1.Tuşa Lcd yazıyor 1. Led yanacak. Tekrar 1. tuşa basarsa sönecek. Fakat css c dilinde hata mı yapıyorum.
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use fast_io(b)
#use fast_io(d)
#use fast_io(c)
//#byte portc=6
#define use_portb_lcd TRUE
#include <lcd.c>
#define tus1 pin_d0
#define tus2 pin_d1
#define tusla1 pin_d4
#define tusla2 pin_d5
char tus=0;
char tuslama_oku()
{
output_d(0x00);
output_high(tusla1);
if (input(tus1))
{ delay_ms(20); tus=1; }
if (input(tus2))
{ delay_ms(20); tus=2; }
output_low(tusla1);
output_high(tusla2);
if (input(tus1))
{ delay_ms(20); tus=3; }
if (input(tus2))
{ delay_ms(20); tus=4; }
output_low(tusla2);
return tus;
}
//int ledyak;
void main ( )
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_ccp1(ccp_off);
setup_ccp2(ccp_off);
set_tris_b(0x00);
set_tris_d(0x0F);
set_tris_c(0x00);
output_c(0x00);
lcd_init();
printf(lcd_putc,"\fOda=");
while(1)
{
lcd_gotoxy(13,1);
if (tuslama_oku()>6)
printf(lcd_putc,"%d",tuslama_oku());
else
printf(lcd_putc,"%d ",tuslama_oku());
if (input(pin_d0)==1&& input(pin_d1)==1)
{
output_high(pin_c0); // Led yakmak
}
if(input(pin_d1)==0 && input(pin_d1)==0 )
{
output_low(pin_c0); // Led sönmek
}
if(input(pin_d1)==1 && input(pin_d1)==1 )
{
output_high(PIN_c1);// Led yakmak
}
if(input(pin_d1)==0 && input(pin_d1)==0 )
{
output_low(PIN_c1); // Led sönmek
}
}
}
(https://postimg.cc/image/ge5ntwt8z/)
Sanki && den dolayi calismiyor
Problem ne aşamada
kodda bariz hatalar var ancak bunlar üzerinden gitmektense yapmak istediğiniz şeyi daha açık yazabilirseniz yardımcı olabilirim
kodunuz cok karisik tam olarak anlayamadim . amac herbir butonu ac / kapa seklinde kullanmak ve her butonun on durumunda verilen degeri lcd de gostermekmidir?
Eğer sadece 4 buton kullanacaksanız bu döngüyü diğer 3 buton içinde kullanabilirsiniz. ( Her Buton Pinine tek Buton Bağlayın )
int a,b,c,d=0;
if (input(pin_d0)==1){ delay_ms(100); a++ }
i
f(a==3]a=0;
if{a==1} { output_high(pin_c0); }
if{a==2} { output_lowh(pin_c0); }