begin process at 2010 03 18 13:30:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Les PIC

 > LED EN COULEUR

LED EN COULEUR


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Les PIC Niveau :Débutant Date de création :30/03/2009 Vu / téléchargé :2 036 / 83

Auteur : ariane2005

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Programme fonctionnant sous le pic16f84 permettant de faire fonctionner un led en couleur avec des temporisations.

Source

  • ;;;;;;;;;;;;;;;;;;;;;;;;text du 18/3/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'
  • mv4 EQU h'0F'
  • ;================================================;
  • ledblue_a0 EQU h'0'
  • ledgreen_a1 EQU h'2'
  • ;================================================;
  • ledred_b0 EQU h'0'
  • ledyellow_b2 EQU h'2'
  • ;================================================;
  • 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,ledblue_a0
  • bsf PORTB,ledyellow_b2
  • call temp_7s
  • bsf PORTA,ledblue_a0
  • bsf PORTB,ledred_b0
  • bsf PORTB,ledyellow_b2
  • call temp_10s
  • bsf PORTA,ledblue_a0
  • bsf PORTB,ledred_b0
  • bsf PORTB,ledyellow_b2
  • call temp_17s
  • bsf PORTB,ledred_b0
  • bsf PORTA,ledblue_a0
  • call temp_2s
  • bsf PORTB,ledred_b0
  • bsf PORTB,ledyellow_b2
  • bsf PORTA,ledblue_a0
  • call temp_17s
  • bsf PORTB,ledyellow_b2
  • bsf PORTA,ledgreen_a1
  • bcf PORTB,ledred_b0
  • call temp_2s
  • bsf PORTA,ledblue_a0
  • bsf PORTB,ledyellow_b2
  • bsf PORTB,ledred_b0
  • call temp_17s
  • bcf PORTA,ledgreen_a1
  • bsf PORTA,ledblue_a0
  • call temp_7s
  • goto program ; retour au program
  • ;;;;;;;;;;;;;;;;;;;;; sous-programme ;;;;;;;;;;;;;;;;;;;;;;;
  • temp_2s
  • movlw d'255'
  • movwf mv1
  • movlw d'255'
  • movwf mv2
  • movlw d'12'
  • movwf mv3
  • 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
  • decfsz mv3,f ; -1 du contenu de mv3 saut si mv3 = 0
  • goto gf
  • return
  • ;=============================================================
  • temp_7s
  • movlw d'255'
  • movwf mv1
  • movlw d'255'
  • movwf mv2
  • movlw d'15'
  • movwf mv3
  • gf1 decfsz mv1,f ; -1 du contenu de mv1 saut si mv1 = 0
  • goto gf1
  • decfsz mv2,f ; -1 du contenu de mv2 saut si mv2 = 0
  • goto gf1
  • decfsz mv3,f ; -1 du contenu de mv3 saut si mv3 = 0
  • goto gf1
  • return
  • ;=============================================================
  • temp_17s
  • movlw d'255'
  • movwf mv1
  • movlw d'255'
  • movwf mv2
  • movlw d'80'
  • movwf mv3
  • gf2 decfsz mv1,f ; -1 du contenu de mv1 saut si mv1 = 0
  • goto gf2
  • decfsz mv2,f ; -1 du contenu de mv2 saut si mv2 = 0
  • goto gf2
  • decfsz mv3,f ; -1 du contenu de mv3 saut si mv3 = 0
  • goto gf2
  • return
  • ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  • temp_10s
  • movlw d'255'
  • movwf mv1
  • movlw d'255'
  • movwf mv2
  • movlw d'30'
  • movwf mv3
  • gf3 decfsz mv1,f ; -1 du contenu de mv1 saut si mv1 = 0
  • goto gf3
  • decfsz mv2,f ; -1 du contenu de mv2 saut si mv2 = 0
  • goto gf3
  • decfsz mv3,f ; -1 du contenu de mv3 saut si mv3 = 0
  • goto gf3
  • return
  • ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  • END ; fin du projet
;;;;;;;;;;;;;;;;;;;;;;;;text du 18/3/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'
        mv4             EQU             h'0F'
;================================================;
       ledblue_a0        EQU             h'0'
       ledgreen_a1       EQU             h'2'
;================================================;
       ledred_b0         EQU             h'0'
       ledyellow_b2      EQU             h'2'
;================================================;

         
          
	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,ledblue_a0
    bsf   PORTB,ledyellow_b2
    call  temp_7s

           
    bsf   PORTA,ledblue_a0
    bsf   PORTB,ledred_b0
    bsf   PORTB,ledyellow_b2
    call  temp_10s

    bsf   PORTA,ledblue_a0
    bsf   PORTB,ledred_b0
    bsf   PORTB,ledyellow_b2
    call  temp_17s

    bsf   PORTB,ledred_b0
    bsf   PORTA,ledblue_a0
    call  temp_2s

    bsf   PORTB,ledred_b0
    bsf   PORTB,ledyellow_b2
    bsf   PORTA,ledblue_a0
    call  temp_17s

    bsf   PORTB,ledyellow_b2
    bsf   PORTA,ledgreen_a1
    bcf   PORTB,ledred_b0
    call  temp_2s

    bsf   PORTA,ledblue_a0
    bsf   PORTB,ledyellow_b2
    bsf   PORTB,ledred_b0
    call  temp_17s

    bcf   PORTA,ledgreen_a1
    bsf   PORTA,ledblue_a0
    call  temp_7s

             
                           
       goto  program            ; retour au program


;;;;;;;;;;;;;;;;;;;;; sous-programme ;;;;;;;;;;;;;;;;;;;;;;;
      temp_2s 
    
      movlw d'255'    
      movwf mv1
      movlw d'255'
      movwf mv2
      movlw d'12'
      movwf mv3

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
      decfsz mv3,f        ; -1 du contenu de mv3 saut si mv3 = 0
      goto gf


      return
;=============================================================
      temp_7s 
    
      movlw d'255'    
      movwf mv1
      movlw d'255'
      movwf mv2
      movlw d'15'
      movwf mv3

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

      return
;=============================================================
      temp_17s 
    
      movlw d'255'    
      movwf mv1
      movlw d'255'
      movwf mv2
      movlw d'80'
      movwf mv3

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

 temp_10s 
    
      movlw d'255'    
      movwf mv1
      movlw d'255'
      movwf mv2
      movlw d'30'
      movwf mv3

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


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

      END                 ; fin du projet
      

 Conclusion

dites moi ce que vous en pensez.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   led1_couleur
    • Last Loaded led_9.DBKTélécharger ce fichier [Réservé aux membres club]105 255 octets
    • LED_9.$$$Télécharger ce fichier [Réservé aux membres club]4 331 octets
    • led_9.asmTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 331 octets
    • LED_9.CODTélécharger ce fichier [Réservé aux membres club]7 168 octets
    • led_9.DSNTélécharger ce fichier [Réservé aux membres club]102 617 octets
    • LED_9.ERRTélécharger ce fichier [Réservé aux membres club]1 678 octets
    • LED_9.HEXTélécharger ce fichier [Réservé aux membres club]596 octets
    • LED_9.LSTTélécharger ce fichier [Réservé aux membres club]15 375 octets
    • led_9.pjtTélécharger ce fichier [Réservé aux membres club]1 520 octets
    • led_9.PWITélécharger ce fichier [Réservé aux membres club]1 078 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip SAUT AVEC TROIS IMPULSIONS
Source avec Zip LED ROTATE
Source avec Zip JEUX DE LUMIÈRE

 Sources de la même categorie

Source avec Zip SAUT AVEC TROIS IMPULSIONS par ariane2005
Source avec Zip LED ROTATE par ariane2005
Source avec Zip JEUX DE LUMIÈRE par ariane2005
PIC : OBTENIR UN NOMBRE ALÉATOIRE AVEC LA FORMULE XN+1=(137... par warezpsx
Source avec Zip CLAVIER 16F84 par pic16f

Commentaires et avis

Commentaire de pont le 02/05/2009 20:28:19 9/10

C'est bien, quelques détails améliorables, comme:
Je cite:
#  movlw b'00000000' ; 0 0 0 0 0 0 0 0
# movwf TRISB

Cela peut se simplifier en "clrf  TRISB"

Les tempo sont trop compliquées, une seule suffit avec passage de paramètre, ou en deux parties:
   la 1e pour la tempo de 1 seconde (non appelée par le programme)
   la 2e avec un compteur qui se charge à l'appel venant du programme et donne le nombre d'appels de la tempo d'une seconde. Return quand le compteur est à zéro, c'est fini.

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,546 sec (4)

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