Ccs C ile lcd menü uygulamasi

Başlatan kont, 12 Kasım 2015, 12:52:24

kont

Arkadaslar kolay gelsin. Ccs c derleyicisinde 2×16 lcd kullanarak menü uygulamasi üzerinde calismaktayim switch case kullanarak sekmelerin icine girip pic'in pin durumlarini lojik 1 yada lojik 0 yapmak istiyorum. yardimci olursaniz sevinirim.

Not; pic16f877a

sifirzero

Arkadasim yaptinmi bende bu aralar dusunuyorum.menu yapmayi switch ve case ile mi yapiliyor ornek verebilecek yardim edecek olan var mi
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

ziyaretci

if deyimi olur, switch-case olur. Farklı bir yöntemlede olur. Sana hangisi uyarsa.

Not: Derlenmemiştir.

#define buton1 input(pin_a0)
#define buton2 input(pin_a1)

Unsigned int8 GelenTusBilgisi=0;

unsigned int8 Buton_kontrol(){ 
if(buton1){while(buton1); Return 1;}
else
if(buton2){while(buton2); Return 2;}
}

Void Main(){
For(;;){
While(GelenTusBilgisi==0){
GelenTusBilgisi = Buton_kontrol();
}
Switch(GelenTusBilgisi){
Case 1:  Printf(lcd_putc,"\fMenü 1"); break;
Case 2:  Printf(lcd_putc,"\fMenü 2"); break;
  }
GelenTusBilgisi = 0;
 }
}

Cemre.

mikroC ile yapmıştım, bir inceleyin isterseniz. Çok büyük farklar olmayacaktır derleyici açısından, mantığı oturtursanız kendiniz de yapabilirsiniz eminim.

https://www.picproje.org/index.php/topic,60992.0.html

dursuncemal

herkse selam arkadaşlar menü yazmada bence en kolay  yol dizi kullanmak.
:=

Salih

Alıntı yapılan: dursuncemal - 10 Ocak 2016, 04:08:41
herkse selam arkadaşlar menü yazmada bence en kolay  yol dizi kullanmak.

Bir örnek verirsen,
İhtiyacı olanlardan çok dua alırsın.

erhans

Yapmış olduğum bi projede kullanmıştım,bu hali ile çalışıyor. Programsal olarak eksik veya geliştirilebilir olabilir .Yazılım konularında daha yeniyim. Uygulamada eksiklik yada varsa fazlalık dğer ustalardan düzeltmelerini beklerim.

Herkese iyi çalışmalar.



while (a>0)
         {
         if (input(pin_c3)==1)
               {               
               a=a+1;
               delay_ms(50);
               while(input(pin_c3)==1);
               {
               if (a==6)
               {
               a=1;
               }} }
         if (input(pin_c2)==1)
               {               
               a=0;
               b=0;
               c=0;
               d=0;
               output_low   (pin_e0);
               output_low   (pin_e2);
               output_low   (pin_e1);
               goto basla;
               while(input(pin_c2)==1);
               break;               
               }               
         switch (a)
         {
         case 1:
         isi=isi_ayar();
         printf (lcd_putc,"\f    Set=%u C",isi);
         lcd_gotoxy(1,1);
         printf (lcd_putc,"\n   KLIMA AYAR");
         delay_ms(100);
         break;
         case 2:             
         nem=nem_ayar();
         printf (lcd_putc,"\f    Set=%u C",nem);
         lcd_gotoxy(1,1);
         printf (lcd_putc,"\n  ISITICI AYAR");
         delay_ms(100);
         break;
         case 3:     
         fan=fan_ayar();
         printf (lcd_putc,"\f   Set=%u rH",fan);
         lcd_gotoxy(1,1);
         printf (lcd_putc,"\n    FAN AYAR");
         delay_ms(100);
         break;       
         case 4:
         lcd_gotoxy(1,1);
         printf (lcd_putc,"\f   Min=%u rH",nm);
         lcd_gotoxy(2,2);
         printf (lcd_putc,"\n   Min=%u C",im);
         delay_ms(100);
         break;
         case 5:
         lcd_gotoxy(1,1);
         printf (lcd_putc,"\f   Max=%u rH",nn);
         lcd_gotoxy(2,2);
         printf (lcd_putc,"\n   Max=%u C",ii);
         delay_ms(100);
         break; 
         default:
         }}
         }}
         
         
Kolay gelsin

dursuncemal

Alıntı yapılan: Salih - 10 Ocak 2016, 13:27:45
Bir örnek verirsen,
İhtiyacı olanlardan çok dua alırsın.

çok uzun suredir kod yazmıyorum. umarım asağıda anlatmak istediğimi anlatabilir,hak ediyor ise duamı isterim.

#include <main.h>

#include <d18io.h>

#include "D:\NAMAZC\LCD.H"

#include "PCF8583.h"

#include "namaz.h"

#define satir1 0x80
#define satir2 0xC0
#define satir3 0x94
#define satir4 0xD4

///////////////////////////////////////////////////////////////////////////////

#define cikis   0xff
#define giris  0
///////////////////////////////////////////////////////////////////////////////
int8 tus_bilgi, ezan = 7;
int8 menu;
int8 alt_menu;
int8 i;
date_time_t dt;
int8 saatBuff, dakikaBuff, tarihGunBuff,tarihAyBuff, tarihYilBuff;
boolean menuSet=0;
boolean  _flash = 0, _goster = 0;
int16 gecikme = 500,goster = 3000;
zaman alarmOn, alarmOff;
///////////////////////////////////////////////////////////////////////////////
boolean    tus_izin = 0;


const char yaz[19][29] = {
                         {"      DATE SET      "},
                         {"      TIME SET      "},
                         {"     ENLEM SET      "},
                         {"     BOYLAM SET     "},
                         {"     IMSAK SET      "},
                         {"     GUNES SET      "},
                         {"      OGLE SET      "},
                         {"     IKINDI SET     "},
                         {"     AKSAM SET      "},
                         {"     YATSI SET      "},
                         {"     GENEL SET      "},
                         {"  IMSAK TEMKIN SET  "},
                         {"  GUNES TEMKIN SET  "},
                         {"  OGLE TEMKIN SET   "},
                         {" IKINDI TEMKIN SET  "},
                         {"  AKSAM TEMKIN SET  "},
                         {"  YATSI TEMKIN SET  "},
                         {"   YAZ SAATI SET    "},
                         {"    KONTRAST SET    "},
                                              };

///////////////////////////////////////////////////////////////////////////////DEGİSKENLERİMİZİN UST LİMİTLERİ

               
int8     m_ust[19][3] = {
               {31,12,99 },  //Tarih
               {24,59,59 },  //Saat
               {99,99,'S'}, //Enlem 41,02
               {99,99,'S'}, //boylam 28,97
               {60,60,'S'}, //imsak role
               {60,60,'S'}, //gunes role
               {60,60,'S'}, //ogle role
               {60,60,'S'}, //ikindi role
               {60,60,'S'}, //aksam role
               {60,60,'S'}, //yatsi role
               {60,60,'S'}, //global role
               {15,30,'S'}, //temkin imsak
               {15,30,'S'}, //temkin gunes
               {15,30,'S'}, //ogle
               {15,'S','S'}, // ikindi         14
               {15,30,'S'}, //temkin aksam
               {15,30,'S'}, //yatsı
               {1,'S','S'}, // yaz saati
               {99,'S','S'}, //kontrast
               }; 
///////////////////////////////////////////////////////////////////////////////DEGİSKENLERİMİZİN ALT LİMİTLERİ       
signed int8     m_alt[19][3] = {
               {0,0,0},  //Tarih
               {0,0,0},  //Saat
               {0,0,'S'}, //Enlem 41,02
               {0,0,'S'}, //boylam 28,97
               {0,0,'S'}, //imsak role
               {0,0,'S'}, //gunes role
               {0,0,'S'}, //ogle role
               {0,0,'S'}, //ikindi role
               {0,0,'S'}, //aksam role
               {0,0,'S'}, //yatsi role
               {0,0,'S'}, //global role
               {-15,0,'S'}, //temkin imsak
               {-15,0,'S'}, //temkin gunes
               {-15,0,'S'}, //ogle
               {-15,'S','S'}, // ikindi 
               {-15,0,'S'}, //temkin aksam
               {-15,0,'S'}, //yatsı
               {0,'S','S'}, // yaz saati
               {0,'S','S'}, //kontrast
               };

////////////////////////////////////////////////////////////////////////////////ASİL DEGİSKENLERİMİZ
signed int8    m_table[19][4] = {
               {30,11,11,3},  //Tarih         0
               {12,15,00,3},  //Saat          1
               {25,23,'S',2}, //Enlem 41,02   2
               {28,97,'S',2}, //boylam 28,97  3               
               
               {15,15,'S',2}, //imsak role    4
               {15,15,'S',2}, //gunes role    5
               {15,15,'S',2}, //ogle role     6
               {15,15,'S',2}, //ikindi role   7
               {15,15,'S',2}, //aksam role    8
               {15,15,'S',2}, //yatsi role    9
               {15,15,'S',2}, //global role   10 
               
               {0,'S','S',1}, //temkin imsak    11
               {0,'S','S',1}, // gunes          12
               {0,'S','S',1}, //temkin ogle     13
               {0,'S','S',1}, // ikindi         14
               {0,'S','S',1}, //temkin aksam    15
               {0,'S','S',1}, //yatsı           16
               {0,'S','S',1}, // yaz saati      17
               {80,'S','S',1}, //kontrast       18
               
               };
////////////////////////////////////////////////////////////////////////////////








if(tus_bilgi == xx){ if(menu < 18){ menu++;  alt_menu = 0; } }// m_table dizisinde asagi gezinme


if(tus_bilgi == xx){if(menu > 0){ menu--; alt_menu = 0;}}    //  m_table dizisinde  yukarı gezinme


if(tus_bilgi == xx){if(alt_menu  <  m_table[menu][3] ) { alt_menu ++;  if(alt_menu == m_table[menu][3]){ alt_menu = 0; } } }//  altmenu artır azalt    m_table dizisinde saga sola gezinme


if(tus_bilgi == xx){if(m_table[menu][alt_menu] <  m_ust[menu][alt_menu]){ m_table[menu][alt_menu] ++; }} // m_table dizisinde ki isaretledigimiz degiskeni artır


if(tus_bilgi == xx){if(m_table[menu][alt_menu] > m_alt[menu][alt_menu]){ m_table[menu][alt_menu]--; }}//  m_table dizisinde ki isaretledigimiz degiskeni  azalt


send_cmd(satir2); for(i=0; yaz[menu] != '\0';i++) send_char(yaz[menu]); // yaz[menu][]  dizisini yazdirma

//////degisken isimieri birbirine yakin olduğu icin insanlah kafa karıstırmaz ama mantık oturduktan sonra  bana gore en kolay menu  yazım sekli.
 
:=