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.
(http://s16.postimg.cc/nz47lmy8h/3_eepromlu_devre.jpg) (http://postimg.cc/image/nz47lmy8h/)