merhaba arkadaşlar ben 3 adresine bilgi yazabileceğim bir kod yazdım fakat enerjiyi kesince kaydolmuyor sıfır oluyor kod aşşağıda yardımcı olursanız sevinirim.
Edit : sigorta ayarları değişti ama sorun devam ediyor
Edit2: Çözdüm arkadaslar genede sağ olun :DD
her girişten sonra eepromda ki veriyi okumam yeterliymiş düzenli halini ekledim
#include <16F877A.h>
#device adc=16
#fuses NOWDT,XT,NOBROWNOUT,NOLVP,PUT,CPD,NOWRT,PROTECT,NODEBUG
#use delay(clock=4000000)
#include "lcd.c"
int i,j,l;
int no = -1;
void main()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
lcd_init();
lcd_gotoxy(1,1);
set_tris_b(0b11111000);
output_d(0b00000001);
output_high(pin_d0);
basla:
lcd_gotoxy(1,1);
printf(lcd_putc,"\fAdres No Giriniz");
lcd_gotoxy(1,2);
printf(lcd_putc,"No = ");
while(TRUE)
{
if(input(pin_b3)==1)
{
delay_ms(100);
no++;
lcd_gotoxy(1,2);
printf(lcd_putc,"");
printf(lcd_putc,"No = %d",no);
}
if(no == 0 && input(pin_b4)==1)
{
while(TRUE)
{
delay_ms(100);
printf(lcd_putc,"\f0.Adres = %d",i);
i = read_eeprom(0);
if(input(pin_b5)==1)
{
delay_ms(100);
i++;
write_eeprom(0, i);
delay_ms(50);
lcd_gotoxy(1,1);
i = read_eeprom(0);
printf(lcd_putc,"\f0.Adres = %d",i);
}
if(input(pin_b6)==1)
{
delay_ms(100);
i--;
write_eeprom(0, i);
delay_ms(50);
lcd_gotoxy(1,1);
i = read_eeprom(0);
printf(lcd_putc,"\f0.Adres = %d",i);
}
if(input(pin_b7)==1)
{
delay_ms(100);
write_eeprom(0, 0);
delay_ms(50);
lcd_gotoxy(1,1);
i = read_eeprom(0);
printf(lcd_putc,"\f0.Adres = %d",i);
}
if(input(pin_b4)==1)
{
no = -1;
goto basla;
}
}
}
if(no == 1 && input(pin_b4)==1)
{
while(TRUE)
{
delay_ms(100);
printf(lcd_putc,"\f1.Adres = %d",j);
j = read_eeprom(1);
if(input(pin_b5)==1)
{
delay_ms(100);
j++;
write_eeprom(1, j);
delay_ms(50);
lcd_gotoxy(1,1);
j = read_eeprom(1);
printf(lcd_putc,"\f1.Adres = %d",j);
}
if(input(pin_b6)==1)
{
delay_ms(100);
j--;
write_eeprom(1, j);
delay_ms(50);
lcd_gotoxy(1,1);
j = read_eeprom(1);
printf(lcd_putc,"\f1.Adres = %d",j);
}
if(input(pin_b7)==1)
{
delay_ms(100);
write_eeprom(1, 0);
delay_ms(50);
lcd_gotoxy(1,1);
j = read_eeprom(1);
printf(lcd_putc,"\f1.Adres = %d",j);
}
if(input(pin_b4)==1)
{
no = -1;
goto basla;
}
}
}
if(no == 2 && input(pin_b4)==1)
{
while(TRUE)
{
delay_ms(100);
printf(lcd_putc,"\f2.Adres = %d",l);
l = read_eeprom(2);
if(input(pin_b5)==1)
{
delay_ms(100);
l++;
write_eeprom(2, l);
delay_ms(50);
lcd_gotoxy(1,1);
l = read_eeprom(2);
printf(lcd_putc,"\f2.Adres = %d",l);
}
if(input(pin_b6)==1)
{
delay_ms(100);
l--;
write_eeprom(2, l);
delay_ms(50);
lcd_gotoxy(1,1);
l = read_eeprom(2);
printf(lcd_putc,"\f2.Adres = %d",l);
}
if(input(pin_b7)==1)
{
delay_ms(100);
write_eeprom(2, 0);
delay_ms(50);
lcd_gotoxy(1,1);
l = read_eeprom(2);
printf(lcd_putc,"\f2.Adres = %d",l);
}
if(input(pin_b4)==1)
{
no = -1;
goto basla;
}
}
}
}
}