Jeux de lumière

5/5 (3 avis)

Vue 12 987 fois - Téléchargée 2 092 fois

Description

programme fonctionnant sous le pic16f84 qui pemet de faire jouer successivement 13 leds . Un peu comme un jeux de lumière.

Source / Exemple :


;;;;;;;;;;;;;;;;;;;;;;;;text du 26/2/2009;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	LIST P=16F84, R=DEC
	#include      "P16F84.INC"

	__CONFIG  _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC
	__IDLOCS  1998h

	

	mv1 		EQU		h'0C'	
	mv2		EQU		h'0D'	
        mv3             EQU             h'0E'

	ORG     0x004
	GOTO    projet
;;;;;;;;;;;;;;;;;;;;;;;;; zorne des souprogrammes;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  projet			; contiguration des ports du pic 

	bsf    STATUS,RP0	; passé en banque 1
 
				; 1 pour dit en entrée OU 0 en sortie 
	movlw	b'00000'	;  0     0     0     0    0
	movwf	TRISA		;  A4    A3    A2    A1   A0
	movlw	b'00000000'	;  0     0     0     0    0    0     0     0     
	movwf	TRISB		;  B7    B6    B5    B4   B3   B2    B1    B0

	bcf    STATUS,RP0	; passé en banque 0
	
	clrf	PORTA		; effacé les ports du pic portA
	clrf	PORTB           ; effacé les ports du pic portB

  program			; debut du program
 
       
                                
       bsf   PORTA,0            ; bit RA0 à 1 
       call  tempo              ; appel un temps
       bcf   PORTA,0            ; bit RA0 à 0
       call  tempo              ; appel un temps

       bsf   PORTA,1
       call  tempo 
       bcf   PORTA,1
       call  tempo

       bsf   PORTA,2
       call  tempo
       bcf   PORTA,2
       call  tempo
  
       bsf   PORTA,3        
       call  tempo          
       bcf   PORTA,3       
       call  tempo         

       bsf   PORTB,0           ; bit RB0 à 1
       call  tempo             ; appel un temps
       bcf   PORTB,0           ; bit RBO à 0
       call  tempo             ; appel un temps

       
       bsf   PORTB,1
       call  tempo
       bcf   PORTB,1
       call  tempo

       bsf   PORTB,2        
       call  tempo          
       bcf   PORTB,2        
       call  tempo          

       bsf   PORTB,3
       call  tempo
       bcf   PORTB,3
       call  tempo

       bsf   PORTB,4
       call  tempo
       bcf   PORTB,4
       call  tempo

       bsf   PORTB,5       
       call  tempo          
       bcf   PORTB,5        
       call  tempo          

       bsf   PORTB,6
       call  tempo
       bcf   PORTB,6
       call  tempo

       bsf   PORTB,7
       call  tempo
       bcf   PORTB,7
       call  tempo

       goto  program        ; retour au program

;;;;;;;;;;;;;;;;;;;;; sous-programme ;;;;;;;;;;;;;;;;;;;;;;;

      tempo 
    
      movlw d'150'    
      movwf mv1
      movlw d'150'
      movwf mv2
     
      

gf    decfsz mv1,f        ; -1 du contenu de mv1 saut si mv1 = 0
      goto   gf
      decfsz mv2,f        ; -1 du contenu de mv2 saut si mv2 = 0
      goto gf
      

      return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      END                 ; fin du projet

Conclusion :


dites moi ce que vous en pensez

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

pont
Messages postés
197
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2010
1 -
En français, on écrit un jeu ou des jeux, mais pas "un jeux", comme on ne dit pas "un chevaux".
Apparemment vous avez configuré la broche RA4 en sortie, mais oublié d'y activer une led dans le programme, qui est juste un chenillard, pas vraiment un jeu, car ce n'est pas varié.
Trois programmes quasiment identiques, n'est-ce pas trop? Il aurait fallu dès le 2e introduire une entrée par bouton-poussoir qui lorsqu'il est appuyé change la vitesse, ou le sens de rotation, et relâché on revient au sens du départ; ce n'est pas énorme, mais cela met en jeu une étape: gérer une entrée.
Et en 3e programme, faire un code secret de portail par exemple, c'est ce que je demande à mes élèves, ils n'en meurent pas!
abdellahchakir
Messages postés
10
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
21 avril 2011
-
Bonsoir
Ton code est bien organisé ,je trouve qu'il est bien comréhensible par tous le monde ,et d'ailleur un bon programme c'est celui que tous le monde arrive a le déchifrer,la remarque
que j'ai a t'adresser c'est reflechir a utiliser des macro(s) pour faciliter la tache
et eviter de faire assez de répitition de plus ca va te permettre d'economiser bien le temp.

Bonne courage
pont
Messages postés
197
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2010
1 -
Bonjour,

Vos répétions me paraissent inutiles, le numéro du bit peut être remplacé par une variable qui s'incrémente à chaque tour et jusqu'à une certaine valeur, cela raccourcirait le programme et lui permettrait de s'adapter à un nombre quelconque de leds.
A quoi sert idlocs 1998h? Je n'ai pas ça. Et est-ce que vous pourriez me dire la ligne de __CONFIG pour un dsPIC30F4011, merci je cherche ça, et ça ne marche pas sur mon programme.
Cordialement
pont

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.