Ynt: Program kodu doğru çalışmıyor!...

Başlatan Huseyin27, 24 Eylül 2014, 02:38:00

Huseyin27

Arkadaşlar pic16f84a harici eeprom ile wav player uygulamasındaki 2 buton ile 2 ayrı wav ses dosyası okuyucu proje çalışmasını 3 buton ile 3 adet eeprom uygulaması olarak düzenlemek istedim ve düzgün çalışmadı yardımcı olabilirmisiniz? Pic üzerinde sadece porta.2 girişi boş kalmış ve o giriş pinini kullanıyorum.Orjinal kodları, hazırladağım kodu ve simülasyon çalışmasını ekliyorum. Saygılar..

mesaj birleştirme:: 25 Eylül 2014, 05:15:48

orjinal kod


;**********************************************************************
;                                                                      *
;   PIC Parlant 16F84   eprat n°277 p48                                *
;                                                                     *
;**********************************************************************
;                                                                     *
;    NOM:      PICPRL                                                 *
;    Date:     27/10/2003                                             *
;    Version:  1.0                                                    *
;    Circuit:                                                         *
;    Auteur:   ETRONICS                                                  *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes: ajout d' un 2em circuit son                                 *
;                                                                     *
;**********************************************************************


   LIST      p=16F84A            ; Définition de processeur
   #include <p16F84A.inc>        ; Définitions de variables

   __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

   errorlevel -302
   



;REGISTRES---------------------------------


BOOLEEN   EQU   H'0C'
ADD_I2C   EQU   H'0D'
ADD_HAUT   EQU   H'0E'
ADD_BAS   EQU   H'0F'
OCTET      EQU   H'10'
VALEUR   EQU   H'11'
I         EQU   H'12'
VBFOR1   EQU   H'13'



SCL      EQU   3
SDA      EQU    4
I2CACK   EQU   0

   ORG       0
INIT   BSF    STATUS, RP0
      MOVLW   B'00000011'
      MOVWF   PORTA
      MOVLW   B'00000000'
      MOVWF   PORTB
      BCF    STATUS, RP0
      BCF    PORTB,0 
      BSF   PORTA,SCL 
      BSF   PORTA,SDA
      CLRF  BOOLEEN 

PRIN   BTFSC PORTA,0
      GOTO   PRIN2
      GOTO   SON1
PRIN2   BTFSC PORTA,1
      GOTO   PRIN
      GOTO   SON2

SON1   MOVLW   H'00'
      MOVWF   ADD_HAUT
      MOVLW   H'00'
      MOVWF   ADD_BAS
      MOVLW   H'A0'         ;A0 adresse du 1er circuit i2c
      MOVWF   ADD_I2C

      CALL   ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      ADDLW   H'01'
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
BOUC1   CALL   LIS_OCTET
      CALL   SETACK
      MOVF   OCTET,0
      MOVWF   PORTB
      INCF    ADD_BAS,1
      BTFSC STATUS,Z
      INCF    ADD_HAUT,1
      BTFSC ADD_HAUT,7
      GOTO   PRIN
      GOTO   BOUC1
      GOTO   FIN

SON2   MOVLW   H'00'
      MOVWF   ADD_HAUT
      MOVLW   H'00'
      MOVWF   ADD_BAS
      MOVLW   H'A2'         ;A2 adresse du 2em circuit i2c
      MOVWF   ADD_I2C

      CALL   ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      ADDLW   H'01'
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
BOUC2   CALL   LIS_OCTET
      CALL   SETACK
      MOVF   OCTET,0
      MOVWF   PORTB
      INCF    ADD_BAS,1
      BTFSC STATUS,Z
      INCF    ADD_HAUT,1
      BTFSC ADD_HAUT,7
      GOTO   PRIN
      GOTO   BOUC2
      GOTO   FIN




;ECRI_EEP
;      CALL   ADRESSAGE
;      MOVF   VALEUR,0
;      MOVWF   OCTET
;      CALL   ENV_OCTET
;      CALL   GETACK
;      CALL   STOP
;      RETURN

ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      MOVF   ADD_HAUT,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      MOVF   ADD_BAS,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      RETURN

;LIRE_EEP
;      CALL   ADRESSAGE
;      CALL   START
;      MOVF   ADD_I2C,0
;      ADDLW   H'01'
;      MOVWF   OCTET
;      CALL   ENV_OCTET
;      CALL   GETACK
;      CALL   LIS_OCTET
;      CALL   NOACK
;      CALL   STOP
;      RETURN

START BSF   PORTA,SCL  ; AU DEBUT, SCL
      BSF   PORTA,SDA  ; ET SDA SONT A '1'.
      CALL   TEMPO5US
      BCF   PORTA,SDA
      CALL   TEMPO5US
      BCF   PORTA,SCL
      CALL   TEMPO5US
      BSF   PORTA,SDA
      RETURN

STOP   BCF   PORTA,SCL  ; AU DEBUT, SCL
      BCF   PORTA,SDA  ; ET SDA SONT A '0'.
      CALL   TEMPO5US
      BSF   PORTA,SCL
      CALL   TEMPO5US
      BSF   PORTA,SDA
      CALL   TEMPO5US
      RETURN

ENV_OCTET
      MOVLW   H'01'
      MOVWF   I
      SUBLW   H'08'
      MOVWF   VBFOR1
      INCF   VBFOR1,1
SP_FOR1   NOP
      BCF   PORTA,SCL 
      BTFSS OCTET,7     
      BCF   PORTA,SDA     
      BTFSC OCTET,7 
      BSF   PORTA,SDA
      CALL   TEMPO5US
      BSF   PORTA,SCL 
      CALL   TEMPO5US
      BCF   PORTA,SCL      ;
      RLF   OCTET,1   
      INCF   I,1
      DECFSZ   VBFOR1,1
      GOTO   SP_FOR1
      BSF   PORTA,SDA   
      RETURN

LIS_OCTET
      CLRF   OCTET     
      MOVLW   H'08'
      MOVWF   I
      BCF   PORTA,SCL     ;- SCL MIS A '0'.
SP_B   BSF   PORTA,SDA     ;- SDA MIS A '1'
      NOP
      BSF   PORTA,SCL     ;- SCL PASSE A '1'.
      RLF   OCTET,1     
      BCF   OCTET,0   
      NOP
      BTFSC PORTA,SDA   
      BSF   OCTET,0 
      BCF   PORTA,SCL     ;- SCL MIS A '0'.
      DECFSZ   I,1
      GOTO   SP_B
      BCF   PORTA,SCL   
      RETURN

GETACK   
      BSF    PORTA,SDA     
      BCF   PORTA,SCL     
      CALL   TEMPO5US
      BSF   PORTA,SCL   
      CALL   TEMPO5US
      BCF   BOOLEEN,I2CACK 
      BTFSS PORTA,SDA   
      BSF   BOOLEEN,I2CACK
      BCF   PORTA,SCL 
      RETURN

SETACK
      BCF     PORTA,SDA
      BSF   PORTA,SCL
      NOP
      NOP
      NOP
      BCF   PORTA,SCL
      NOP
      BSF   PORTA,SDA
      RETURN

NOACK   BCF   PORTA,SCL
      BSF   PORTA,SDA
      CALL   TEMPO5US
      BSF   PORTA,SCL
      CALL   TEMPO5US
      BCF   PORTA,SCL
      RETURN

TEMPO5US   NOP     
      RETURN

FIN   NOP
      BSF   PORTB,0
      NOP

   END

orjinal proje hex kodu:

:020000040000FA
:1000000083160330850000308600831206108515A4
:1000100005168C0105180D28102885180A2828288F
:1000200000308E0000308F00A0308D0040204E2028
:100030000D08013E90005F20852074208F2010085D
:1000400086008F0A03198E0A8E1B0A281D28A128F4
:1000500000308E0000308F00A2308D0040204E20F6
:100060000D08013E90005F20852074208F2010082D
:1000700086008F0A03198E0A8E1B0A283528A128AC
:100080004E200D0890005F2085200E0890005F2014
:1000900085200F0890005F20852008008515051633
:1000A0009F2005129F2085119F20051608008511AD
:1000B00005129F2085159F2005169F2008000130FE
:1000C0009200083C9300930A00008511901F0512CE
:1000D000901B05169F2085159F208511900D920A73
:1000E000930B6428051608009001083092008511D2
:1000F000051600008515900D10100000051A10144B
:100100008511920B782885110800051685119F200E
:1001100085159F200C10051E0C1485110800051272
:10012000851500000000000085110000051608007C
:10013000851105169F2085159F2085110800000058
:08014000080000000614000095
:02400E00F23F7F
:00000001FF


beni düzenlediğim kod


;**********************************************************************
;                                                                      *
;   PIC Parlant 16F84   eprat n°277 p48                                *
;                                                                     *
;**********************************************************************
;                                                                     *
;    NOM:      PICPRL                                                 *
;    Date:     27/10/2003                                             *
;    Version:  1.0                                                    *
;    Circuit:                                                         *
;    Auteur:   ETRONICS                                                  *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes: ajout d' un 2em circuit son                                 *
;                                                                     *
;**********************************************************************


   LIST      p=16F84A            ; Définition de processeur
   #include <p16F84A.inc>        ; Définitions de variables

   __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

   errorlevel -302
   



;REGISTRES---------------------------------


BOOLEEN      EQU   H'0C'
ADD_I2C      EQU   H'0D'
ADD_HAUT   EQU   H'0E'
ADD_BAS       EQU   H'0F'
OCTET       EQU   H'10'
VALEUR      EQU   H'11'
I         EQU   H'12'
VBFOR1      EQU   H'13'



SCL      EQU     3
SDA      EQU    4
I2CACK   EQU     0

   ORG       0
INIT   BSF    STATUS, RP0
      MOVLW   B'00000111'
      MOVWF   PORTA
      MOVLW   B'00000000'
      MOVWF   PORTB
      BCF    STATUS, RP0
      BCF    PORTB,0 
      BSF     PORTA,SCL 
      BSF     PORTA,SDA
      CLRF    BOOLEEN 
 
PRIN   BTFSC   PORTA,0
      GOTO   PRIN2
      GOTO   SON1
PRIN2   BTFSC   PORTA,1
      GOTO   PRIN3
      GOTO   SON2
PRIN3   BTFSC   PORTA,2
      GOTO   PRIN
      GOTO   SON3


SON1   MOVLW   H'00'
      MOVWF   ADD_HAUT
      MOVLW   H'00'
      MOVWF   ADD_BAS
      MOVLW   H'A0'         ;A0 adresse du 1er circuit i2c
      MOVWF   ADD_I2C

      CALL   ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      ADDLW   H'01'
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK

BOUC1   CALL   LIS_OCTET
      CALL   SETACK
      MOVF   OCTET,0
      MOVWF   PORTB
      INCF    ADD_BAS,1
      BTFSC   STATUS,Z
      INCF    ADD_HAUT,1
      BTFSC   ADD_HAUT,7
      GOTO   PRIN
      GOTO   BOUC1
      GOTO   FIN

SON2   MOVLW   H'00'
      MOVWF   ADD_HAUT
      MOVLW   H'00'
      MOVWF   ADD_BAS
      MOVLW   H'A2'         ;A2 adresse du 2em circuit i2c
      MOVWF   ADD_I2C

      CALL   ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      ADDLW   H'01'
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK

BOUC2   CALL   LIS_OCTET
      CALL   SETACK
      MOVF   OCTET,0
      MOVWF   PORTB
      INCF    ADD_BAS,1
      BTFSC   STATUS,Z
      INCF    ADD_HAUT,1
      BTFSC   ADD_HAUT,7
      GOTO   PRIN
      GOTO   BOUC2
      GOTO   FIN

SON3   MOVLW   H'00'
      MOVWF   ADD_HAUT
      MOVLW   H'00'
      MOVWF   ADD_BAS
      MOVLW   H'A3'         ;A2 adresse du 2em circuit i2c
      MOVWF   ADD_I2C

      CALL   ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      ADDLW   H'01'
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK

BOUC3   CALL   LIS_OCTET
      CALL   SETACK
      MOVF   OCTET,0
      MOVWF   PORTB
      INCF    ADD_BAS,1
      BTFSC   STATUS,Z
      INCF    ADD_HAUT,1
      BTFSC   ADD_HAUT,7
      GOTO   PRIN
      GOTO   BOUC3
      GOTO   FIN



;ECRI_EEP
;      CALL   ADRESSAGE
;      MOVF   VALEUR,0
;      MOVWF   OCTET
;      CALL   ENV_OCTET
;      CALL   GETACK
;      CALL   STOP
;      RETURN

ADRESSAGE
      CALL   START
      MOVF   ADD_I2C,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      MOVF   ADD_HAUT,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      MOVF   ADD_BAS,0
      MOVWF   OCTET
      CALL   ENV_OCTET
      CALL   GETACK
      RETURN

;LIRE_EEP
;      CALL   ADRESSAGE
;      CALL   START
;      MOVF   ADD_I2C,0
;      ADDLW   H'01'
;      MOVWF   OCTET
;      CALL   ENV_OCTET
;      CALL   GETACK
;      CALL   LIS_OCTET
;      CALL   NOACK
;      CALL   STOP
;      RETURN

START BSF   PORTA,SCL  ; AU DEBUT, SCL
      BSF   PORTA,SDA  ; ET SDA SONT A '1'.
      CALL   TEMPO5US
      BCF   PORTA,SDA
      CALL   TEMPO5US
      BCF   PORTA,SCL
      CALL   TEMPO5US
      BSF   PORTA,SDA
      RETURN

STOP   BCF   PORTA,SCL  ; AU DEBUT, SCL
      BCF   PORTA,SDA  ; ET SDA SONT A '0'.
      CALL   TEMPO5US
      BSF   PORTA,SCL
      CALL   TEMPO5US
      BSF   PORTA,SDA
      CALL   TEMPO5US
      RETURN

ENV_OCTET
      MOVLW   H'01'
      MOVWF   I
      SUBLW   H'08'
      MOVWF   VBFOR1
      INCF   VBFOR1,1
SP_FOR1   NOP
      BCF     PORTA,SCL 
      BTFSS   OCTET,7     
      BCF     PORTA,SDA     
      BTFSC   OCTET,7 
      BSF     PORTA,SDA
      CALL    TEMPO5US
      BSF     PORTA,SCL 
      CALL    TEMPO5US
      BCF     PORTA,SCL      ;
      RLF     OCTET,1   
      INCF   I,1
      DECFSZ   VBFOR1,1
      GOTO   SP_FOR1
      BSF     PORTA,SDA   
      RETURN

LIS_OCTET
      CLRF   OCTET     
      MOVLW   H'08'
      MOVWF   I
      BCF     PORTA,SCL     ;- SCL MIS A '0'.
SP_B   BSF     PORTA,SDA     ;- SDA MIS A '1'
      NOP
      BSF     PORTA,SCL     ;- SCL PASSE A '1'.
      RLF     OCTET,1     
      BCF     OCTET,0   
      NOP
      BTFSC   PORTA,SDA   
      BSF     OCTET,0 
      BCF     PORTA,SCL     ;- SCL MIS A '0'.
      DECFSZ   I,1
      GOTO   SP_B
      BCF     PORTA,SCL   
      RETURN

GETACK   
      BSF    PORTA,SDA     
      BCF     PORTA,SCL     
      CALL   TEMPO5US
      BSF     PORTA,SCL   
      CALL   TEMPO5US
      BCF     BOOLEEN,I2CACK 
      BTFSS   PORTA,SDA   
      BSF     BOOLEEN,I2CACK
      BCF     PORTA,SCL 
      RETURN

SETACK
      BCF     PORTA,SDA
      BSF     PORTA,SCL
      NOP
      NOP
      NOP
      BCF     PORTA,SCL
      NOP
      BSF     PORTA,SDA
        NOP
        BCF     PORTA,SCL
      NOP
      BSF     PORTA,SDA
      RETURN

NOACK   BCF     PORTA,SCL
      BSF     PORTA,SDA
      CALL   TEMPO5US
      BSF     PORTA,SCL
      CALL   TEMPO5US
      BCF     PORTA,SCL
      RETURN

TEMPO5US   NOP     
      RETURN

FIN   NOP
      BSF   PORTB,0
      NOP

   END

deneme hex kodu:
:020000040000FA
:1000000083160730850000308600831206108515A0
:1000100005168C0105180D281328851810282B2883
:1000200005190A28432800308E0000308F00A030C8
:100030008D005B2069200D08013E90007A20A020F1
:100040008F20AA20100886008F0A03198E0A8E1BA3
:100050000A282028C02800308E0000308F00A230EF
:100060008D005B2069200D08013E90007A20A020C1
:100070008F20AA20100886008F0A03198E0A8E1B73
:100080000A283828C02800308E0000308F00A330A6
:100090008D005B2069200D08013E90007A20A02091
:1000A0008F20AA20100886008F0A03198E0A8E1B43
:1000B0000A285028C02869200D0890007A20A02026
:1000C0000E0890007A20A0200F0890007A20A0202F
:1000D000080085150516BE200512BE208511BE201C
:1000E0000516080085110512BE208515BE200516CF
:1000F000BE20080001309200083C9300930A0000E3
:100100008511901F0512901B0516BE208515BE2077
:100110008511900D920A930B7F2805160800900117
:10012000083092008511051600008515900D1010FD
:100130000000051A10148511920B932885110800F0
:1001400005168511BE208515BE200C10051E0C1449
:1001500085110800051285150000000000008511BA
:100160000000051600008511000005160800851125
:100170000516BE208515BE20851108000000080068
:060180000000061400005F
:02400E00F13F80
:00000001FF





mesaj birleştirme:: 24 Eylül 2014, 03:27:45

isis dosyasını ve rar uzantılı dosyaları siteye nasıl ekliyoruz. Açık şemasını resim olarak ekliyorum.