Merhaba arkadaşlar ben devreye buton eklemek istiyorum...İki adet veya programa buton eklemek istiyorum..pic16f628a nin boş olan portlarina giriş yapmak istiyorum deger yukselten ve alçaltan alçaltan butonlarla sicaklik ayarlayacagim ayarladigim sicakligi ölçen sensör o sicaklikta ise başka bir porttaki fan çalişcak değilse çalişmiycak yardimlarinizi esirgemezseniz sevinirim SAYGİLARİMLA
@ 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
İstediğini yoladım e-mailine,
Kolay Gelsin
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme