PİC DERLEYİCİ YARDİM

Başlatan Didem06, 24 Ekim 2014, 00:20:39

Didem06

Arkadaşlar merhaba yardimlarinizi bekliyorum..programa buton eklemek istiyorum..iki adet ekleyecegim yukselten ve alçaltan  butonlarla sicaklik ayarlayacagim ayarladigim sicakligi ölçen sensör o sicaklikta ise başka bir porttaki fan çalişcak degilse çalişmiycak    lutfen yardimlarinizi esirgemeyin..Saygilarimla 



  @ DEVICE pic16f628, WDT_OFF
@ DEVICE pic16f628, PWRT_OFF
@ DEVICE pic16f628, BOD_OFF
@ DEVICE pic16f628, LVP_OFF
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16f628, MCLR_OFF
@ DEVICE pic16f628, INTRC_OSC_NOCLKOUT
Include "modedefs.bas"
DEFINE OSC 4 '4 Mhz hızında çalışıyoruz.
SENSOR VAR PORTB.7 'Sensör PORTB.7'ye bağlı
LED VAR PORTB.6 'LED PORTB.6'ya bağlı
MESGUL VAR BYTE 'Çeşitli değişken tanımlamaları
BILGI VAR WORD
ISARET VAR BYTE
ONDA1 VAR WORD
ONDA2 VAR WORD
ARA VAR WORD
DEGER VAR BYTE
'LCD TANIMLAMALARI
DEFINE LCD_DREG     PORTB   'LCD Veri pinleri PORTB'ye bağlı.
DEFINE LCD_DBIT     0       'LCD'nin D0 pini PORTB.0'a bağlı
DEFINE LCD_RSREG    PORTB   'RS PİNİ PORTB'ye bağlı
DEFINE LCD_RSBIT    4       'RS PİNİ = PORTB.4
DEFINE LCD_EREG     PORTB   'ENABLE PİNİ PORTB'ye bağlı
DEFINE LCD_EBIT     5       'ENABLE PİNİ = PORTB.5
DEFINE LCD_RWREG    PORTA   'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
DEFINE LCD_RWBIT    1       'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
DEFINE LCD_BITS     4       'LCD 4 BİT SÜRÜLÜYOR
DEFINE LCD_LINES    2       'LCD 2 SATIRLIK
'LCD TANIMLAMALARI BİTİŞ
TRISA=%11111111 'PORT giriş-çıkış tanımalamları
TRISB=%10111111
PAUSE 500 'Ekranın hazır olması için biraz bekliyoruz.
LCDOUT $FE,$40,6,9,9,6,0,0,0,0 'Derece gösterimi için özel karakteri LCD'ye yüklüyoruz.
LCDOUT $FE,$48,4,0,14,4,4,4,14,0 'İ karakterini LCD'ye yüklüyoruz.
LCDOUT $FE,$50,0,0,4,4,4,4,4,0 'ı karakterini LCD'ye yüklüyoruz.
LCDOUT $FE,1,1,"didem" 'İlk satıra İzoelektronik yaz.
LCDOUT $FE,$C0,"kaya" 'İkinci satıra yaz.
PAUSE 3000  'Biraz bekle
LCDOUT $FE,1,"S",2,"cakl",2,"k:" 'Ekranı temizleyip, üst satıra Sıcaklık: yaz.
BASLA: 'Dongüye gir.
ISARET="+"
OWOUT SENSOR,1,[$CC,$44] 'Sensöre sıcaklığı okumasını söyle.
BEKLE: 'Sensör hazır olana kadar bekle.
OWIN SENSOR,4,[MESGUL]
IF MESGUL=0 THEN
GOTO BEKLE
ENDIF
DEVAM:
OWOUT SENSOR,1,[$CC,$BE] 'Sensöre okuduğu değeri göndermesini söyle.
OWIN SENSOR,0,[BILGI.LOWBYTE,BILGI.HIGHBYTE] 'Gelen 16 bitlik bilgiyi al.
IF BILGI.BIT13=1 THEN 'Sıcaklık negatif ise
ISARET="-" 'İşaret artık + değil -
BILGI=~BILGI 'Gelen bilgideki bitleri tersle, 1->0, 0->1
BILGI=BILGI+1 'Bilgiyi 1 arttır.
ENDIF
ARA=BILGI*625 
DEGER=DIV32 10000
ARA=BILGI*625
ONDA1= DIV32 1000
ARA=BILGI*625
ONDA2= DIV32 100
ONDA1=ONDA1-(DEGER*10)
ONDA2=ONDA2-((dEGER*100)+(ONDA1*10))
LCDOUT $FE,$C0,"          " 'LCD ekranın alt satırını temizle
LCDOUT $FE,$C0,ISARET,#DEGER,".",#ONDA1,#ONDA2," ",0,"C"
HIGH LED 'LEDi yakıp söndürerek döngünün bittiğini belirt.
PAUSE 200
LOW LED
PAUSE 800
GOTO BASLA 'BASLA etiketine dön
END
[/url] [/img]

ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com