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 :

Horloge avec le 8051


Sujet :

Autres architectures Assembleur

  1. #1
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut Horloge avec le 8051
    Bonjour à tous,
    je suis donc passer à l'étape suivante dans mon apprentissage en assembleur et maintenant j'essaie de faire une horloge avec 4 bloc de 7-segment avec anode commune.

    J'utilise donc les P0=minutes, P1=Minutes, P2=secondes P3=secondes, pour les heures je verrai après.

    Dans un premier temps j'essaie de faire compter de 0 à 60 pour les secondes.
    Quand j'essaie mon code, il affiche d'abord 00 puis 10 sur les afficheurs connectés au port P2 et P3. Il ne compte de 0 jusqu'à 60.

    voici mon code:
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     org 0000h
    Home:
    mov r0,#00h
    mov a,r0
    lcall CA
    mov p2,a
    mov r1,#00h
    mov a,r1
    lcall CA
    mov p3,a 
    lcall delay
     
    SEC1:
    inc r0
    mov a,r0
    cjne a,#0ah,L1
    mov r0,#00h
    sjmp SEC2
     
    L1:
    lcall ca
    mov p2,a
    lcall delay
    sjmp SEC1
     
    SEC2:
    inc r1
    mov a,r1
    cjne a,#06h,L2
    mov r1,#00h
    sjmp Home
    L2:
    lcall ca
    mov p3,a
    lcall delay
    sjmp SEC2
     
    CA:
    cjne a,#01h,M1
    mov a,#0F9h;1
    ret
    M1:
    cjne a,#02h,M2
    mov a,#0a4h;2
    ret
    M2:
    cjne a,#03h,M3
    mov a,#0b0h;3
    ret
    M3:
    cjne a,#04h,M4
    mov a,#099h;4
    ret
    M4:
    cjne a,#05h,M5
    mov a,#012h;5
    ret
    M5:
    cjne a,#06h,M6
    mov a,#082h;6
    ret
    M6:
    cjne a,#07h,M7
    mov a,#0f8h;7
    ret
    M7:
    cjne a,#08h,M8
    mov a,#080h;8
    ret
    M8:
    cjne a,#09h,M9
    mov a,#090h;9
    ret
    M9:
    cjne a,#00h,M10
    mov a,#0c0h;0
    M10:
    ret
     
    delay: mov r0,#04h
    mov r1,#080h
    mov r2,#0ffh
    djnz r2,$
    djnz r1,$-2
    djnz r0,$-4
    ret
    end
    Merci

  2. #2
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    j'ai trouvé une petite erreur dans le timer à la fin du code, j'ai utilisé le même register r0 et r1 qui sont déjà utilisé au début de mon programme.
    j'utilise maintenant r3, r4 et r5.

    Donc maintenant, sur mes deux afiicheurs de secondes, il commence à compter de 0 à 9 puis revient à 0 au lieu d'aller jusqu'à 59.

  3. #3
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Problème résolu, mes afficheurs 7 seg étaient inversé au niveau des ports
    c ok ça fonctionne bien
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/04/2014, 00h08
  2. compter de 0 à 60 avec le 8051
    Par stpaul04 dans le forum Autres architectures
    Réponses: 3
    Dernier message: 26/02/2013, 16h45
  3. Pb de synchro d'horloge avec W2000
    Par ALT dans le forum Windows 2000/Me/98/95
    Réponses: 4
    Dernier message: 22/02/2008, 11h15
  4. [Applet]Horloge avec Java
    Par tachag dans le forum Applets
    Réponses: 2
    Dernier message: 28/12/2004, 16h12

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