Haberler:

Türkiye'nin Elektronik ve Metal Dedektörlerini Buluşturan İlk Sitesi Teknoloji Ekibi'ne Hoş Geldiniz.

Ana Menü

Yardım

Başlatan eyt, 10 Mayıs 2015, 14:07:07

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

eyt

iyi günler bir asm kodum var nem ısı basınç olçer projesinin kodu LCD başlarken yazan yazıyı değiştirmek istiyorum asm kod içerisinde bulamadım yardımcı olabilirmisiniz.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------



//******************************************************************************
//* Proje:PIC16F877 ile Sıcaklık-Nem-Basınç Ölçümü ve RF ile PC'ye aktarılması *
//* Kullanılan sensörler:SHT11,MPX5100                                         *
//* Tarih:28.01.2010-03.02.2010                                                *
//******************************************************************************
// Denetleyici konfigürasyon ayarları
#include <18F452.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#device ADC=10          // 10 bitlik ADC kullanılacağı belirtiliyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=20000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
//#use fast_io(e)            //Port yönlendirme komutları E portu için geçerli
#use fast_io(a)            //Port yönlendirme komutları A portu için geçerli
#include <HDM64GS12x.c>
#include <graphics.c>
#include <stdio.h>
#define sht_data_pin   PIN_c1    //SHT11 data ucu
#define sht_clk_pin    PIN_c0    //SHT11 clock ucu
#INT_AD                          // ADC çevrimi bitti kesmesi
#define mode pin_e0
#define yukari pin_e1
#define asagi pin_e2
#define ok pin_a5



unsigned long int bilgi;
float voltaj;           
float restemp, truehumid, basinc;
float g_restemp, g_truehumid, g_basinc;
char s_sicaklik[6];   
char s_nem[6];
char s_basinc[6];

char tmp[]="C";
char tmp1[]="%";
char tmp2[]="kPa";
//Açılış ekranı görüntüsü
const int8 image_0[64][16]={
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x03 0xFF 0xFF 0x80 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x0C 0x00 0x00 0x60 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x10 0x03 0x00 0x10 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x20 0x04 0x80 0x08 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x20 0x08 0x40 0x08 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x40 0x09 0xC0 0x04 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x40 0x08 0x40 0x04 0x00 0x00,
0x00 0x03 0xB8 0x41 0xC2 0x19 0xC0 0x00,
0x00 0x00 0x40 0x09 0xC0 0x04 0x00 0x00,
0x00 0x01 0x10 0x42 0x42 0x08 0x80 0x00,
0x00 0x00 0x40 0x08 0x40 0x04 0x00 0x00,
0x00 0x01 0x10 0xA2 0x05 0x0C 0x80 0x00,
0x00 0x00 0x40 0x09 0xC0 0x04 0x00 0x00,
0x00 0x01 0xF0 0xA1 0x05 0x0A 0x80 0x00,
0x00 0x00 0x40 0x18 0x60 0x04 0x00 0x00,
0x00 0x01 0x10 0xA0 0x85 0x0A 0x80 0x00,
0x00 0x00 0x40 0x10 0x20 0x04 0x00 0x00,
0x00 0x01 0x11 0xF0 0x4F 0x89 0x80 0x00,
0x00 0x00 0x40 0x27 0xB0 0x04 0x00 0x00,
0x00 0x01 0x11 0x12 0x48 0x88 0x80 0x00,
0x00 0x00 0x40 0x3F 0xF0 0x04 0x00 0x00,
0x00 0x03 0xBB 0xBB 0x9D 0xDC 0x80 0x00,
0x00 0x00 0x40 0x3F 0xF0 0x04 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x20 0x1F 0xE0 0x08 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x20 0x1F 0xE0 0x08 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x10 0x07 0x80 0x10 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x0C 0x00 0x00 0x60 0x00 0x00,
0x02 0x80 0x05 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x03 0xFF 0xFF 0x80 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x0E 0xEF 0xDD 0xDC 0x38 0xEF 0xDF 0x80,
0x01 0xFF 0xFF 0xC0 0x07 0xFF 0xFF 0x00,
0x04 0x48 0x88 0x88 0x18 0xC4 0x51 0x00,
0x06 0x00 0x00 0x30 0x18 0x00 0x00 0xC0,
0x04 0x41 0x08 0x88 0x18 0xC5 0x02 0x00,
0x08 0x00 0x00 0x08 0x20 0x0F 0x80 0x20,
0x04 0x42 0x08 0x88 0x15 0x47 0x04 0x00,
0x10 0x00 0x80 0x04 0x40 0x32 0x60 0x10,
0x04 0x42 0x08 0x88 0x15 0x45 0x04 0x00,
0x10 0x00 0x80 0x04 0x40 0x48 0x90 0x10,
0x04 0x44 0x08 0x88 0x15 0x44 0x08 0x00,
0x20 0x01 0x40 0xC2 0x80 0xA2 0x28 0x08,
0x04 0x48 0x48 0x88 0x92 0x44 0x50 0x80,
0x20 0x02 0x21 0x22 0x80 0x87 0x08 0x08,
0x03 0x8F 0xC7 0x1F 0xBA 0xEF 0xDF 0x80,
0x21 0x84 0x12 0x12 0x81 0x42 0x14 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x22 0x44 0x12 0x12 0x81 0x02 0x04 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x24 0x24 0x11 0x22 0x81 0x42 0x14 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x24 0x28 0x08 0xC2 0x81 0xFF 0xFC 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x22 0x48 0x08 0x02 0x80 0xFF 0xF8 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x21 0x90 0x04 0x02 0x80 0xFF 0xF8 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x20 0x08 0x08 0x02 0x80 0x7F 0xF0 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x20 0x08 0x08 0x02 0x80 0x3F 0xE0 0x08,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x10 0x06 0x30 0x04 0x40 0x0F 0x80 0x10,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x10 0x01 0xC0 0x04 0x40 0x02 0x00 0x10,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x08 0x00 0x00 0x08 0x21 0xFE 0x00 0x20,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x06 0x00 0x00 0x30 0x18 0x00 0x00 0xC0,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x01 0xFF 0xFF 0xC0 0x07 0xFF 0xFF 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0xF2 0x38 0x21 0x0A 0x0A 0x10 0x42,
0xFA 0x08 0x3E 0x08 0x3C 0xA1 0x1C 0x00,
0x01 0x0A 0x44 0x51 0x12 0x0A 0x20 0x62,
0x83 0x18 0x21 0x14 0x42 0xB1 0x22 0x00,
0x01 0x02 0x80 0x51 0x22 0x0A 0x40 0x52,
0x83 0x18 0x21 0x14 0x40 0xA9 0x40 0x00,
0x00 0xC2 0x80 0x51 0x62 0x0A 0xC0 0x52,
0xFA 0xA8 0x3F 0x14 0x30 0xA9 0x40 0x00,
0x00 0x32 0x80 0x89 0xA2 0x0B 0x40 0x4A,
0x82 0xA8 0x21 0x22 0x0C 0xA5 0x40 0x00,
0x00 0x0A 0x80 0xF9 0x12 0x0A 0x27 0x4A,
0x82 0xAB 0xA1 0x3E 0x02 0xA5 0x40 0x00,
0x01 0x0A 0x45 0x05 0x12 0x0A 0x20 0x46,
0x82 0x48 0x21 0x41 0x42 0xA3 0x22 0x00,
0x00 0xF2 0x39 0x05 0x0B 0xEA 0x10 0x42,
0xFA 0x48 0x3E 0x41 0x3C 0xA1 0x1C 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x08 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x0C 0x00,
0x00 0x00 0x00 0x00 0x04 0x20 0x38 0xA0,
0x10 0x82 0x8E 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x0A 0x20 0x44 0xA0,
0x28 0x44 0x91 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x0A 0x20 0x82 0xA0,
0x28 0x44 0xA0 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x0A 0x20 0x80 0xA0,
0x28 0x28 0xA0 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x11 0x20 0x8E 0xA0,
0x44 0x10 0xA0 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x1F 0x20 0x82 0xA0,
0x7C 0x10 0xA0 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x20 0xA0 0x44 0xA0,
0x82 0x10 0x91 0x40 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x20 0xBE 0x38 0xBE,
0x82 0x10 0x8E 0x40 0x00 0x00 0x00 0x00
};

//Sıcaklık-Nem-Basınç Göstergeleri
const int8 image_1[64][16]={
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x08 0x01 0x80 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x10 0x02 0x40 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x04 0x20 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x20 0x04 0xE0 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x04 0x20 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x04 0xE0 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x04 0x20 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x04 0xE0 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x0C 0x30 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x08 0x10 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x1B 0xD8 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x1F 0xF8 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x1F 0xF8 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x10 0x0F 0xF0 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x0F 0xF0 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x08 0x03 0xC0 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x08 0x00 0x00 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x10 0x00 0x80 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x00 0x80 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x20 0x01 0x40 0xC2 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x02 0x21 0x22 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x21 0x84 0x12 0x12 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x22 0x44 0x12 0x12 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x24 0x24 0x11 0x22 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x24 0x28 0x08 0xC2 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x22 0x48 0x08 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x21 0x90 0x04 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x08 0x08 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x08 0x08 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x10 0x06 0x30 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x01 0xC0 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x08 0x00 0x00 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x08 0x03 0xE0 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x10 0x0C 0x98 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x12 0x24 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x20 0x28 0x8A 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x21 0xC2 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x50 0x85 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x40 0x81 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x50 0x85 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x7F 0xFF 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x3F 0xFE 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x3F 0xFE 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x1F 0xFC 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x20 0x0F 0xF8 0x02 0x40 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04,
0x10 0x03 0xE0 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x10 0x00 0x80 0x04 0x20 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x08,
0x08 0x7F 0x80 0x08 0x10 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x10,
0x06 0x00 0x00 0x30 0x0C 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x60,
0x01 0xFF 0xFF 0xC0 0x03 0xFF 0xFF 0xFF,
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x80,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00,
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
};


//***** SHT11 Başlatma *****

void comstart (void)
{
output_float(sht_data_pin);  //data high
output_bit(sht_clk_pin, 0);  //clk low
delay_us(1);
output_bit(sht_clk_pin, 1);  //clk high
delay_us(1);
output_bit(sht_data_pin, 0); //data low
delay_us(1);
output_bit(sht_clk_pin, 0);  //clk low
delay_us(2);
output_bit(sht_clk_pin, 1);  //clk high
delay_us(1);
output_float(sht_data_pin);  //data high
delay_us(1);
output_bit(sht_clk_pin, 0);  //clk low
}

//***** SHT11 yazma fonksiyonu*****

int1 comwrite (int8 iobyte)
{
int8 i, mask = 0x80;
int1 ack;

//Komut gönderilir
delay_us(4);
for(i=0; i<8; i++)
  {
   output_bit(sht_clk_pin, 0);                          //clk low
   if((iobyte & mask) > 0) output_float(sht_data_pin);  //data high if MSB high
   else output_bit(sht_data_pin, 0);                    //data low if MSB low
   delay_us(1);
   output_bit(sht_clk_pin, 1);                          //clk high
   delay_us(1);
   mask = mask >> 1;                                    //shift to next bit
  }

//Shift in ack
output_bit(sht_clk_pin, 0);  //clk low
delay_us(1);
ack = input(sht_data_pin);   //get ack bit
output_bit(sht_clk_pin, 1);  //clk high
delay_us(1);
output_bit(sht_clk_pin, 0);  //clk low
return(ack);
}

//***** SHT11 veri okuma fonksiyonu *****

int16 comread (void)
{
int8 i;
int16 iobyte = 0;
const int16 mask0 = 0x0000;
const int16 mask1 = 0x0001;

//shift in MSB data
for(i=0; i<8; i++)
  {
   iobyte = iobyte << 1;
   output_bit(sht_clk_pin, 1);                //clk high
   delay_us(1);
   if (input(sht_data_pin)) iobyte |= mask1;  //shift in data bit
   else iobyte |= mask0;
   output_bit(sht_clk_pin, 0);                //clk low
   delay_us(1);
  }

//send ack 0 bit
output_bit(sht_data_pin, 0); //data low
delay_us(1);
output_bit(sht_clk_pin, 1);  //clk high
delay_us(2);
output_bit(sht_clk_pin, 0);  //clk low
delay_us(1);
output_float(sht_data_pin);  //data high

//shift in LSB data
for(i=0; i<8; i++)
  {
   iobyte = iobyte << 1;
   output_bit(sht_clk_pin, 1);                //clk high
   delay_us(1);
   if (input(sht_data_pin)) iobyte |= mask1;  //shift in data bit
   else iobyte |= mask0;
   output_bit(sht_clk_pin, 0);                //clk low
   delay_us(1);
  }

//send ack 1 bit
output_float(sht_data_pin);  //data high
delay_us(1);
output_bit(sht_clk_pin, 1);  //clk high
delay_us(2);
output_bit(sht_clk_pin, 0);  //clk low

return(iobyte);
}

//***** SHT11 okuma için bekleme fonksiyonu *****

void comwait (void)
{
int16 sht_delay;

output_float(sht_data_pin);                     //data high
output_bit(sht_clk_pin, 0);                     //clk low
delay_us(1);
for(sht_delay=0; sht_delay<30000; sht_delay++)  // wait for max 300ms
  {
   if (!input(sht_data_pin)) break;              //if sht_data_pin low, SHT75 ready
   delay_us(10);
  }
}

//***** SHT11 iletişimini resetleme fonksiyonu *****

void comreset (void)
{
int8 i;

output_float(sht_data_pin);    //data high
output_bit(sht_clk_pin, 0);    //clk low
delay_us(2);
for(i=0; i<9; i++)
  {
   output_bit(sht_clk_pin, 1);  //toggle clk 9 times
   delay_us(2);
   output_bit(sht_clk_pin, 0);
   delay_us(2);
}
comstart();
}

//***** SHT11 soft-reset fonksiyonu *****

void sht_soft_reset (void)
{
comreset();           //SHT75 communication reset
comwrite(0x1e);       //send SHT75 reset command
delay_ms(15);         //pause 15 ms
}

//***** SHT11 sıcaklık ölçüm fonksiyonu *****

int16 measuretemp (void)
{
int1 ack;
int16 iobyte;

comstart();             //alert SHT75
ack = comwrite(0x03);   //send measure temp command and read ack status
if(ack == 1) return;
comwait();              //wait for SHT75 measurement to complete
iobyte = comread();     //read SHT75 temp data
return(iobyte);
}

//***** SHT11 nem ölçüm fonksiyonu *****

int16 measurehumid (void)
{
int1 ack;
int16 iobyte;

comstart();            //alert SHT75
ack = comwrite(0x05);  //send measure RH command and read ack status
if(ack == 1) return;
comwait();             //wait for SHT75 measurement to complete
iobyte = comread();    //read SHT75 temp data
return(iobyte);
}

//***** SHT11 sıcaklık & nem hesaplama fonksiyonu *****

void calculate_data (int16 temp, int16 humid, float & tc, float & rhlin, float & rhtrue)
{
float  rh;

//calculate temperature reading
tc = ((float) temp * 0.01) - 40.0;

//calculate Real RH reading
rh = (float) humid;

rhlin = (rh * 0.0405) - (rh * rh * 0.0000028) - 4.0;

//calculate True RH reading
rhtrue = ((tc - 25.0) * (0.01 + (0.00008 * rh))) + rhlin;
}

//***** SHT11 sıcaklık &nem ölçme ve hesaplama fonksiyonu *****

void sht_rd (float & temp, float & truehumid)
{
int16 restemp, reshumid;
float realhumid;
restemp = 0; truehumid = 0;

restemp = measuretemp();    //measure temp
reshumid = measurehumid();  //measure RH
calculate_data (restemp, reshumid, temp, realhumid, truehumid);  //calculate temp & RH
}

//***** SHT11 başlatma fonksiyonu *****

void sht_init (void)
{
comreset();    //reset SHT75
delay_ms(20);  //delay for power-up
}

//***** MPX5100 okuma fonksiyonu *****

void mpx5100_read(){
      set_adc_channel(0);                    // RA0/AN0 ucundaki sinyal A/D işlemine tabi tutulacak
      delay_us(20);                          // Kanal seçiminde sonra bu bekleme süresi verilmelidir
      bilgi=read_adc();                      // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
      voltaj=0.0048828125*bilgi;             // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
      basinc=((voltaj+5*0.095)/(5*0.009));   //Gerilim değerinden basınç hesaplama formulu
}

void glcd_image(int tip)
{
char i,j;
signed char k;
if (tip==0){                     //Açılış ekranı yükleniyor
for( i = 0 ; i < 64 ; i ++ )
{
for( j = 0 ; j < 16 ; j ++)
{
for(k=7;k>-1;--k)
{
if( bit_test(image_0[j] ,7-k ))
glcd_pixel( j*8+k,i, ON );
}
}
}
}
if (tip==1){                     //Ana ekran yükleniyor
for( i = 0 ; i < 64 ; i ++ )
{
for( j = 0 ; j < 16 ; j ++)
{
for(k=7;k>-1;--k)
{
if( bit_test(image_1[j] ,7-k ))
glcd_pixel( j*8+k,i, ON );
}
}
}
}
}

//********** ANA PROGRAM FONKSİYONU*******

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_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   set_tris_C(0xFF);
   set_tris_E(0x00000111); 
   set_tris_A(0x00010001); 
   set_tris_D(0x00); 
   set_tris_B(0x00);

   setup_adc(adc_clock_div_32);   // ADC clock frekansı fosc/32
   setup_adc_ports(RA0_ANALOG);   // Tüm AN girişleri analog
   enable_interrupts(INT_AD);     // AD çevrimi bitti kesmesi tanıtılıyor
   enable_interrupts(GLOBAL);     // Tüm kesmeler aktif
   sht_init();
   delay_ms(100);
   glcd_init(ON);
   glcd_fillScreen(0);
   //glcd_image(0);
   //delay_ms(2000);
   glcd_fillScreen(0);
   glcd_image(1);

   while(1)   // sonsuz döngü
   {
   sht_rd (restemp, truehumid);
   mpx5100_read();
   
   sprintf(s_sicaklik,"%f",g_restemp);
   glcd_text57(45,3,s_sicaklik,2,off);
   
   sprintf(s_sicaklik,"%f",restemp);
   glcd_text57(45,3,s_sicaklik,2,on);
   glcd_text57(110,3,tmp,2,on);
   glcd_circle(105,5,2,no,on);

   sprintf(s_nem,"%f",g_truehumid);
   glcd_text57(60,25,s_nem,2,off);
   
   sprintf(s_nem,"%f",truehumid);
   glcd_text57(60,25,s_nem,2,on);
   glcd_text57(45,25,tmp1,2,on);   
   glcd_pixel(46,26,off);
   glcd_pixel(47,26,off);
   glcd_pixel(46,27,off);
   glcd_pixel(47,27,off);
   
   glcd_pixel(52,36,off);
   glcd_pixel(53,36,off);
   glcd_pixel(52,37,off);
   glcd_pixel(53,37,off);
   
   

   if(basinc>=100){
   sprintf(s_basinc,"%f",g_basinc);
   glcd_text57(35,47,s_basinc,2,off);
   glcd_text57(45,47,s_basinc,2,off);
   sprintf(s_basinc,"%f",basinc);
   glcd_text57(35,47,s_basinc,2,on);
   glcd_text57(105,51,tmp2,1,on);
   }
   if(basinc<100){
   sprintf(s_basinc,"%f",g_basinc);
   glcd_text57(35,47,s_basinc,2,off);
   glcd_text57(45,47,s_basinc,2,off);
   sprintf(s_basinc,"%f",basinc);
   glcd_text57(45,47,s_basinc,2,on);
   glcd_text57(105,51,tmp2,1,on);
   }
   g_restemp=restemp;
   g_truehumid=truehumid;
   g_basinc=basinc;
   delay_ms(100);
   

   }
}

Linkback: Yardım


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious