begin process at 2010 08 01 07:35:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Les PIC

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :22 583

Auteur : pitap0

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
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.  


 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 LED EN COULEUR 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

Commentaires et avis

Commentaire de pitap0 le 10/06/2002 22:19:03

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

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+

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.

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.

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

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...

Commentaire de pitap0 le 13/06/2002 17:05:03

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

;)

Commentaire de FloZix le 14/06/2002 10:28:00

autant pour moi .... !o)

Commentaire de loubet le 18/06/2002 16:54:17

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

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+

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

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

Commentaire de misterzinzin le 22/05/2005 14:57:43

bien dis bigonoff...

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

Commentaire de pont le 12/11/2009 21:11:49

Pas terrible:
long, compliqué, plein de fautes de français, mes élèves ont intérêt à faire beaucoup mieux et ils le savent, d'ailleurs ils programment des trucs bien plus durs comme faire un journal lumineux...faire tourner un moteur pas à pas, une perceuse avec son avance barre automatique, une étagère automatisée à plusieurs niveaux, un ascenseur... Il faut quand même respecter l'appétit de création des jeunes et leur donner de quoi se motiver.
Cordialement
pont

Commentaire de yassine120 le 23/03/2010 12:45:54

salut tous le monde . je viens de commencer un projet sur pic 16F877.il a pour but realiser une carte dedactique (contient des leds ;afficheur lcd,7segment,)qu'on peut commander avec le pic.je suis bloque svp aide!!??

Commentaire de pont le 23/03/2010 20:11:53

Bonjour et je salue le passage de Monsieur BIGONOFF qui nous fait un grand honneur de poster dans cette colonne. Merci à lui.
Quant à ceux qui prétendent qu'on se fait chier en assembleur, qu'ils réfléchissent que tous les autres langages ont été écrits en quoi?...   oui en quoi?...   EN ASSEMBLEUR, parce que c'est le MEILLEUR LANGAGE.
Pont

Commentaire de Claudebf le 28/03/2010 12:41:43

Je ne suis qu'un internaute comme un autre, LOL.

Sinon, mon avis sur le langage est le suivant :

Il n'y a pas de meilleur langage, il peut juste y avoir un langage mieux adapté qu'un autre pour une application donnée et concernant une cible donnée.

Et de plus, sur des microcontroleurs avec des ressources limitées, il est souvent judicieux, lorsqu'on utilise un langage de "haut" niveau sur ce genre de cible, de connaître quand même le langage d'assemblage pour se sortir d'un mauvais pas éventuel et pouvoir si nécessaire maîtriser le timing précis de l'application. Plus la puissance de la cible augmente, moins l'utilisation du langage de plus bas niveau ne se révèle indispensable.

Donc, toujours selon mon avis : soit on choisit son langage en fonction de la cible choisie et éventuellement de l'application (et pour moi, à ce niveau, le choix du C et autres sur un 16Fxxx n'est pas très judicieux), soit au contraire on place le langage en avant et alors on choisit une cible bien adaptée à ce langage (si une entreprise veut faire travailler ses programmeurs en C sur pic, elle choisira judicieusement des pic 16 bits(24H, 33F) plutôt que des 16Fxxx).

Dans cet ordre d'idée, moi je programmerais :
- Mes 16Fxxx en langage d'assemblage
- Mes 33F en C tout en gardant le langage d'assemblage "sous la main"
- Mes programmes PC sous Windows en C#

Ce n'était que mon avis
A+
Bigonoff

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Août 2010
LMMJVSD
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Consulter la suite du CalendriCode

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

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