You are on page 1of 4
‘792020 PICTRAIN- train Electronique P PicTrain P Page précédente Cette rubrique PicTrain est toute nouvelle, elle a débuté la semaine derniére ! aisément nous rattraper et sauter en marche ! Aujourd”hui a notre menu : ‘Vous pouvez 2. Un peu plus sur les microP. 2.1.Un peu plus sur la structure du microP On ne peut pas nier que les microP sont des Sere 3 choses assez compliquées si on rentre vraiment dans les. détails, par exemple ci-contre la Be structure logique interne du 12F675 (cliquer bead oe sur ce schéma pour le voir en grand). nnd Pour ceux qui sont vraiment vicieux, la me | ae] |) documentation technique complete fait 132 pages auxquelles on ne manguera pas d’ajouter 200 +300 pages d’ annexes. Heureusement que ces détails ne nous intéressent pas ! Pour comprendre et utiliser 4 notre niveau ees bétes, il suffit de comprendre certaines notions assez simples, ct de toujours avoir un raisonnement bien logique. ee ee t 2.1.1, Et pourtant il tourne ! cece RE | | Comme je I’ai déja signalé, un microP n’est =| ae] [LE normalement jamais au repos il y en permanen — tune horloge qui tourne et égréne les tic‘tac (pas = as confondre avec les ti-taa du klaxon). a 1 Ily a différentes maniéres de faire tourner Eto art cette horloge, et a différentes vitesses, mais nous "=" prendrons la plus simple : l’horloge interne Oe Standard. Cette horloge tourne a 4 MHz, c"est-i- i dire qu’lle donne un tic toutes les 1/4000:000 | trata» Out covers ome | || Goa de seconde (4.000 000 de ties par seconde). Elle peter won teste | | fa peut aller plus vite (ou plus lentement), mais c “est plus compliqué, et cela ne nous apporte rien Elid pour notre utilisation. ver a II faut toujours 4 ties au microP pour exécuter une instruction, ce qui veut dire qu’il exécute 4.000 000/4 = 1 million d’instructions par seconde, ce qui est pas mal, et en plus cette vitesses est précise & moins d’un pour cent prés. ‘Vous devinez déja I’intérét de cette horloge : nous allons pouvoir générer, avec un programme adéquat, dautres fréquences, et notamment les 370 et 660 Hz du klaxon, et aussi la demi-seconde du durée d’un son, 2.1.2, Il pense donc il est ! Dans un programme, on peut exéeuter différentes opérations, comme des additions ou soustractions, ainsi que toutes les opérations logiques (et, ou...) chéres & Jidé. Cela fonctionne exactement comme vous devant votre calculatrice de poche ! (ne prenez pas une ealculatrice avec une bande de papier, c’ est trop facile). hitps:wwn prain.comislectraniquelmicropipagedZlindex.him24 1“ ‘792020 PICTRAIN- Lorsque vous voulez offectuer un calcul, vous introduisez un nombre, vous déclenchez 1 “opération voulue, introduisez le deuxiéme nombre, et tapez = pour avoir un résultat qui s’affiche. Si vous avez d’autres opérations, vous sauve7 le résultat dans la mémoire sil y en a une dans votre caleulatrice, owl’ écrivex sur un bout de papier pour le récupérer plus tard. Dans un microP, vous allez faire la méme chose : vous allez. mettre le premier nombre dans une case, le deuxiéme dans une autre case, exécuter V’instruction additionner, et vous retrouver. le résuitat (en général dans une des cases). Vous pouvez sauvegarder les résultats intermédiaires dans différentes eases, comme sur votre bout de papier (on verra plus loin que ces cases s’appellent des registres). C“est done trés proche de ce que vous faites & la main, mais il y a une grosse différence:: dans une calculette, la taille des nombres que vous manipulez est en général limitée 4 10.000-000 (dix millions) ; dans un microP vous étes limités & 255 (deux cent cinquante-cing). Qu’ est-ce que cela veut dire? Cela veut dire que dans un mieroP vous allez étre obligés de caleuler comme si vous faisiez 1 “addition & la main, chiffre par chiffre de chacun de vos nombres ! Vous allez dire “Stop, on arréte tout, ce n’est pas la peine de continuer’, mais vous aver tort : une addition n’est que la Succession toujours identique d’ opérations élémentaires (les instructions), et que ces suites d’ instructions ont rites par d’ autres pour vous (comme moi par exemple), et que done on ne va pas réinventer la roue chaque fois (algorithme). PTI+ ALGORITHME — Définition ; Ensemble des régles opératoires intervenant dans toute espéce de calcul. — En pratique : Ensemble c’opérations élémentaires permettant d'obtenir un résultat, Tout programme est done aussi un algorithme. ALGORITHME STANDARD — Il y a des algorithmes que lon peut appeler “standards”, comme par ‘exemple la méthode pour effectuer une addition a la main. On n’a pas besoin de réfléchir pour le créer, existe, Vous laver appris 2 récole primaire, — En pratique : En informatique aussi, il existe des algorithmes standards (morceaux de programme), que lon trouve dans les documentations ou sur Internet, comme adcitionner des grands nombres’ dans un microP ; 1 non plus il n'y a rien & ogiter, on applique oétement. Ensuite et surtout n”oubliez pas la vitesse d’exécution du microP : méme s'il faut par exemple 500 instructions pour additionner deux nombres, a la vitesse d’un million d’instruetions par seconde cela ne prendra que 1/2.000 de seconde, ce qui est quand méme plus rapide que vous ! Bref, ce qu’il faut surtout retenir, c’est qu’un microP ne peut effectuer que des opérations simples’ sur des nombres trés petits, mais que comme il va trés trés vite, on s"y retrouve quand méme ! En d’autres termes, le microP ne pense pas beaucoup, mais il pense trés vite. 2.1.3. Et il communique ! Un microP tout seul, sans communication avec I’extérieur, ne sert pas & grand-chose ! I faut bien communiquer avec lui (appuyer sur le bouton) et recueillir un résultat (un exemple ? tiit-taaaaa ), ‘Tout microP dispose donc d’“Entrées/Sorties”. Ce sont en général des connections électroniques gui fonetionnent en “tout ou rien”, et qui sont disponibles dans Ie programme via des bits d “information & 0 ow 1, Les caractéristiques électriques en entrée sont comparables & celles des circuits logiques intégrés : i 7éro volt sur la patte = Ie bit est & zé6ro ; i cing volts sur la patte = le bit est a 1. Dans notre exemple, quand je dis que “je regarde si on appuie sur le bouton’, cela veut dire que dans mon programme je regarde le bit correspondant "entrée (on verra plus loin oi il se trouve) ; “il est a 4, il ne se passe rien’ et je continue de regarder ; s’il est 4 0, je déclenche la suite d “instructions pour émettre mon tiiif‘taaaa. + Inactif un, curietx, non ? Comme souvent, dans nos montages électroniques “réels" es bits sont “atts” & 0 et nactifs 21 (ce qui est aussi le cas dans les PIC) & cause des résistances de rappel (pull-up) connectées au plus En sortie, la patte est a 0 V (la masse) lorsque j” cris 0 dans le bit correspondant a la sortie, et & 5,V pour un 1. La sortie débite 20 mA, suffisants pour allumer une led, et aussi suffisant pour alimenter notre haut-parleur. Dans notre montage, on va émettre une succession de o et de 1 sur la patte correspondant au haut-parleur (c’est-A-dire éerire o puis 1 dans le bit de sortie), aux bonnes fréquences, ¢ est-A-dire 370 fois par seconde pour le taaaa et 660 fois par seconde pour le tii, PTT+ Pour les dlectronicions Pes entrées santa haute mpédance. . = Pour les sorties, an peut les mettre 3 un, 8 zéro ou dans certains cas "en I'air* (tri-state). Par ailleurs, toutes les pattes “ont de ‘multiples fonctions “E/S normale, entrees/sortie de comparateurs, entrées de conversion anlogique/numerique., . “="ls Yonetion une palte edt définie par te programme, et peut are changée en cours de route. Par ‘exemple, une patte peut étre en entrée curant une partie du programme et en sortie durant une autre partie, — On peut aussi définir Factivation en interne de résistances de rappel, et certaines entrées sont & trigger de Schmitt 2.2.Un peu plus sur le fonctionnement du microP hitps:wwn pirain.comislectranique/micropipagedZlindex.him24 218 ‘792020 PICTRAIN- 2.2.1. Les données Comme tout bon circuit logique, les microP manipulent des bits 0 ou 1. On a vu aussi ci-dessus que I’on peut manipuler des chiffres. En informatique, quel que soit son niveau, de notre modeste microP jusqu’ aux systémes les plus sophistiqués, on utilise I’oetet (en anglais byte), composé de 8 bits. PTI+ Bits et octets, — Le bit est unité élémentaire dinformation, qui ne peut prendre que deux valeurs 0 0u 1 (oulrnony ollumenteint..J. Loetet (ou byte en anglais) est un ensemble de hut Dis: Pour des raisons historiques, la plupart des processeurs fonctionnent sur 8 bits (ou multiples de 8). ‘Au niveau physique du microP, tout est de toute fagon traité comme des suites de 0 et de 1, mais nous n”allons pas “descendre” jusqu’& ce niveau. Dans nos programmes, nous travaillerons done au niveau des octets, qui ont deux utilisations i Soit I’oetet contiendra un ensemble de bits indépendants, chacun ayant son utilité propre. m Soit il contiendra un nombre, de valeur entre 0 de 255 (ill n’y a pas de nombres négatifs dans ‘un micro?) Dans I’écriture des programmes il existe différentes maniéres de représenter le contenu dun octet. Je propose cependant de n’en utiliser que deux bit defing bit eefint 5 comes myers vita sai agit dun octet contenant des 2 un ccter bits indépendants, par exemple reliés au monde sLoli[i[o/o]oyifi}. extérieur (poussoir, led..), on eerira a explicitement la série de bits sous la forme b z na “onooo11" (c’est-’-dire une série de huit zéros E cou uns avee un b comme bit ou binaire). 7. > Pour Iécriture de nombres (bits un estat considérés comme un groupe, un octet), on écrira_——__—\_. par exemple d’99° (d comme décimal, le nombre OfL] L[OLOLOL AY L] sccrerenens le plus grand sera 255). Notez bien : Ie b ou le d indiquent le typed a8 6 32 a8 2 4 2 a 4 “SES “Geriture, bit a bit ou décimal. bit a7 bit nto 4 Attention : lorsque Ton utilise la v v représentation par bits, ils sont numérotés de 0 3, octet 7 A partir de la droite ; dans l’octet b OfAPAPOLOPOL A] L]« ccrer 7 Bon Tes bits 1 sontles huméros 0,15 et 78 5 43 2 4 08 6 1 vaut mieux ne pas oublier ces deux remarques (le premier bit est le n° o, et il se trouve tout & droite) , car nous allons trés souvent travailler au niveau ces bits 4 intérieur dun octet, et vous ne comprendrez rien si vous confondez I’ ordre ou le numéro des bits. 2.2.2, Les registres 1 sont les données ? Nous avons vu ci-dessus la représentation des données, mais il faut bien les stocker quelque part. Un peu plus haut, j’ai utilisé le mot “case”. Dans nos microP, ces cases “appellent simplement des registres. Ici aussi, il s’agit d’un terme historique, ne cherchons done pas & savoir pourquoi. Les registres sont done simplement des emplacements de la mémoire du microP od I’on range les données, toujours bien entendu sur 8 bits (un octet), s4.ci-contre, vus au microscope électronique, les registres dun ImicroP, Ce modéle, assez ancien, comporte sept registres ; quand on tire sur un registre, on voit les hut bits & |'intérieur, Ty a deux types de registres Les registres spéciaux, qui contiennent les données spécifiques au fonetionnement du mieroP (on pourrait appeler cela des paramétres). Le meilleur exemple est le registre d “entrée/sortie, qui contient un bit par entrée et donne I’état (0 ou 1) de chaque entrée. Dans le 12675, il y a5 registres spéciaux, car ce microP sait faire beaucoup de’ choses. Rassurez-vous, dans notre pratique, nous n’en utiliserons que 5, on oubliera tous les autres. Les registres généraux, qui sont & notre disposition. Dans le 12F675, il y en 64, ce qui est Iargement suffisant pour nos besoins. hitps:wwn pirain.comislectranique/micropipagedZlindex.him24 38 ‘792020 PICTRAIN- ATTENTION : les registres sont effacés lorsque 1’on coupe le courant, et on perd I’ information qui s’y trouvait. Ils ne sont done “valables” que pour la durée d’exéeution de notre programme. A initialisation (lorsque I’on met le courant), les registres spéciaux contiennent des valeurs précises données par la documentation. Comme ee ne sont pas en général celles que I’on désire, au début d’un programme, on va commencer par les changer comme il nous convient. Pour les registres généraux, leur contenu est aléatoire et inconnu, c’est & nous de les initialiser, _généralement & 0 (¢’est-a-dire tous les huit bits & zéro). On reverra tout ceci lorsque I’on attaquera (bientét) notre premier programme, RE-ATTENTION : un registre comporte toujours 8 bits, peu importe son utilisation (c’est-i-dire une valeur entre 0 et 255 ou une série de bits indépendants). Il existe des instructions travaillant sur un octet (mettre & zéro, additionner, copier...) ou sur un seul bit dans I’octet, comme mettre tel bit A 2ér0 ow un, Voici ¥ un registre plein de zéros, le chiffre décimal correspondant est zéro... @ Et un autre registre plein de uns, le chiffre décimal correspondant est 255. 0[0[0]0[O]O[o]o i1jijifijt[ififi Ofeis a+ ofels 2-0 foe +70 Toe 6 Tow i+ ites 2+ i fee a+ fo 6 “0 fois a6 « 0 fois 32 + 0 Fels 6+ 1 fois a5 + 4 fois a2 = 1 fois os +O fois ase egete zero ‘i fois 420 tgete 258 Voi registre plein de zéros et de uns et comment on caleule le chiffre décimal correspondant (99), toujours en partant de la droite. Aprés tout, ga n’ est pas radicalement différent de ce qu’ on ferait“ \gais” si ’on décomposait par exemple I’ année de la Révolution, toujours en partant de la dro’ ofili CEES 1j7([8]/9 Tiss a+atds 2-otes4sotese eae ae ey gone as rie i Siok e's 2 RE-RE-ATTENTION : il est vrai que cela commence a se compliquer, et avec les registres on entre vraiment dans la programmation des microP. Si vous avez suivi jusqu ici, tout va bien. Sinon, relisez une fois (ou deux), et si cela ne va toujours pas, exprimez-vous sur la liste Ptitrainmatique "ma pédagogie ne doit pas étre trés bonne ! A suivre : “Un peu plus sur la programmation” N.B. — Textes, schémas, programmes © Psi_pour Ptitrain. Photos Jidé ou O.R. quand Signals. — Toutes vos remarques ot commentaires sont bienvenus, et les pages de Ptitrain ne sont pas statiques : les erreurs sont corrigées sitdt connues, les Psi améliorations, écli/4/07rave; jour fréquentes. 26/3/07 > ptitrain P Electronique P PicTrain P Page suivante Ptitrin, "e-magazine du traln éclectique. — Directeur de la publication: Christophe Franchinl Rédacteur en chef Jean-Denis Rondinet hitps:wwn prain.comislectraniquelmicropipagedZlindex.him24 ais

You might also like