[Programmation] modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628 - Page 2
Répondre à la discussion
Page 2 sur 7 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 208

modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628



  1. #31
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628


    ------

    lm393
    pin 2 (-) ==>0.877v
    pin 3 (+) ==>1.188v


    pin 6 (-)==>0.877v
    pin 5 (+) ==>1.188v
    s'il s'agit de ça

    -----

  2. #32
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    oui mais il faut voir au scope si le signal bascule.
    Le niveau 0 doit être inférieur à 0.8V
    et en sortie des AOP on doit voir les signaux sur 0V-5V

    Tu as bien un scope ?
    A+, pat

  3. #33
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    Citation Envoyé par freepicbasic Voir le message
    oui mais il faut voir au scope si le signal bascule.
    je ne demande pas mieux

    Le niveau 0 doit être inférieur à 0.8V
    ???????????????????

    et en sortie des AOP on doit voir les signaux sur 0V-5V
    lm393 pin 1 et pin 7????????????????????

    Citation Envoyé par freepicbasic Voir le message
    Tu as bien un scope ?
    oui

  4. #34
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    lm393 pin 1 et pin 7????????????????????
    oui !
    voir avec le scope

    Le clock envoie une salve de 8 pulses pour 1 octets
    Le data des 1 et des 0

    Le fait que le contrôleur lit la même tension est suspect !
    Le data n'a pas le même nombre de pulses
    A+, pat

  5. #35
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Le niveau logique , sur cette image c est la ligne rouge , sur ton montage c est 0.8V déterminé par la 47K et la 10K
    http://yann.lelogeais.free.fr/scienc...de_schmitt.gif

    en haut l'entrée entre 0 et 1.5V en bas la sortie de l'AOP entre 0 et 5V.
    A+, pat

  6. #36
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Je vais regarder le soft il y a eu des warnings , je pense qu'il y a des trucs louches avec la conversion.
    A+, pat

  7. #37
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Citation Envoyé par freepicbasic Voir le message
    Le niveau logique , sur cette image c est la ligne rouge , sur ton montage c est 0.8V déterminé par la 47K et la 10K
    http://yann.lelogeais.free.fr/scienc...de_schmitt.gif.
    je dois en plus du reste avoir un pb avec les couleurs. luckyluckynien quoi! non que je suis bête dalton nien
    lm393 et triggler de schmitt, ça s’assombrit pour moi, lm393 comparateur double .............????????????

  8. #38
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Les adresses RAM était mauvaises
    LVP_OFF et BODEN_OFF

    Code:
    PROCESSOR 16F628
    		
    		#include <P16F628.INC>
    
    
    	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF &_BODEN_OFF
    
    	CBLOCK 0x20
    
    		Delay
    		X_Delay
    		Temp
    		Ctrl
    		Char
    		SignFlag
    		TempByte2
    		rData
    
    	ENDC
    	
    LCD_PORT	EQU	PORTB
    LCD_TRIS	EQU	TRISB
    Cmd			EQU	Char
    rBin		EQU	rData+4
    rBCD		EQU	rData
    rCnt		EQU	Char
    rPto		EQU	TempByte2
    rPti		EQU	Ctrl
    mFactor		EQU	Char
    rProduct	EQU	rData+4
    TempByte	EQU	Temp
    rBitCnt		EQU	Ctrl
    rDataCnt	EQU	Char
    TempW		EQU	Temp
    TempS		EQU	TempByte
    
    #define	Clock	PORTA, 3
    #define	Data	PORTA, 4
    #define	E		PORTB, 1
    #define	RW		PORTB, 2
    #define	RS		PORTB, 3
    #define	RL		PORTA, 0
    	
    	
    
    Start	ORG 0
    		GOTO Main
    
    Interrupt	ORG 4
    			GOTO ISR
    
    Main	
    		CLRF	PORTA		;
    		CLRF	PORTB		;
    		MOVLW	7
    		MOVWF	CMCON
    		BSF		STATUS, RP0	;
    		MOVLW	B'00000001'	;
    		MOVWF	TRISB		;
    		
    		MOVLW	B'00011000'	;
    		MOVWF	TRISA		;
    		
    		MOVLW	B'00000000'	;
    		MOVWF	OPTION_REG	;
    		BCF		STATUS, RP0	;
    		MOVLW	D'200'		;
    		CALL	X_Delay100	;
    		MOVLW	0x30		;
    		IORWF	LCD_PORT 	;
    		CALL	Toggle_E	;
    		MOVLW	D'50'		;
    		CALL	X_Delay100	;
    		CALL	Toggle_E	;
    		MOVLW	D'1'		;
    		CALL	X_Delay100	;
    		CALL	Toggle_E	;
    		MOVF	LCD_PORT, W	;Get lower nibble of PORTB
    		ANDLW	0x0f		;
    		MOVWF	Ctrl		;
    		MOVLW	0x20		;
    		IORWf	Ctrl,W	;
    		MOVWF	LCD_PORT	;
    		CALL	Toggle_E	;
    		MOVLW	0x20		;Set datalength to 4, 1 line, 5x7 font
    		CALL	Send_Cmd	;
    		MOVLW	0x0c		;
    		CALL	Send_Cmd	;
    		MOVLW	0x06		;
    		CALL	Send_Cmd	;
    		MOVLW	0x03		;
    		CALL	Send_Cmd	;
    		MOVLW	'm'			;
    		MOVWF	rData+0x0f	;
    		MOVLW	'm'			;
    		MOVWF	rData+0x0e	;
    		MOVLW	' '			;
    		MOVWF	rData+0x0d	;
    		MOVLW	B'10010000'	;
    		MOVWF	INTCON	;Initialise INTCON register
    
    Restart	BSF	INTCON,GIE		;Enable interrupts
    Repeat	CALL	GetData		;
    		CALL	FormatStr	;
    
    		MOVLW	0x80		; Cursor at 0x00
    		CALL	Send_Cmd	;
    
    		MOVLW	0x08		; Write first 8 chars
    		MOVWF	TempByte2	;
    		MOVLW	rData		;
    		MOVWF	FSR			;
    
    		CALL	Send_next_Char	;
    
    		MOVLW	0xc0		;Cursor at 0x40
    		CALL	Send_Cmd	;
    		
    		MOVLW	0x08		;Write second 8 chars
    		MOVWF	TempByte2	;
    		CALL	Send_next_Char	;
    
    		GOTO	Repeat		;
    
    Send_next_Char	MOVF	INDF, W	;
    				CALL	Write_Char	;
    				INCF	FSR		;
    				DECFSZ	TempByte2,1	;
    				GOTO	Send_next_Char	;
    				RETURN
    
    Write_Char	MOVWF	Char		; Character to be sent is in W
    			CALL	Check_BF	; Wait for LCD to be ready
    			MOVF	LCD_PORT, W	; Get lower nibble of PORTB
    			ANDLW	0x0F
    			MOVWF	Ctrl		;
    			MOVF	Char, W		;
    			ANDLW	0xF0		; Get upper nibble
    			IORWF	Ctrl,W		; Combine data with Ctrl
    			MOVWF	LCD_PORT	;
    			BCF		RW			; Set LCD to write
    			BSF		RS			; Set LCD to data mode
    			CALL	Toggle_E	;
    			MOVLW	0x0F		;
    			ANDWF	LCD_PORT	;
    			SWAPF	Char,W		;
    			ANDLW	0xF0		; Get lower nibble
    			IORWF	LCD_PORT
    			CALL	Toggle_E
    			RETURN
    
    Clear_Display	MOVLW	0x01	;
    				CALL	Send_Cmd	;
    				RETURN
    
    Send_Cmd	MOVWF	Cmd			;Put command byte in Temporary variable
    			CALL	Check_BF	;Check if LCD is ready
    			MOVF	LCD_PORT, W	;Get lower nibble of PORTB
    			ANDLW	0x0F		;
    			MOVWF	Ctrl		;
    			MOVF	Cmd, W		;
    			ANDLW	0xF0		;Get upper nibble
    			IORWF	Ctrl,W		;Combine command with Ctrl
    			MOVWF	LCD_PORT	;
    			BCF		RW			;
    			BCF		RS			;
    			CALL	Toggle_E	;
    			MOVLW	0x0F		;
    			ANDWF	LCD_PORT	;
    			SWAPF	Cmd,W		;Swap nibbles
    			ANDLW	0xF0		;
    			IORWF	LCD_PORT	;
    			CALL	Toggle_E	;
    			RETURN
    		
    Check_BF	BSF	STATUS, RP0	; Select bank 1
    			MOVLW	0xF0		; Make high nibble of PORTB output
    			IORWF	LCD_TRIS
    			BCF	STATUS, RP0	; Select bank 0
    			BCF	RS		; Set LCD for command mode
    			BSF	RW		; Setup to read busy flag
    			BSF	E		;
    			CALL	Delay100	;
    			MOVF	LCD_PORT, W	;Read upper nibble busy flag
    			BCF	E		;
    			ANDLW	0xF0		; Mask out lower nibble
    			MOVWF	Temp		;
    			CALL	Toggle_E	; "read" lower nibble
    			BTFSC	Temp, 7	; Check busy flag, high = busy
    			GOTO	Check_BF	; If busy, check again
    			BCF	RW
    			BSF	STATUS, RP0	; Select bank 1
    			MOVLW	0x0F		; Make high nibble of PORTB input
    			ANDWF	LCD_TRIS
    			BCF	STATUS, RP0	; Select bank 0
    			RETURN
    
    X_Delay100		MOVWF	X_Delay
    X_Delay100_LOOP	CALL	Delay100
    				DECFSZ	X_Delay,F
    				GOTO	X_Delay100_LOOP
    				RETURN	
    
    Delay100		MOVLW	D'80'		;100 microseconds timeDelay
    				MOVWF	Delay
    Delay100_LOOP	DECFSZ	Delay,F
    				GOTO	Delay100_LOOP
    				RETURN
    
    Toggle_E	BSF	E
    			NOP
    			BCF	E
    			RETURN
    
    GetData 	MOVLW	rData+5
    			MOVWF	FSR
    			MOVLW	6
    			MOVWF	rDataCnt
    			CLRF	rBitCnt
    			MOVLW	12
    Init		MOVWF	TempByte
    CountDown	BTFSC	Clock		; Check clock for low
    			GOTO	Init		; Clock high, start over again
    			DECFSZ 	TempByte	; Clock low, start countdown
    			GOTO	CountDown	;
    Get_Byte	BSF	rBitCnt,3		; Initialize bitcount to 8
    			CLRF	TempByte	; Initialize receiving byte
    Wait_Clock_High	BTFSS	Clock			; Check clock for high
    				GOTO	Wait_Clock_High	; Clock low, wait for clock to go high
    Clock_Low	BTFSC	Clock		; Clock high, wait for clock to go low
    			GOTO	Clock_Low	; 
    			BTFSC	Data		; Check data signal for low
    			BSF	STATUS,C		; Set Carry bit
    			RRF	TempByte,1		; Shift in a bit
    			DECFSZ	rBitCnt,1	; Decrement bitcounter
    			GOTO	Clock_High	; Repeat for next bit
    			GOTO	Save_Byte	; 8 bits done
    Clock_High	BTFSS	Clock		; Check clock for high
    			GOTO	Clock_High	; Clock high, wait for low
    			GOTO	Clock_Low	; Repeat waiting for clock low
    Save_Byte	MOVF	TempByte, W	; TempByte holds data
    			MOVWF	0		; Move data in rData
    			DECFSZ	FSR,1		; Point to next byte in rData
    			DECFSZ	rDataCnt,1	; Decrement datacounter
    			GOTO	Get_Byte	; Get next byte
    					; All bytes done
    			CLRF 	SignFlag	; Assume positive
    			BTFSS	rData,7		; Test if negative
    			GOTO	Not_Neg		; No...
    								;
    								; Sample is negative so make one's complement 
    			COMF	rData+2,F	;
    			COMF	rData+1,F	;
    			COMF	rData,F		;
    			BSF	SignFlag,0		; Flag negative
    								;
    Not_Neg		MOVLW	D'127'		; 127/1024 - MM
    			MOVWF	mFactor		;
    			MOVLW	D'10'		;
    			MOVWF	rBitCnt		; Setup bit count (N)
    								; --- 24 * N (frac) multiply, fractional not calculated
    			CLRF	rProduct	; Clear product
    			CLRF	rProduct+1	;
    			CLRF	rProduct+2	;
    								;
    MulNext		BCF	STATUS,C		; Shift in a 0
    			RRF	mFactor,F		; Get the lsb of multiplier
    			BTFSS	STATUS,C	; Check the lsb
    			GOTO	No_Add		; Clear...
    								; -- 24 bit add
    			MOVF	rData+2, W	; LSB
    			ADDWF	rProduct+2,F;
    								;
    			MOVF	rData+1, W	; Middle byte
    			BTFSC	STATUS,C	;
    			INCFSZ	rData+1,W	;
    			ADDWF	rProduct+1,F;
    								;
    			MOVF	rData, W	; MSB
    			BTFSC	STATUS,C	;
    			INCFSZ	rData,W		;
    			ADDWF	rProduct,F	;
    								;
    No_Add		RRF	rProduct,F		; Shift product
    			RRF	rProduct+1,F	;
    			RRF	rProduct+2,F	;
    								;
    			DECFSZ	rBitCnt,F	; Dec bit count
    			GOTO	MulNext		;
    			RETURN				;
    		
    FormatStr	BCF	STATUS,C
    			MOVLW	D'24'		; 24-Bits
    			MOVWF	rBitCnt		; Make cycle counter
    			CLRF	rBCD		; Clear result area
    			CLRF	rBCD+1		;
    			CLRF	rBCD+2		;
    			CLRF	rBCD+3		;
    
    Loop		MOVLW	rBCD
    			MOVWF	FSR
    			MOVLW	4
    			MOVWF	rCnt
    
    BintoBCD	MOVLW	0x33
    			ADDWF	INDF,F
    			BTFSC	INDF,3
    			ANDLW	0xF0
    			BTFSC	INDF,7
    			ANDLW	0x0F
    			SUBWF	INDF,F
    			INCF	FSR,F
    			DECFSZ	rCnt,F
    			GOTO	BintoBCD
    
    			RLF	rBin+2,F	; Get another bit
    			RLF	rBin+1,F	;
    			RLF	rBin+0,F	;
    			RLF	rBCD+3,F	; Put it into BCD
    			RLF	rBCD+2,F	;
    			RLF	rBCD+1,F	;
    			RLF	rBCD+0,F	;
    			DECFSZ	rBitCnt,F	; All done?
    			GOTO	Loop		; No, loop
    
    							; --- CONVERT THE 10 BINARY CODED DIGITS (5 BYTES) STARTING AT 
    							; <BCD> INTO AN ASCII STRING ALSO STARTING AT <BCD>. ORIGINAL
    							; BCD DIGITS ARE LOST.
    							;
    			MOVLW	rData+0x0C	;
    			MOVWF	rPto		; Destination pointer
    			MOVLW	rBCD+3		;
    			MOVWF	rPti		; Source pointer
    			CALL	BCDtoASCII	;
    								;
    			MOVLW	','			;
    			MOVWF	rData+0x0A	;
    								;
    			MOVLW	rData+0x09	;
    			MOVWF	rPto		; Destination pointer
    			MOVLW	rBCD+2		;
    			MOVWF	rPti		; Source pointer
    			MOVLW	3		; 3 Bytes to process
    			MOVWF	rCnt		;
    Next_BCD	CALL	BCDtoASCII	;
    			DECFSZ	rCnt,F		;
    			GOTO	Next_BCD	;
    			GOTO	Finish		;
    					;
    BCDtoASCII	MOVF	rPti,W		; Get current input pointer
    			MOVWF	FSR			;
    			DECF	rPti,F		; Prepare for next
    			MOVF	INDF,W		; Get 2 BCDS
    			MOVWF	TempByte	; Save for later
    			MOVF	rPto,W		; Get current output pointer
    			MOVWF	FSR			;
    			DECF	rPto,F		; Prepare for next
    			DECF	rPto,F		;
    			MOVF	TempByte,W	; Get digits back
    			ANDLW	0x0F		; Process LSD
    			MOVWF	INDF		;
    			MOVLW	'0'			;
    			ADDWF	INDF,F		; To output
    			DECF	FSR,F		;
    			SWAPF	TempByte,W	; Process MSD
    			ANDLW	0x0F		;
    			MOVWF	INDF		;
    			MOVLW	'0'			;
    			ADDWF	INDF,F		; To output
    			RETLW	0
    
    Finish		MOVLW	rData		;
    			MOVWF	FSR		;
    			MOVLW	4		;
    			MOVWF	rCnt		;
    			MOVLW	' '		;
    FillSpaces	MOVWF	INDF		;
    			INCF	FSR		;
    			DECFSZ	rCnt,1
    			GOTO	FillSpaces	;
    		
    			MOVLW	5			;
    			MOVWF	rCnt		;
    ReplaceZero	MOVLW	'0'			;
    			XORWF	INDF,W		;
    			BTFSS	STATUS,Z	;
    			GOTO	PutSign		;
    			MOVLW	' '			;
    			MOVWF	INDF		;
    			INCF	FSR			;
    			DECFSZ	rCnt,1		;
    			GOTO 	ReplaceZero	;
    PutSign		BTFSS	SignFlag,0	; Test if negative
    			GOTO	Done		; No sign to put
    			MOVLW	'-'			; Put negative sign before
    			DECF	FSR			;
    			MOVWF	INDF		;
    Done		RETURN
    		
    
    ISR			MOVWF	TempW		;store W temporarily
    			MOVF	STATUS,W	;get status in W
    			MOVWF	TempS		;store it temporarily
    		
    			BCF		INTCON,GIE	;disable further interrupts
    			BCF		INTCON,INTF	;disable interrupt from RB0
    			BSF		RL			;activate relay
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			MOVLW	D'250'		;
    			CALL	X_Delay100	;wait 25 ms
    			BCF		RL			;deactivate relay
    			MOVF	TempS,W		;put status back
    			MOVWF	STATUS
    			SWAPF	TempW,F		;put W back
    			SWAPF	TempW,W
    			GOTO	Restart
    			RETFIE
    
    			END
    Code:
    :020000040000FA
    :020000000528D1
    :0800080034298501860107304F
    :100010009F00831601308600183085000030810073
    :100020008312C830872030308604912032308720F8
    :10003000912001308720912006080F39A30020303D
    :1000400023048600912020305F200C305F20063092
    :100050005F2003305F206D30B6006D30B50020307A
    :10006000B40090308B008B179520D62080305F2015
    :100070000830A600273084004320C0305F200830BD
    :10008000A6004320342800084920840AA60B4328F0
    :100090000800A400722006080F39A3002408F039D4
    :1000A000230486000611861591200F308605240E44
    :1000B000F03986049120080001305F200800A40078
    :1000C000722006080F39A3002408F03923048600A3
    :1000D0000611861191200F308605240EF039860412
    :1000E000912008008316F0308604831286110615CD
    :1000F00086148C2006088610F039A2009120A21BDD
    :100100007228061183160F30860583120800A1009D
    :100110008C20A10B882808005030A000A00B8E284E
    :10012000080086140000861008002C308400063079
    :10013000A400A3011230A20085199B28A20B9C28C1
    :10014000A315A201851DA2288519A428051A031448
    :10015000A20CA30BAC28AF28851DAC28A42822082C
    :100160008000840BA40BA028A501A71FBB28A90908
    :10017000A809A70925147F30A4000A30A300AB0109
    :10018000AC01AD010310A40C031CD0282908AD0755
    :1001900028080318280FAC0727080318270FAB07F8
    :1001A000AB0CAC0CAD0CA30BC2280800031018302C
    :1001B000A300A701A801A901AA01273084000430E7
    :1001C000A400333080078019F039801B0F3980027A
    :1001D000840AA40BE128AD0DAC0DAB0DAA0DA90D41
    :1001E000A80DA70DA30BDD283330A6002A30A300ED
    :1001F00005212C30B1003030A6002930A300033097
    :10020000A4000521A40B01291A2923088400A303B3
    :100210000008A20026088400A603A60322080F39BE
    :100220008000303080078403220E0F398000303088
    :1002300080070034273084000430A4002030800080
    :10024000840AA40B1F290530A40030300006031DCA
    :100250002E2920308000840AA40B2529251C33294F
    :100260002D30840380000800A2000308A2008B1335
    :100270008B100514FA308720FA308720FA30872057
    :10028000FA308720FA308720FA30872005102208BC
    :0A0290008300A20E220E332809009D
    :02400E00223F4F
    :00000001FF
    A+, pat

  9. #39
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    lm393 et triggler de schmitt, ça s’assombrit pour moi, lm393 comparateur double .............????????????
    Laisse tomber ça revient au même.
    Le but est de mettre le signal à 5V pour le pic
    On a le choix entre AOP et circuit logique , dans ce cas l'AOP est plus adapté.

    Le prog était faux reflash le.
    A+, pat

  10. #40
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    ok,
    juste pour comprendre:

    le config word dans ton .hex c'est bien celui là ==>3F4F
    dans ic prog sa valeur est avec juste pwrt et mclr ==>3f22h
    Images attachées Images attachées  

  11. #41
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    le .hex est dans le pic, pas de changement au niveau de l'afficheur, le seul changement c'est que lorsque j'actionne S1, le régulateur, que j'ai adjoints au montage initial, pour avoir du 5v, se met à chauffer, cc, erreur de branchement ... .???????????
    le programme active maintenant la pin 17 du pic lors de l'appui bref sur S1, mais ce qui suit est étrange (pour moi) je vérifierais mon câblage, demain.
    merci beaucoup, je te tiendrais informé.
    bonne nuit
    cordialement

  12. #42
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Vu que ça réagit , je pense que la compilation est bonne.

    Si ça chauffe ce n'est pas soft, donc chercher le court circuit , autour du relais peut être.
    Attention de ne pas envoyer du 5V ou autre sur le pied à coulisse, il n'apprécierait, sans doute pas.
    Mais pour le LCD il y a aussi un problème, donc vérifier aussi le câblage.
    Dans le soft, il attend des signaux clock et ça le fige dessus, donc s'ils n'arrivent pas, possible qu'il ne fasse rien, mais l'init LCD est avant, donc on devrait avoir tous le digits pas les carrés qui apparaissent s'il ne reçoit rien.

    bon courage.
    A+, pat

  13. #43
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    avec le fusible hs ==> ~=4.8v sur ra0, appui bref sur S1==> chute de tension ~= 3.8v sur ra0 et montée en ° du 7805, le relais reste "-".
    avec un autre fusible (inadéquat on est ok là dessus!) 0v sur ra0 même si j'appuie un coup bref (long) sur S1.
    dont le soft à bien une action sur l'activation de ra0.
    pour le reste on attaque la base du bc547 (j'ai mis un B au lieu du C du schéma) via 10k.
    comme j'y comprends rien je vais emmètre l'hypothèse que le transistor sert en gros de commutateur permettant d'activer la montée du relais.
    il y a pas de cc de ce coté (du moins j'en trouve pas).
    à te lire

  14. #44
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Le transistor amplifie le courant pour faire basculer le relais.

    J'ai pas trop compris à quoi sert le relais , apparemment, il bloque le signal pour figer la mesure.
    Puisqu'en absence de signal il se fige , conservant la donnée affichée.

    Si rien n'apparait, soit il n'y a pas de signal sur Ra0 et Ra1, soit le lcd est mal câblé.

    Voir au scope s'il y des pulses sur Ra0 et Ra1.
    Si non chercher pourquoi
    Si oui vérifier le cabâge LCD.
    A+, pat

  15. #45
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Cette chauffe du 7805 quand ça commute est étrange.
    Ton relais est énorme ou quoi ?
    C est bien un 5V ?
    Il commute vraiment ? (à tester à l'ohmètre)

    Espérons que ça ne revoie pas de la tension > 5V...
    A+, pat

  16. #46
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    Citation Envoyé par freepicbasic Voir le message
    Cette chauffe du 7805 quand ça commute est étrange.
    ~=4.8v sur ra0, appui bref sur S1==> chute de tension ~= 3.8v sur ra0 et montée en ° du 7805, le relais reste "-" ne monte pas donc.

    Ton relais est énorme ou quoi ?
    non tout petit
    relais nad5w-k ==> 5v 178 ohm
    http://us.100y.com.tw/pdf_file/29-TAKANISAWA-NA5W-K.pdf

    C est bien un 5V ?
    oui en direct il monte et le contact s’établit

    Il commute vraiment ? (à tester à l'ohmètre)
    oui en direct il monte et le contact s’établit

    Espérons que ça ne revoie pas de la tension > 5V...
    ?????????????
    j'ai trouvé un bc547c, je vais changer le transistor ..........................

  17. #47
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Si c est un 7805 boitier TO220 c est pas normal que ça chauffe.
    Un 78L05 peut être, mais il risque de dégagé.
    Quel tension à l'entré du 7805 , si il y a 18V c est peur être normal
    Il y a les capas sur le 7805 ?
    (100nf)

    tu ne m'as pas dit si il y avait un signal sur Ra0 et Ra1 , voir avec le scope.
    A+, pat

  18. #48
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    il y a du changement:
    j'ai viré la diode aux bornes du relais (inversée ???????????? à voir! pas sûr!)
    changé le bc547 (c au lieu de b)
    l'afficheur fonctionne (il indique des valeurs erratiques, mais ...........)
    la raz ne se fait pas................
    merci beaucoup de ton aide, le soft semble fonctionner maintenant, il faut que je corrige des trucs sur le circuit (quartz et condos placés trop loin des pin du pic etc........)
    bonne continuation
    merci
    cordialement

  19. #49
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    la diode est indispensable elle supprime les surtensions, change là, mais ne la suprime pas.
    elle était peut être à l'envers.
    elle doit être dans le sens bloqué cathode vers le +5V.
    A+, pat

  20. #50
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    je comprends bien son but, je compte la remettre sur le nouveau circuit.

  21. #51
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    des images.
    a+
    Images attachées Images attachées

  22. #52
    midodiy

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Bonjour,
    Sur un autre forum, j'avais commencé à aider serrepatte, j'avais fait un copier coller du programme asm de l'auteur pour 16F84 sous MPLABX et j'ai rajouter les 2 instructions pour passer le port A en digital. J'ai essayé le montage sans le lm393, j'imposais simplement un 1 sur RA3 et 4. L'afficheur restait avec ces carrés. J'ai alors essayé avec le hex de l'auteur et un 16F84. Pareil, toujours des carrés sur l'afficheur. Le programme de l'auteur ne fonctionne pas, pas tres serieux...
    Freepicbasic, peux tu expliquer ce que tu as changé dans les adresses? Merci...

  23. #53
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    bonsoir, midodiy
    ce que j'ai relevé comme diff sont au nombre de 2
    (fusibles)
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

    par==>

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF &_BODEN_OFF

    mémoire

    CBLOCK 0x0C

    par==>

    CBLOCK 0x20

    bonne soirée

  24. #54
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Voilà c est dit LOL

    C est surtout l'adresse RAM qui diffère le 628 a plus de périphériques et la RAM commence à 0x20.
    Sinon on écrit dans les périphériques et ça lui fait "mal aux dents".
    A+, pat

  25. #55
    midodiy

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Ok merci, bien vu. ça ne m'explique pas pourquoi l'hex de l'auteur avec un 16F84 n'initialise pas l'afficheur mais on avance...Freepicbasic, toi qui lit le hex couramment...
    L'affichage erratique...il faudrait rajouter une resistance sur les 2 comparateurs pour les transformer en trigger de smith voir meme une petite capa qui ferait filtre...

  26. #56
    freepicbasic

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    Si l'afficheur n'affiche rien , c'est la tension de contraste qui n'est pas bonne.
    S'il affiche des carrés sur une moitié c est qu'il n'est pas du tout initialisé, donc vérifier le câblage des fils.

    Si l'affichage fonctionne , mais pas tout le temps,
    Il peut y avoir un faux contact.
    (avec des anciens afficheurs, ils sont parfois lent , avec des commandes rapides, ça peut mal fonctionner ou pas du tout)

    Le signal peut aussi être déformé.
    Blinder le fil pour éviter les perturbations externes.
    Vérifier si le signal a bien le bon niveau les créneaux doivent être pour le 1 supérieur 0.9V et pour le 0 inférieur à 0.7V
    vérifier si la masse est bien connectée, à l'oscillo, une mauvaise masse se voit avec un signal généralement perturbé par le 50hz.
    Le pont 47k et 10K doit avoir une tension ~0.8V , mais sur le schéma, il n'y a pas de condo, un condo de 22µf en parallèle sur la 10k éviterait les possibles variations dù à l'alime qui fluctue un peu, surtout avec le relais.

    Pour l'AOP, rien à faire, en mode comparateur ça devrait fonctionner correctement.
    Si le signal est correct, et la tension de comparaison aussi.

    Normalement on met des 100nf sur les pins d'alimentations de chaque Circuit intégré.
    Et aussi sur l'entrée et sortie du 7805.
    A+, pat

  27. #57
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,

    il y a des capa 100nf:
    1) entre +5v et masse du pic et du lm393.

    ......... un condo de 22µf en parallèle sur la 10k éviterait les possibles variations dù à l'alime qui fluctue un peu, surtout avec le relais.
    2) en // à R4 la 10k du pont
    nota:le relais n'est sollicité que brièvement pour la raz lorsqu'on la souhaite

    Normalement on met des 100nf sur les pins d'alimentations de chaque Circuit intégré.
    Et aussi sur l'entrée et sortie du 7805.
    3)pour 7805: en entrée en // avec un polarisé de 220µf en sortie en // avec un 47µf
    pour les mesures je regarderai mais ce soir.
    je pense remplacer le câble basic par un 2 paires écrantées, il faut encore que je déplace le quartz et ses capa, mais j'hésite, ou bien refaire la carte.................
    a+

  28. #58
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    bonsoir,

    Le pont 47k et 10K doit avoir une tension ~0.8V
    Je mesure 0.876V.

    le "5v" est à 4.950V

    freepicbasic
    pour ce que tu demandes, peux tu m'indiquer la façon dont je dois m'y prendre?:
    Vérifier si le signal a bien le bon niveau les créneaux doivent être pour le 1 supérieur 0.9V et pour le 0 inférieur à 0.7V
    vérifier si la masse est bien connectée
    à l'oscillo, une mauvaise masse se voit avec un signal généralement perturbé par le 50hz.
    merci.
    cordialement

  29. #59
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    re,
    le code n'a pas un problème?

    lorsque j'essaye de le compiler avec mplab X
    j'ai des messages d'erreur(?)
    "Warning[205] Found directive in column 1. (PROCESSOR)"
    "Register in operand not in bank 0. Ensure that bank bits are correct."

  30. #60
    serrepate

    Re : modification d'un prog .asm, écrit pour pic16f84a pour un pic16f628

    bonsoir,
    pour le "Warning[205] Found directive in column 1. (PROCESSOR)"
    là je crois que j'ai trouvé, le code devrait être:
    P=16F628A
    suivit:
    INCLUDE "P16F628A.INC"
    pour évité une incompatibilité (le 628 doit être programmé autrement ?????? que le 628A)
    reste
    Message[302] .......Register in operand not in bank 0. Ensure that bank bits are correct.
    là je ne comprends pas .................
    cordialement

Page 2 sur 7 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. Erreur de compilation pour PIC16F628 sous MikroC
    Par nour174 dans le forum Électronique
    Réponses: 2
    Dernier message: 06/03/2015, 11h20
  2. timer0 pour PIC16F628
    Par malissa_-_sarita dans le forum Électronique
    Réponses: 3
    Dernier message: 31/05/2013, 09h34
  3. pic16F84A+jeu question pour un champion
    Par djojamel dans le forum Électronique
    Réponses: 6
    Dernier message: 11/03/2010, 13h04
  4. Temporisation pour un PIC16F84A en C
    Par Bernibernouille dans le forum Électronique
    Réponses: 12
    Dernier message: 30/12/2009, 23h05
  5. minimum pour un PIC16F628
    Par invite0b56f0b4 dans le forum Électronique
    Réponses: 2
    Dernier message: 05/02/2009, 15h36
Découvrez nos comparatifs produits sur l'informatique et les technologies.