IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[16F676] Horloge numérique


Sujet :

Autres architectures Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [16F676] Horloge numérique
    Bonjour,
    j'ai un cours de microcontrôleurs et je dois programmer une horloge numérique en assembleur sur pic16f676, et je ne sais pas où commencer sachant que c'est mon premier cours en assembleur. Si quelqu'un peut m'aider...
    Merci d'avance pour votre soutien

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Et bien la première chôse à faire est de télécharger la datasheet de ton microcontrôleur : www.alldatasheet.com si ce n'est pas déjà fait.

    Comme tu dois programmer une horloge tu auras besoin d'implémentation des timers et des interruptions, il faudra éplucher la documentation pour savoir comment ton microcontrôleur les gère.

    Après çà dépends de ton projet et du cahier des charges, dois-tu programmer uniquement programmer le microcontrôleur, ou bien aussi concevoir l'électronique qu'il y a autour ? Dois-tu uniquement programmer un chronomètre, ou bien l'horloge récupère t-elle l'heure sur un signal extérieur ?

    Si tu pouvais un peu mieux décrire ton projet ce sera plus facile de t'aider...

  3. #3
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Hmmmm... je doute que ton prof veuille que vous utilisiez le timer, surtout pour un premier programme en assembleur... et en PIC, qui plus est !

    Le PIC possède la fantastique propriété de pouvoir exécuter une instruction par cycle d'horloge, voire une instruction tous les deux cycles si il y a un saut dans le programme, ce qui permet de concevoir des codes déterministes au cycle d'horloge près, donc pouvoir gérer le temps de façon extrêmement précise, à la nano-seconde près !

    Pour un premier programme, il n'est pas impossible que votre prof veuille seulement que vous programmiez une horloge simulée à l'aide de boucles imbriquées ou autres... surtout que, sur certains PIC, le timer déborde tous les 256 cycles d'horloge... ça risque donc de faire une base de temps un poil trop fine.

    Là encore, si tu pouvais donner plus de précisions, ce serait plus facile.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  4. #4
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut
    Premier cour , il as fait for ton prof , moi , s'est aussi le 1 er il as fait que des exemples avec nous .

    Mais , sinon , pour ton exo , j'ai une idée : ( l'algorithme , le reste , tu te débrouille , car , moi en se moment , je suis sur les motorola ... et comme on nous as dit que s'était pas la même chose , je ne peux pas faire plus ... )

    1 il as une entrée de ton pic qui permet d'enclencher un sous programme ...

    Un NE555 , et tu auras donc une horloge de 1 s facilement .

    Tu connecte le NE555 sur l'entrée de set broche ( il dois générer tout les s voir ms ) Une fois effectuer , ton sous programme lancer , il incrémente l'acu A , si le B te suffit pour ton programme .... )

    Si tu en as besoin , tu prend l'info dans la mémoire , tu la place dans l'acuA tu incrémente , et tu la replace dans la mémoire ...

    Après pour le reste , affichage .... s'est a mettre dans ton programme principale ...

    Désole , si il as des erreur , mais , je suis encore un novice ....

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 75
    Points : 62
    Points
    62
    Par défaut
    un NE555 c'est bien, mais là encore l'electronique doit intervenir et je ne pense pas qu'il s'ensortira avec un element externe pour un debutant.
    Je n'ai pas encore utiliser de PIC mais je sais que les controlleurs en general des timers internes. essaie de voir comment les configuer pour compter... consulte serieusement les datasheets du PIC, c'est important.

  6. #6
    Membre averti
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Points : 333
    Points
    333
    Par défaut
    Sinon , je crois que ton prof , souhaite que tu utilise comme le mien : les cycle ...

    voila mon programme , mais pour les 64HC11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    * (gestion du carrefour PROGRAMME JOUR)
    * pour 68HC811E2 ou E9
    * EEPROM (adr $F800 à $FFFF), RAM de $0000 à $00FF (interne au 68HC11)
    * Définition de la partie opérative
    * PortC: Pc7   Pc6   Pc5   Pc4   Pc3   Pc2   Pc1   Pc0
    *        J      N    R2    O2    V2     R1   O1     V1
    * J et N correspondent aux informations de l'inter 3 positions (Jour / Manuel / Nuit)
    * J N = 0 1 indique position jour (J et N actifs à l'état bas)
    * J N = 1 1 indique position manuelle
    * J N = 1 0 indique la position nuit
    * Les lampes représentatives des feux R2, O2, V2, R1, O1, V1 sont actives à l'état haut
    * Pour la suite /IRQ sera utilisé pour le mode pas à pas
     
    **************** CONSTANTES ***********
    PortC 	equ 	$1003 		;Port C
    DDRC 	equ 	$1007 		;Direction du port C
    NT1 	equ 	$2D6B			;Valeur tempo
    NT2 	equ 	$0006	; 
     
    ************** PROGRAMME PRINCIPAL *********************
    		ORG 		$F000 			; programme en EPROM
    DEBUT	Lds 	#$00FF 		;Pile à la fin de la RAM
    		LDAA	$3F
    		STAA 	DDRC 
    JOUR 	LDX 	#SEQ1
    		LDAA	,X		;Prend donnée pointée N1
    SUIT1 	STAA 	PortC 		;COMMANDE DES DELS
    		INX
    		LDAB	,X		;LECTURE DE LA DUREE N2
    		PSHX 			;sauvegarde de X car utilisé dans TEMPO
    		JSR 	TEMPO
    		PULX		;rappel du pointeur de donnée X
    		INX
    		LDAA 	$0,X
    		BNE 	SUIT1 		;FIN DE SEQUENCE SI OCTET NUL
    		BRA	JOUR
    ;**********************************************************
    TEMPO 	LDX 	#NT1 		;TEMPO DE DUREE (B = N2 secondes)
    Bouc1 	LDY 	#NT2
    Bouc2 	DEY
    		CPY 	#$0000
    		BNE	Bouc2
    		DEX
    		CPX 	#$0000
    		BNE 	Bouc1
    		DECB
    		BNE 	TEMPO
    		RTS
    ;***********************************************************
    SEQ1 	fdb 	$2402 		;SEQUENCE DE JOUR
    		fdb 	$0C20
    		fdb	$1403
    		fdb	$2402
    		fdb	$2120
    		fdb 	$2203
    		fcb	$0000
    ;****************** vecteurs interruptions **************
    RESET	ORG	$FFFE
    		FDB	DEBUT
    		end
    S'est pour faire des feux .... mais , le timer aurais était 100 * mieu , et sourtout, il aurais permi de faire des améliorations par la suite ...

Discussions similaires

  1. [VB2005] Horloge numérique
    Par IronLionZion dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/12/2007, 20h08
  2. [68HC11] Réalisation d'une horloge numérique
    Par david2312 dans le forum Autres architectures
    Réponses: 2
    Dernier message: 04/04/2007, 15h40
  3. Comment réaliser une horloge numérique grâce au timer 8254 ?
    Par jojo_ol76 dans le forum Autres architectures
    Réponses: 1
    Dernier message: 29/03/2007, 19h56
  4. Horloge numérique
    Par mimi2006 dans le forum Assembleur
    Réponses: 7
    Dernier message: 19/04/2006, 00h05
  5. [LCD] Contrôle horloge numérique
    Par fredtheman dans le forum Composants VCL
    Réponses: 13
    Dernier message: 27/12/2004, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo