pic ile ilgili klima devresi sorunu

Başlatan kuboelekt, 04 Haziran 2009, 18:41:59

kuboelekt

arkadaşlar pic ile klima devresi var elimde ödev olarak hazırlayacağım komutlarında sorun yok fakat ! devre similasyonun da sorun var yardım edebilecek olursa devre şemasını yollarım hatayı bulsam da düzeltemiyorum pazartesiye hazırlamam gerek lütfen yardım edin.

Maxim

beklemeyin devre şema ve kodları ne varsa verin, birileri yardım edebilir

solidus

ben yardım etmeye hazırım ama hiç bir malzeme olmadan ne yapılabilirki
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

kuboelekt

nasıl ekleyebilirim elimde lan bilgileri
buraya

kuboelekt

; 05/02/2003 Çarşamba
; Faik Ecer'e yaptığım sıcaklık kontrol devresi
; tuşlarla ayarlanan sıcaklıkta sabit kalmaya çalışır

   LIST   P=16F877
   INCLUDE   <P16F877.INC>
   ERRORLEVEL   -302
   __CONFIG _CP_ALL & _DEBUG_OFF & _BODEN_ON & _WRT_ENABLE_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF
;PORTE,    RE0 ISITICI
;   RE1 FAN
;   RE2 Ayar/Calisma Gostergesi
;PORTA,   RA0 Analog Input
;   RA1 Inc butonu
;   RA2 Dec butonu
;   RA3 Ayar/Calisma butonu
;   RA4 NOT USED
;   RA5 NORMAL/ABNORMAL GÖSTERGESİ
;PORTD,B   Displayler
;PORTC   Computer Terminal (Not Used)

Katsayı   EQU   0x20
Sayac1   EQU   0x21
Sayac2   EQU   0x22
Temp   EQU   0x23
VSetTemp   EQU   0x24
VCurrentTemp   EQU   0x25
Config   EQU   0x26
;Config Register Bit Description
;bit 0 0=Ayar
;bit   1=Çalış

ISITICI   EQU   0x00
FAN   EQU   0x01
LedFan   EQU   0x05
LedIsıtıcı   EQU   0x04
LedAyarOn   EQU   0x02
   org   H'0000'
   goto   Starter
   org   H'0004'    ;
   retfie


   org   H'0005'
Starter
   call   Init
         ;default sicaklik set degeri 25decimal derece
   movlw   0x19   ;19 Hex  25 decimal sıcaklık değeri 25 derece
   movwf   VSetTemp
Start
   call   ScanKeys
   btfss   Config,0x00
   goto   LAyar
   goto   LÇalış
LAyar
   bcf   PORTE,0x02
   movf   VSetTemp,W
   call   Display
   goto   Start

LÇalış
   bsf   PORTE,0x02
   call   ReadTh
   movf   VCurrentTemp,W
   call   Display
   call   AdjustTemp
   call   Gecikme
   goto   Start
ScanKeys
   btfss   PORTA,0x01
   goto   Tuş1Basılı
   
   btfsc   Config,0x00      ;Çalışıyorsan dön
   return         ;ayarlıyorsan
   btfss   PORTA,0x02      ;ayarla
   goto   Tuş2Basılı
   btfss   PORTA,0x03      ;ayarla
   goto   Tuş3Basılı
   return

Tuş3Basılı
   btfss   PORTA,0x03
   goto   Tuş3Basılı
   decf   VSetTemp,F
   return
Tuş2Basılı
   btfss   PORTA,0x02
   goto   Tuş2Basılı
   incf   VSetTemp,F
   return


   
Tuş1Basılı
   btfss   PORTA,0x01
   goto   Tuş1Basılı
   btfss   Config,0x00
   goto   Cur0Make1
   goto   Cur1Make0
Cur1Make0
   bcf   Config,0x00
   return
Cur0Make1
   bsf   Config,0x00
   return




AdjustTemp
   movf   VSetTemp,W
   subwf   VCurrentTemp,W
   btfsc   STATUS,Z
   goto   AdjustOK
   btfss   STATUS,C   ;curr-setval
   goto   PullUp   ;result is negative, current temp az isit
   goto   PullDown   ;result is positive, currenttemp fazla sogut
PullUp
   bsf   PORTE,ISITICI
   bcf   PORTE,FAN
   bsf   PORTA,0x05

   goto   SonAdjustTemp
PullDown
   bcf   PORTE,ISITICI
   bsf   PORTE,FAN
   bsf   PORTA,0x05
   goto   SonAdjustTemp
AdjustOK
   bcf   PORTE,ISITICI
   bcf   PORTE,FAN
   bcf   PORTA,0x05
   goto   SonAdjustTemp
SonAdjustTemp
   return

ReadTh
            ; TERMISTOR OKUNUYOR
   MOVLW   B'01000001'   ;fosc/8,CHANNEL0, AD ENABLED
   MOVWF   ADCON0
   BSF   ADCON0,GO   ;RA0 ANALOG GIRIS OKUNUYOR
   BTFSS   PIR1,ADIF
   GOTO   $-1
;   MOVF   ADRESH,W
   MOVF   Katsayı,W      ; 2.50V 20DERECEDIR.
   SUBWF   ADRESH,W   ; OKUDUĞUMUZ H'6B' DEĞERI BIZIM 0 DERECEMIZDIR,   
   movwf   VCurrentTemp   ;Hex sıcaklık değeri

   movlw   0x00   ; alt sınır kontrolü
   subwf   VCurrentTemp,W
   btfsc   STATUS,Z
   goto   FixDown

   movlw   0x99
   subwf   VCurrentTemp,W
   btfsc   STATUS,C
   goto   FixUp
   goto   ReadSon
FixUp
   movlw   0x99
   movwf   VCurrentTemp
   goto   ReadSon
FixDown
   movlw   0x00
   movwf   VCurrentTemp
ReadSon
   RETURN



Init
   BCF   STATUS,RP0   ;BANK0'A GECILIYOR
   BCF   STATUS,RP1   
   MOVLW   H'FF'      ;DISPLAYLER SONUK DURUMDA
   MOVWF   PORTB
   MOVWF   PORTD
   MOVLW   0x59      ; SICAKLIK ICIN DUZELTME KATSAYISI
   MOVWF   Katsayı

   BSF   STATUS,RP0   ;BANK1'E GECILIYOR
   BCF   STATUS,RP1
   MOVLW   B'00001110'   ;LEFT JUSTIFIED, RA0 ANALOG INPUT
   MOVWF   ADCON1
   movlw   B'00001111'
   movwf   TRISA
   CLRF   TRISB      ;PORTB CIKIS DISPLAYHIGH
   clrf   TRISC
   CLRF   TRISE      ;PORTE CIKIS RELAYLERE
   CLRF   TRISD      ;PORTD CIKIS DISPLAYLOW
   BCF   STATUS,RP0   ;BANK0 SECILIYOR
   BCF   STATUS,RP1
   CLRF   PORTE
   MOVLW   H'6B'      ; SICAKLIK ICIN DUZELTME KATSAYISI
   MOVWF   Katsayı
   clrf   PORTA
   clrf   PORTB
   clrf   PORTC
   clrf   PORTD
   clrf   PORTE
   clrf   Config
   bsf   Config,0x00
   return

Gecikme
   MOVLW   H'FF'
   MOVWF   Sayac1
   MOVLW   H'FF'
   MOVWF   Sayac2
   DECFSZ   Sayac2,F
   GOTO   $-1
   DECFSZ   Sayac1,F
   GOTO   $-5
   RETURN

Display
;   movf   VCurrentTemp,W
   CALL   CEVTEMP
   MOVWF   Temp
   ANDLW   H'0F'
   CALL   CEVSEGMENT
   MOVWF   PORTD
   SWAPF   Temp,W
   ANDLW   H'0F'
   CALL   CEVSEGMENT
   MOVWF   PORTB
   RETURN




CEVSEGMENT
   ADDWF   PCL,F
   RETLW   H'40'   ;0
   RETLW   H'F9'   ;1
   RETLW   H'24'   ;2
   RETLW   H'30'   ;3
   RETLW   H'99'   ;4
   RETLW   H'12'   ;5
   RETLW   H'02'   ;6
   RETLW   H'F8'   ;7
   RETLW   H'00'   ;8
   RETLW   H'10'   ;9

CEVTEMP
;   movf   VCurrentTemp,W
   ADDWF   PCL,F      ; TABLODA ILK GERI DONECEK DEĞER 00 OLACAKTIR
   RETLW   H'00'
   RETLW   H'01'
   RETLW   H'02'
   RETLW   H'03'
   RETLW   H'04'
   RETLW   H'05'
   RETLW   H'06'
   RETLW   H'07'
   RETLW   H'08'
   RETLW   H'09'
   RETLW   H'10'
   RETLW   H'11'
   RETLW   H'12'
   RETLW   H'13'
   RETLW   H'14'
   RETLW   H'15'
   RETLW   H'16'
   RETLW   H'17'
   RETLW   H'18'
   RETLW   H'19'
   RETLW   H'20'
   RETLW   H'21'
   RETLW   H'22'
   RETLW   H'23'
   RETLW   H'24'
   RETLW   H'25'
   RETLW   H'26'
   RETLW   H'27'
   RETLW   H'28'
   RETLW   H'29'
   RETLW   H'30'
   RETLW   H'31'
   RETLW   H'32'
   RETLW   H'33'
   RETLW   H'34'
   RETLW   H'35'
   RETLW   H'36'
   RETLW   H'37'
   RETLW   H'38'
   RETLW   H'39'
   RETLW   H'40'
   RETLW   H'41'
   RETLW   H'42'
   RETLW   H'43'
   RETLW   H'44'
   RETLW   H'45'
   RETLW   H'46'
   RETLW   H'47'
   RETLW   H'48'
   RETLW   H'49'
   RETLW   H'50'
   RETLW   H'51'
   RETLW   H'52'
   RETLW   H'53'
   RETLW   H'54'
   RETLW   H'55'
   RETLW   H'56'
   RETLW   H'57'
   RETLW   H'58'
   RETLW   H'59'
   RETLW   H'60'
   RETLW   H'61'
   RETLW   H'62'
   RETLW   H'63'
   RETLW   H'64'
   RETLW   H'65'
   RETLW   H'66'
   RETLW   H'67'
   RETLW   H'68'
   RETLW   H'69'
   RETLW   H'70'
   RETLW   H'71'
   RETLW   H'72'
   RETLW   H'73'
   RETLW   H'74'
   RETLW   H'75'
   RETLW   H'76'
   RETLW   H'77'
   RETLW   H'78'
   RETLW   H'79'
   RETLW   H'80'
   RETLW   H'81'
   RETLW   H'82'
   RETLW   H'83'
   RETLW   H'84'
   RETLW   H'85'
   RETLW   H'86'
   RETLW   H'87'
   RETLW   H'88'
   RETLW   H'89'
   RETLW   H'90'
   RETLW   H'91'
   RETLW   H'92'
   RETLW   H'93'
   RETLW   H'94'
   RETLW   H'95'
   RETLW   H'96'
   RETLW   H'97'
   RETLW   H'98'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   RETLW   H'99'
   END


komutlar bu şekildee proteus devresini nasıl gösterebilirim size