begin process at 2012 05 25 12:14:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Problème entre la simulation et la réalité


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème entre la simulation et la réalité

jeudi 18 mars 2010 à 08:04:52 | Problème entre la simulation et la réalité

bibou1234

Bonjour,
(j'avais commencé une programmation en C de se programme, mais trop compliqué, et j'ai perdu trop de temps, donc je le fais maintenant en assembleur, j'ai changé de pic également j'utilise un P16F690)

J'ai un problème avec mon programme.
Je configure mon programme pour qu'il allume 4 leds a 4 seuils de tension différents
led1 = 0,5V
led2=1V
led3=1,5V
led4=2V
Lorsque que je lance mon programme sur mon montage voici ce que je trouve:
Led4 s'allume en premier de 0V à 2,9V, ensuite Led3 s'allume de 2,9V a 3,64V, puis c'est led2 qui s'allume de 3,64V à 4,21V enfin c'est led1 qui s'allume de 4,21V à 5V.

J'ai donc décider d'inversé les seuils c'est-à-dire de mettre
led1=4,5V
led2=4V
led3=3,5V
led4=3V

Lorsque je lance mon programme il n'y a que led1 qui s'allume (et elle reste allumé sur toute la plage de tension)

Pouvez-vous m'aider svp, je ne comprend pas pourquoi les leds s'allument pas aux seuils que je veux.

Voici mon programme:

Code:
#include <p16F690.inc>
__config(_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

#define LED_SCGND b'00000001' ;PORTC,0
#define LED_ILL b'00000010' ;PORTC,1
#define LED_GOOD b'00000100' ;PORTC,2
#define LED_SCBAT b'00010000' ;PORTC,3
#define LED_OC b'00001000' ;PORTC,4


cblock 0x020
result : 1
endc

org 0x000
Start:

bsf STATUS,RP0
movlw 0xFF
movwf TRISA
clrf TRISC
movlw 0x10
movwf ADCON1
bcf STATUS,RP0
bcf STATUS,RP0
bsf STATUS,RP1
movlw b'00000001'
movwf ANSEL
bcf STATUS,RP0
bcf STATUS,RP1
movlw 0x01
movwf ADCON0

MainLoop:
Nop
Nop
Nop
Nop
Nop
bsf ADCON0,GO
btfss ADCON0,GO
goto $-1
movf ADRESH,w
movwf result


Mavaleur1:
movf result,w
sublw 0x1A
btfss STATUS,C
goto Mavaleur2
movlw LED_SCGND
movwf PORTC
goto Start

Mavaleur2:
movf result,w
sublw 0x33
btfss STATUS,C
goto Mavaleur3
movlw LED_ILL
movwf PORTC
goto Start

Mavaleur3:
movf result,w
sublw 0x4D
btfss STATUS,C
goto Mavaleur5
movlw LED_GOOD
movwf PORTC
goto Start

Mavaleur5:
movf result,w
sublw 0x66
btfss STATUS,C
goto Mavaleur6
movlw LED_OC
movwf PORTC
goto Start

end

jeudi 1 avril 2010 à 17:21:54 | Re : Problème entre la simulation et la réalité

Zayann

Un peu de commentaire ne fait pas de mal dans un code...
Parce que là c'est pas très explicite...

Humm... à froid et sans analyse : un problème de registre (justification des registres du CAN peut être ?) D'autre part tu devrait plutôt travailler sur le bit de flag d'interruption du CAN plutôt que sur celui de la commande...
Essai de commenter ton code pour qu'il soit plus compréhensible...
Je regarderai de mon coté...
jeudi 15 avril 2010 à 12:52:29 | Re : Problème entre la simulation et la réalité

bibou1234

Bonjour,
j'ai résolu mon problème, mais j'ai un autre programme qui se pose
Je désire faire clignoté une Led lorsque ma batterie est en dessous de 2.6V
j'ai fait mon programme, mais ma Led clignote tout le temps (même au dessus de 2,6 V

Voici mon programme


Code:
Start2:

bsf STATUS,RP0
movlw 0xFF
movwf TRISA
clrf TRISB
clrf TRISC
movlw 0x10
movwf ADCON1
bcf STATUS,RP0
bsf STATUS,RP1
movlw b'00000100' ;Configuration de AN2 comme pin analogique
movwf ANSEL
bcf STATUS,RP0
bcf STATUS,RP1
movlw 0x03
movwf ADCON0

MainLoop2:
nop
nop
nop
nop
nop
nop

bsf ADCON0,GO
btfss ADCON0,GO
goto $-1
movf ADRESH,w
movwf result2

Mavaleur15: ;On est inférieure à 2,6 V (soit 5.2V pour la pile)
movf result2,w
sublw 0x85 ;On soustrait 0x85 à « result »
btfss STATUS,C
goto FIN
call CONT
goto Start2

CONT bsf PORTC,3
call TEMPO
bcf PORTC,3
call TEMPO
goto CONT

TEMPO movlw D'255'
movwf NBTEMP
CONT1 movlw D'255'
movwf TEMPELE
CONT2 nop
nop
nop
nop
nop
decfsz TEMPELE,f
goto CONT2
decfsz NBTEMP,f
goto CONT1
return
FIN
bcf PORTC,3
end


end


Cette discussion est classée dans : goto, status, led, movwf, portc


Répondre à ce message

Sujets en rapport avec ce message

16f877 test de contacts [ par tak0s ] Tout d'abord, bonjour à tous [^^clinoeil1] Je suis complètement noob en programmation assembler et j'ai essayer ,au bout de quelques lecture de diffé programmation du PIC 16f876 [ par essahlaouifouad ] salut j'ai un problème de programmation du PIC 16f876 pour contrôle la charge et la décharge du batteri pour un système photovoltaïque pour ne pas end pic16f631/690 [ par elsena ] Bonjour, J'ai fait un petit programme afin de me familariser avec la série 16f631/390, avant de réinscrire mes programmes dans ces nouveaux pics. Celu problème de simulation [ par bibou1234 ] Bonjour, Je dois réaliser un programme qui compare 2 valeurs, la première valeur provient d'une tension qui varie de 0V à 5V, et la deuxième valeur es petit probleme [ par wessleyclark ] bonjour tous le monde, voila j`ai un petit soucis avec mon code.[^^mad5] ce que je voulais faire , c`est de lire les donnee d`une telecomande transme programme de 2 servos avec 2 boutons différents à l'aide d'un picbasic 3b [ par Valve ] bonjour à vous...je me présente à vous en tant qu'étudiant débutant dans le domaine de la programmation car un problème sur lequel j'ai déjà passé 6h programmer un petit appareil qui suit la course du soleil [ par Seitoru ] Bonjour, j'ai un petit problème que voici: il y a un dispositif avec deux capteurs et deux LED qui est monté sur un axe rotatif. Quand le jour se lève Avoir de l'aide pour défiler dans les deux sences inverses un texte sur une matrice à leds de 5x7 [ par fer13 ] je demande aux experts du forum de me montrer qu'est-ce qu'il faut changer dans ce code pour qu'il defile dans les deux sences....: ;Program for P programmation [ par said50 ] svp donnez moi la programmation en assembleur (pic c) s'il est possible pour un système qui détecte la température, luminosité et humidité: > pour un


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales