begin process at 2008 09 06 09:21:32
1 237 663 membres
60 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ALLUMER ET ETEINDRE UNE LED A PARTIR D'UN PIC 16F84


Information sur la source

Catégorie :Les PIC Niveau : Débutant Date de création : 10/06/2002 Date de mise à jour : 12/06/2002 01:58:31 Vu : 10 955

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Ce cours n'est la que pour vous présenter l'utilisation d'une led a partir d'un PIC 16F84.
Ce n'est pas compliqué mais lorsqu'on debute...

a vous de cogiter dessus.
(Utilisation avec MPASM)  

Source

  • ;Tout d'abord il faut indiquer quel type de PIC on va utiliser
  • ;ainsi que son include :)
  • LIST p=16F84
  • #include <p16F84.inc>
  • ; '__CONFIG' précise les paramètres encodés dans le processeur au moment de
  • ; la programmation du processeur. Les définitions sont dans le fichier include.
  • ; Voici les valeurs et leurs définitions :
  • ; _CP_ON Code protection ON : impossible de relire
  • ; _CP_OFF Code protection OFF
  • ; _PWRTE_ON Timer reset sur power on en service
  • ; _PWRTE_OFF Timer reset hors-service
  • ; _WDT_ON Watch-dog en service
  • ; _WDT_OFF Watch-dog hors service
  • ; _LP_OSC Oscillateur quartz basse vitesse
  • ; _XT_OSC Oscillateur quartz moyenne vitesse
  • ; _HS_OSC Oscillateur quartz grande vitesse
  • ; _RC_OSC Oscillateur à réseau RC
  • __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
  • ;Ensuite on lui indique qu'il y aura une led sur le portA 2
  • #DEFINE LED PORTA,2
  • ;2 MACROS simples pour allumer/eteindre la led...
  • ALLUME macro
  • bsf LED ;bsf envoit 1
  • endm
  • ETEINT macro
  • bcf LED ;bcf envoit 0
  • endm
  • ;Il appuis sur reset? alors on va à depart
  • org 0x000
  • goto depart
  • ;On initialise le port A à 0
  • depart
  • clrf PORTA
  • goto debut
  • ;Routine principale
  • debut
  • call ALLUME ;Vous avez deviné : il allume
  • ;.........PLACER ICI CE QUE VOUS SOHAITEZ...
  • call ETEINT ; il eteint
  • goto debut ; et hop il recommence...
  • END ; fin du prog
;Tout d'abord il faut indiquer quel type de PIC on va utiliser
;ainsi que son include :)
	LIST      p=16F84            
	#include <p16F84.inc>

; '__CONFIG' précise les paramètres encodés dans le processeur au moment de
; la programmation du processeur. Les définitions sont dans le fichier include.
; Voici les valeurs et leurs définitions :
;	_CP_ON		Code protection ON : impossible de relire
;	_CP_OFF		Code protection OFF
;	_PWRTE_ON	Timer reset sur power on en service
;	_PWRTE_OFF	Timer reset hors-service
;	_WDT_ON		Watch-dog en service
;	_WDT_OFF	Watch-dog hors service
;	_LP_OSC		Oscillateur quartz basse vitesse
;	_XT_OSC		Oscillateur quartz moyenne vitesse
;	_HS_OSC		Oscillateur quartz grande vitesse
;	_RC_OSC		Oscillateur à réseau RC
	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

;Ensuite on lui indique qu'il y aura une led sur le portA 2
#DEFINE LED	PORTA,2

;2 MACROS simples pour allumer/eteindre la led...
ALLUME macro	
		bsf LED ;bsf envoit 1
	endm

ETEINT macro
		bcf LED ;bcf envoit 0
	endm
;Il appuis sur reset? alors on va à depart
	org 0x000 		
  	goto depart

;On initialise le port A à 0
depart
	clrf PORTA		
	goto debut

;Routine principale
debut
	call 	ALLUME	;Vous avez deviné : il allume	
;.........PLACER ICI CE QUE VOUS SOHAITEZ...
	call	ETEINT	; il eteint
	goto debut	 ; et hop il recommence...


	END  ; fin du prog
  

Conclusion

Et merci de ne pas m'insulter.
Je ne suis la que pour donner un coup de pouce. Rien d'autre.  
  • signaler à un administrateur
    Commentaire de pitap0 le 10/06/2002 22:19:03

    Si vous souhaitez des cours particulier dites les moi :) sur les pic bien sur :))

  • signaler à un administrateur
    Commentaire de pitap0 le 10/06/2002 22:23:02

    J'oubliais le montage :)
    Très simple :
    MASSE ------  - LED + ----- résistance de 310Ohms ----- RA2 du PIC
    Comme d'hab pour le quartz :)
    a+

  • signaler à un administrateur
    Commentaire de Regiga le 13/06/2002 09:38:04

    Je sais pas si tu sais, mais y a un gentil Monsieur qui c fait chier a écrire un langage pour programmer les PICs. Ca s'appelle JAL
    cherche sur google : www.google.com
    Sa t'évitera de te faire chier avec l'assembleur. POurquoi tu programme pas en Hexa, ce serai plus facile peut-être. POur t'aider un peu, ya le C qui existe.

  • signaler à un administrateur
    Commentaire de Regiga le 13/06/2002 09:38:32

    Je sais pas si tu sais, mais y a un gentil Monsieur qui c fait chier a écrire un langage pour programmer les PICs. Ca s'appelle JAL
    cherche sur google : www.google.com
    Sa t'évitera de te faire chier avec l'assembleur. POurquoi tu programme pas en Hexa, ce serai plus facile peut-être. POur t'aider un peu, ya le C qui existe.

  • signaler à un administrateur
    Commentaire de FloZix le 13/06/2002 09:48:07

    C'est peu être plus judicieux d'allumer les leds sur un "0"... Autant prendre des bonnes habitudes dès le début ! De plus 3.1kOhms me semble beaucoup si on prend des leds normals (VDiode 1.6V Imax 20mA). Je pense qu'il faut enlever un 0 à ta valeur de résistance; 310 Ohms sufisent (R=U/I =&gt; 3.4/16*10^-3=212.5 !).
    @+ FloZix

  • signaler à un administrateur
    Commentaire de FloZix le 13/06/2002 09:52:15

    Regira, ici c'est un site sur l'asm alors c'est normal de trouver des gens qui programmes en assembleur des PIC dans la catégorie PIC...

  • signaler à un administrateur
    Commentaire de pitap0 le 13/06/2002 17:05:03

    g mis 310 Ohms et non 3100 Ohms (tu confond O avec 0 )

    ;)

  • signaler à un administrateur
    Commentaire de FloZix le 14/06/2002 10:28:00

    autant pour moi .... !o)

  • signaler à un administrateur
    Commentaire de loubet le 18/06/2002 16:54:17

    Sublime!!! pour les bleus comme moi, c'est pafait. Merci pitap0

  • signaler à un administrateur
    Commentaire de Cyberdevil le 08/06/2003 11:05:02

    je connais pas encore très bien l'assembleur mais on appelle pas une macro par un call non ?
    il me semble que l'on écrit juste le nom de la macro... enfin jsuis pas sur
    A+

  • signaler à un administrateur
    Commentaire de Bigonoff le 08/10/2003 22:29:32

    Salut
    ------

    Ton programme ne fonctionnera jamais, tu as oublié d'intialiser TRISA
    Tu as oublié aussi une tempo entre allumage et extinction.
    Tu devrais relire encore une fois mon cours :)

    Pour Regiga : le langage d'assemblage est le langage le plus approprié pour écrire un programme sur PIC16F84. Ca n'a rien à voir avec écrire directement en hexa.
    L' "assembleur" est le seul langage qui permette de tirer toute la puissance d'un pic, et donc le seul qui permette de tout faire.

    A+
    Bigonoff

  • signaler à un administrateur
    Commentaire de Bigonoff le 08/10/2003 22:34:39

    Salut bis
    ----------

    Ah oui, j'oubliais. L'utilisation des macros est incorrecte, car elle ne doit pas être précédée d'un "call".

    Petit conseil : surtout lorsqu'on débute (mais même plus tard), il faut éviter de placer des sources destinées à aider les autres si on ne les a pas testées. Dans ce cas-ci, si un débutant essaye ce programme, il va se casser le nez, puis se décourager.

    Amicalement :)
    Bigonoff

  • signaler à un administrateur
    Commentaire de misterzinzin le 22/05/2005 14:57:43

    bien dis bigonoff...

  • signaler à un administrateur
    Commentaire de pic16f le 25/05/2005 12:28:51

    tres bien pour les débutants
    pouvez vous me donnees des cours particulier par mail
    je suis meme pret a vous adressez un cheque.
    merci

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS