4x20 lcd buton ile arttir azalt

akay989

Üye
Katılım
23 Eyl 2013
Mesajlar
78
Puanları
1
Yaş
36
Merhaba arkadaslar ccs c dilinde sicaklik termostat devresi hazirliyorum.
Sorun sicaklik set kismina atadigim i degiskeni butona bastigimda 4 er 4 er artiyor i++
i-- durumunda ise ekran da anlamsiz yazilar cikip sapitiyor ne yaptiysam sonuca ulasamadim yarimlarinizi bekliyorum..

Kod:
//LCD module connections
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_ENABLE_PIN PIN_B0
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
//End LCD module connections

#define LED1 PIN_A0
#define LED2 PIN_A1
#define ASAGI PIN_E0
#define YUKARI PIN_E2

#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP   
#use delay(clock = 4M)
#include <lcd420.c>
#define DHT11 PIN_C3                // Connection pin between DHT11 and mcu
#include "dht11.c"

int sicaklik,nem,eskinem,eskisicaklik; //kullanilan degiskenleri tanimladik float olarak tanimlasaydik 10dalik olarak deger alirdik int bize kusurat vermiyor

Kod:
int8 i=0;



void main()



{





   lcd_init(); // lcd yi calistirdik

   lcd_gotoxy(4,1);

   printf(lcd_putc,"DHT11   DENEME");

   lcd_gotoxy(4,2);

   printf(lcd_putc,"  CALISMASI");

   delay_ms(3000);

   lcd_gotoxy(4,3);

   printf(lcd_putc,"PROJECT ENGINEER");

   lcd_gotoxy(10,4);

   printf(lcd_putc, "Akay AYDIN");

   delay_ms(7000);

 



lcd_putc("\f");





while(TRUE)  // while(1) olarak da tanimlayabilirdik



{



   read_DHT(); // DHT11 in okunmasi icin gereken fonksiyon

   delay_ms(1000);



     sicaklik = dht_dat[2]; // dht_dat[2] degiskeni bize sicaklik bilgisini verir bu bilgiyi sicaklik olarak tanimladigimiz degiskene atiyoruz

     nem = dht_dat[0]; // dht_dat[0] degiskeni bize nem bilgisini verir bu bilgiyi nem olarak tanimladigimiz degiskene atiyoruz



     if (eskisicaklik!=sicaklik) // ekranin sadece sicaklik degistiginde yenilenmesi icin 2. degisken ile karsilastiril"masi. eger degisim var ise ekranin yenilenmesi

         {

         lcd_gotoxy(1,1);

         printf(lcd_putc,"Sicaklik : %i C ",sicaklik); // ekrana sicaklik degiskeninin yazdirilmasi float kullansaydik "sicaklik: %3.1f derece"

         eskisicaklik=sicaklik; //ekranin sadece sicaklik degistiginde yenilenmesi icin 2. bir degisken atiyoruz

         }



            if (eskinem!=nem) // ekranin sadece nem degistiginde yenilenmesi icin 2.degisken ile karsilastirilmasi. eger degisim var ise yenilenmesi

            {

            lcd_gotoxy(1,2);

            printf(lcd_putc, "Nem      : %% %i", nem); //ekrana nem degiskeninin yazdirilmasi

            eskinem=nem; // ekranin sadece nem degistiginde yenilenmesi icin 2.bir degisken atiyoruz

            }

            delay_ms(500);

         IF(input(YUKARI)==1)

               {

                    

                         output_high (LED1);

                         delay_ms(500);

                         output_low (LED2);

                         lcd_gotoxy(1,3);

                         printf(lcd_putc,"SICAKLIK SET=%d  ",i);

                         i=i+1;

                        

               }

               IF(input(ASAGI)==1)

                        {

                      

                        output_low (LED1);

                        delay_ms(500);

                        output_high (LED2);

                        printf(lcd_putc,"SICAKLIK SET=%d  ",i);

                       i=i-1;

                        

                        }

      

            

}

}
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
127,954
Mesajlar
913,893
Kullanıcılar
449,604
Son üye
baba pero

Yeni konular

Geri
Üst