Vous êtes sur la page 1sur 17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

ARCHITECTURE DUNE MACHINE INFORMATIQUE SYNCHRONE PILOTEE PAR UNE HORLOGE


I) Fonctions de base dune machine informatique

Contenir de faon permanente les tches excuter (mmoire programme) en ROM ou sur support magntique. Contenir de faon temporaire des donnes (mmoire de travail) en RAM. Permettre un dialogue avec lextrieur (circuit dinterface entre/sortie) : PIA- ACIA- TIMER PIO- USART SIO- UART. Effectuer des oprations arithmtiques et logiques lmentaires (UAL, en anglais ALU). Organiser des transits dinformations (unit de contrle : U.C.) Cadencer les diffrentes informations (Horloge) Pointer ltape du programme en cours (P.C. : compteur programme, en anglais Program Counter).

II)

Schma fonctionnel dune machine informatique


Horloge Unit de contrle P 1 U.A.L. Interface d entre Interface de sortie Mmoires DMA DMA

P1

Pn

P n

A) Pn : Priphriques dentres Clavier Souris Joystick Ecran tactile B) Registres mmoires A accs dit alatoire cest dire, temps daccs indpendant de lemplacement de la donne stocke. RAM : Statique Lecture seule : ROM Dynamique PROM REPROM Page n1/17 Lecteur de bande magntique Lecteur de cartes Chanes dacquisition de donnes Crayon optique

Cours 68HC11 C) Mmoires de masse Accs squentiel : Accs alatoire : Bandes magntiques Disquettes Disques durs Cdroms

S.T.I. Gnie Electrique option Electronique

D) Pn : Priphriques de sortie Dispositifs de visualisation : Imprimante Table traante Perforatrice de bandes Synthtiseur vocal Lecteur disquette DELs Affichage alphanumrique Ecran vido

III)

Architecture dun systme microprocesseur


A) Structure : P 68HC11 MOTOROLA

Bus de donnes bidirectionnel

(UCT) CPU Central Processing Unit

Bus de contrle

Mmoires

Circuits d interface entre/sortie

Extrieur Les priphriques chez MOTOROLA sont considrs comme des accs mmoires.
B) Notion de programme source et programme objet Programme source : Traduction de lalgorithme dans un langage comprhensible par la machine informatique (BASIC, PASCAL, C, FORTRAN, COBOL, ALGOL, PL1, ADA, LOGO, LSE, DELPHI, etc ...). Programme objet : Traduction du programme source en instructions codes en binaire, seul langage excutable par le microprocesseur.

16

Bus d adresses unidirectionnel

Page n2/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Passage du programme source au programme objet :


Programme source crit en Binaire Hxadcimal Mnmonique Langage volu: * Basic * Pascal Interprteur (logiciel) Ligne ligne chaque excution Compilateur (logiciel) Globalement une seule fois Conversion Hxadcimal/binaire Assembleur (logiciel) Dsassembleur (logiciel) Mode de traduction Programme objet en Matriel

Binaire

C) Structure interne 68HC11

Mapping mmoire du 68HC11. Le 68HC11 est un microcontrleur. Cest un microprocesseur qui possde de la RAM, ROM et divers priphriques dentres/sorties. Un microcontrleur peut donc tre utilis seul, car il est lui seul une machine informatique. Un microprocesseur, PENTIUM, 6809, Z80, etc..., ne peut fonctionner seul, il a ncessairement besoin de ROM et de RAM externes.

Page n3/17

Cours 68HC11
E 1,8432M H z OSC 7,3728M H z
RES ET IRQ X IRQ

S.T.I. Gnie Electrique option Electronique

Bus de donnes

Bus d adresses

MODA*

14,745 6MH z

V MA V PA R/W

Mode
*Conf ig urable par cavaliers

MODB*

Osc

/2

Gestion des interruptions

Gestion priphriques externes EPROM 8K ou 32K selon la version RAM 8K ou 24K selon la version SCI Conversion A/N

Pas Pas Conversion N/A 12 Bits (en option)

XIRQ AGND Vref Vout

Compteur systme
Pulse accumula tor

CPU 68HC11A1

Liaison RS232 n2 IRQ (en option)


PD0 PD1

EEPROM 512 octets

RAM 256 octets

SPI

Non dis poni ble sur version LC

Port A

Port B
PB0 STRA STRB PC7

Port C

Port D

Port E

Adaptateur RS232C

RX1 TX1

Architecture dun microprocesseur de la famille 68HC11. Lunit centrale 68HC11 est drive du vieux 6801. Il existe une grande varit de 68HC11, issus du 68HC11A8. Autour de lunit centrale du 68HC11, on trouve de la mmoire. Elle se subdivise au maximum en trois blocks distincts dont la taille et la prsence varient selon les rfrences exactes du circuit : RAM ( 256 octets minimum), ROM (prsente ou absente) et EEPROM. Cette unit centrale est entoure dun certain nombre de ports parallles baptiss port A port E qui peuvent tre bidirectionnels ou unidirectionnels selon le cas. Un timer est galement disponible. Il comporte plusieurs timers trs volus, ainsi quun accumulateur dimpulsions, une horloge temps rel et un chien de garde (ou COP : Computer Operating Properly) destin surveiller le fonctionnement du microcontrleur. Un convertisseur analogique/numrique huit entres complte les ressources internes du 68HC11.

Page n4/17

RX2 TX2

PB7

PC0

PD5

PD0

PA7

PA0

PE3

PE0

Cours 68HC11 D) Accumulateurs


7

S.T.I. Gnie Electrique option Electronique

07

D
15 15 15 15

0 Accumulateur 8 bits A et B ou Accumulateur 16 bits D 0 Registre d'index X 0 Registre d'index Y 0 Pointeur de Pile Compteur de programme Registre d'tat Retenue Dpassement Zro Ngatif Masque d'interruption I Demi-Retenue Masque d'interruption X Inhibition Stop

IX IY SP PC

0 7 0 S X H I N Z V C

Registres de travail du 68HC11 Accumulateurs A, B et D : Les registres A et B sont des accumulateurs 8 bits indpendants utiliss pour toutes oprations arithmtiques et logiques. A et B peuvent tre concatns et former un accumulateur D de 16 bits. Attention cet accumulateur nest pas indpendant de A et B. Registres dindex X et Y : Les registres dindex X et Y, indpendants, possdent 16 bits chacun, puisque la capacit dadressage du 68HC11 est de 16 bits dadresses. Leur rle premier est dtre utilis pour ladressage index, mais ils peuvent tre utiliss pour le stockage temporaire de donnes, ou pour quelques oprations arithmtiques lmentaires. Pointeur de pile S : Le pointeur de pile S est un registre 16 bits. Ce registre pointe sur la premire adresse libre de la zone mmoire dfinie pour ranger diffrents paramtres, tel registre PC, registre CCR, etc ..., suivant la demande (interruption, appel un sous-programme). Il est indispensable de linitialiser une adresse RAM, sinon la premire interruption ou appel un sous-programme, le programme se plantera (bug). Compteur programme ou PC : Le compteur programme, PC, indique ladresse du prochain code binaire 8 bits (instruction ou valeur de travail) traiter. La taille du registre PC est donc de 16 bits. Registre dtat ou CCR : Le registre dtat ou CCR ( Condition Code Register) est un registre sur 8 bits. Chaque bit une signification particulire. Le bit C (Carry) : C est mis 1 lorsquune opration arithmtique gnre une retenue. Il est galement utilis comme indicateur derreur lors dune multiplication ou dune division, et sert lors de certaines oprations de dcalage ou rotation qui peuvent passer par son intermdiaire ou non. Le bit V (oVerflow) : V est mis 1 lorsquune opration arithmtique gnre un dbordement de laccumulateur. Le bit Z (Zero) : Z est mis 1 lorsque le rsultat de linstruction excut est nul. Page n5/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Le bit N (Negative) : N est mis 1 lorsque le rsultat de la dernire opration arithmtique ralise est ngatif (bit de poids fort du rsultat 1). Le bit H (Half carry) : H, demi-retenue, est mis 1 lors dune retenue entre les bits 3 et 4 dune opration arithmtique. Il nest affect que par les instructions ADD, ADC et ABA, et est ensuite exploit par linstruction DAA pour raliser de larithmtique DCB (en anglais BCD), cest dire code en fait sur 2 groupes de 4 bits. Le bit I (Interrupt mask) : I interdit toute interruption masquable lorsquil est mis 1. C'est dire qu'il permet d'autoriser les interruptions du TIMER, ACIA et autres. Suite un RESET, I est mis 1. Le bit X (Xirq interrupt mask) : X interdit toute interruption masquable lorsquil est mis 1. Suite un RESET, X est mis 1. Attention XIRQ est une interruption non masquable en gnral, mais dans le cas du 68HC11, il est possible de la masquer. Le bit S (Stop disable) : S est mis 1 pour interdire lexcution de linstruction STOP. Elle sera considre comme un simple NOP (No OPeration). Il existe certaines instructions pour manipuler directement certains bits du registre CCR. E) Dfinitions des signaux de contrle Alimentation (VDD et VSS) : VSS=0V et VDD=+5V 5%. MODB 0 0 1 1 MODA / LIR et MODB/Vstby : MODA Mode de fonctionnement 0 Normal- Circuit seul 1 Normal- Etendu 0 Spcial- Bootstrap 1 Spcial- Test

EXTAL et XTAL : Entres du quartz pour gnrer le signal dhorloge E. On peut aussi appliquer seulement un signal dhorloge sur lentre EXTAL. E: E est une sortie dhorloge de bus. Sa frquence est gale au quart de la valeur du quartz. Ltat logique de E, haut ou bas, indique si des donnes ou des adresses valides sont prsentes sur le bus du 68HC11. RESET : Entre RESET active au niveau bas. Mais elle peut devenir une sortie, dans le cas du chien de garde ou COP, active l aussi au niveau bas. IRQ : Entre dinterruption masquable (voir bit I du registre CCR et bit IRQE du registre option). XIRQ : Entre dinterruption non masquable (voir bit X du registre CCR). Cette interruption est quand mme masquable. VREFL et VREFH : VREFL et VREFH sont respectivement des entres de rfrence basse et haute du convertisseur analogique/numrique. Pour une bonne prcision, la diffrence de potentiel entre VREFH et VREFL doit tre au moins de 2,5V, mais reste dans les limites de VDD et VSS.

Page n6/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Port E : PE0 PE7 sont des entres du port parallle E. Ces lignes sont unidirectionnelles et ne fonctionnent quen entre. De plus elles sont partages avec les entres du convertisseur analogique/numrique. Il est possible de faire travailler le port E en numrique et en analogique en mme temps (il faudra soigner le programme sous peine de lgres perturbations). Port D : PD0 PD5 sont des entres ou sorties du port parallle D. Ces lignes sont programmables indpendamment en entre ou sortie. La programmation du port D est ralise par le registre DDRD, registre de programmation des lignes du port D. Port C : PC0 PC7 sont des entres ou sorties du port parallle C. Ces lignes sont programmables indpendamment en entre ou sortie. La programmation du port C est ralise par le registre DDRC, registre de programmation des lignes du port C. En mode tendu, le port C devient bus de donnes (8 bits) ou bus de poids faible des adresses (8 bits) (multiplexage des diffrents bus). Port B : PB0 PB7 sont des sorties du port parallle B. En mode tendu, le port B devient bus de poids fort des adresses (8 bits). STRA/AS : STRA est une entre permettant de mmoriser des donnes prsentent sur le port C en entre. STRA est actif sur un front programmable. S TR B / R / W : STRB est une sortie indiquant lorsque des donnes sont prsentent sur les lignes du port B et C qui ont t places en sorties (fonction strobe). Port A : PA0 PA2 sont des entres du port parallle A, P3 PA6 sont les sorties de ce port et PA7 est lentre ou sortie de ce mme port. Ces lignes sont partages par le timer. PA0 PA2 sont les entres de capture IC3 IC1 du timer. PA3 PA6 sont les sorties de comparaison OC1 OC5 du timer. PA7 peut tre configur en entre de capture ou sortie de comparaison.

IV)

Structures algorithmiques fondamentales


A) Dfinitions :

Organigramme : (en anglais flowchart, se dit aussi ordinogramme) cest un schma synoptique qui analyse dans le dtail les diffrentes phases du problme traiter. Algorithgramme : Cest la transposition dun organigramme en tches simplifies.

Page n7/17

Cours 68HC11 B) Structure linaire ou squentielle :


Ex: P = U x I DEBUT

S.T.I. Gnie Electrique option Electronique C) Structure itrative : 1) Structure itrative : boucle tant que : Tant que < condition ralise > Faire quelque chose Rpter
Oui Condition ralise? Faire quelque chose Sortie

Saisir la valeur de u et la mmoriser

Saisir la valeur de I et la mmoriser

Afficher le rsultat P=UxI

Remarque : Le travail peut ne jamais tre effectu. 2) Structure itrative : boucle jusqu : Faire quelque chose Jusqu ce que < condition ralise >

FIN

Faire quelque chose

Condition ralise?

Non

Sortie

Remarque : Le travail effectuer lest au moins une fois. D) Structure alternative :


Ex: Un candidat est reu au bac si
M 10

M 10

M 8

Candidat dclar Reu

Candidat admis au 2e groupe dpreuves

Candidat refus

FIN

FIN

Page n8/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

V)

Modes dadressage
A) Adressage inhrent :

Ce mode nest pas proprement parler un mode dadressage, mais tous les fabricants le dcomptent comme tel. Les instructions agissent sur les registres internes du microprocesseur. Les instructions comportent donc un code oprateur seul sans oprande. ABA Additionne le contenu de A avec celui de B. Le rsultat se trouve dans A. ASLA Effectue un dcalage vers la gauche des bits de A. B) Adressage immdiat : Dans ce mode dadressage, le code oprateur est suivi par la donne manipuler, code oprande, qui est prcde par le symbole #. Linstruction est donc compos dun code oprateur, dun # et enfin dun code oprande. LDAA #55 Stocke la valeur 55 en dcimale dans le registre A. LDD #$5A0 Stocke la valeur 5A0 en hexadcimale dans le registre D. C) Adressage direct : Ce mode dadressage, que lon peut confondre avec ladressage immdiat, est le premier vrai mode dadressage du 68HC11. Le code oprateur est suivi dun octet non sign qui est ladresse effective de la donne , ou oprande, manipuler. Ne codant ladresse que sur un octet, il nest possible que dadresser les 256 premiers octets, ladresse $00 ladresse $FF, de lespace adressable du microcontrleur. LDAA $55 Stocke la valeur contenue ladresse $0055 dans le registre A. ADDA 55 Additionne la valeur contenue ladresse $0037 avec la valeur contenue dans le registre A. Rsultat de lopration arithmtique dans le registre A. D) Adressage tendu ou absolu : Ce mode dadressage est une volution du prcdent et permet datteindre nimporte quelle adresse mmoire car il autorise un codage de ladresse effective sur deux octets, ou 16 bits. Le champs mmoire adressable est donc de $0000 $FFFF. Loprande est donc cod sur 2 octets. LDAA $B05A Stocke la valeur contenue ladresse $B05A dans le registre A. ADDA $B05A Additionne la valeur se trouvant ladresse $B05A avec la valeur contenue dans le registre A. Rsultat de lopration arithmtique dans le registre A. E) Adressage index avec dplacement dune constante : Ce mode dadressage est particulirement souple et fait intervenir deux facteurs dans le calcul de ladresse effective : le contenu dun des registres dindex X ou Y et une donne appele dplacement ou offset (non sign). LDAA $33,X Stocke la valeur se trouvant ladresse X+$33 dans le registre A. ADDA $33,Y Additionne la valeur contenue ladresse Y+$33 avec la valeur contenue dans le registre A. Rsultat de lopration arithmtique dans le registre A. STAB ,X Stocke la valeur contenue dans le registre B ladresse X, car loffset est de 0 ici. Page n9/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

F) Adressage index avec dplacement accumulateur : Ce mode fonctionne de la mme manire que prcdemment, cependant loffset nest plus une constante, mais un registre du 68HC11. LDAA B,X Stocke la valeur se trouvant ladresse X+B dans le registre A. X tant un registre sur 16 bits et B un registre sur 8 bits. Remarque : On peut conclure que loffset est une donne sur 8 bits non signe. Il ne peut donc varier que $00 $FF. G) Adressage relatif : Ce mode dadressage se rencontre quasiment sur tous les microprocesseurs, mais nest utilis ici que pour les instructions de saut et branchement. Il spcifie ladresse effective sous forme dun dplacement qui est donc ajout la valeur courante du PC pour dterminer ladresse de poursuite du programme. Comme lors de lexcution dune instruction, le PC pointe toujours sur linstruction suivante, ladresse effective est en fait gale la valeur courante du PC+2+le dplacement. Le dplacement est cod sur un octet sign, d'o un dplacement de 128 +127 en base dcimale. BEQ $FB Aprs excution de la ligne de commande le contenu du PC sera additionn 5 si le bit Z est 1, sinon le contenu du PC sincrmentera de +2. BCC $10 Aprs excution de la ligne de commande le contenu du PC sera additionn +16 si le bit C est 0, sinon le contenu du PC sincrmentera de +2.

VI)

Jeux dinstructions du 68HC11

Page n10/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n11/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n12/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n13/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n14/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n15/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n16/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

VII) Editeur assembleur :


A) Fentre de l'diteur : Commentaire car symbole * en dbut de ligne
* Programme Principal * *---------------------* ORG * DEBUT CONT CONT1 LDS JSR JSR JSR BNE JSR JSR JSR BNE BRA DEBROM #PILES INILED1 TEMPO ROTDR CONT1 INILED2 TEMPO ROTGA CONT2 CONT * * * * * * * * * * * * Directive d'assemblage: mettre ce qui suit l'adresse $F000 Initialisation pile systme Appel au S/prg initialisation LED1 Appel au S/prg temporisation 0,5s Appel au S/prg rotation droite LEDs Z=0? Si oui, branchement CONT1 Appel au S/prg initialisation LED2 Appel au S/prg temporisation 0,5s Appel au S/prg rotation gauche LEDs Z=0? Si oui, branchement CONT2 Branchement inconditionnel CONT

Champ commentaire

Champ tiquette

CONT2

Champ oprateur (code mnmonique ou directive d'assemblage)

Champ oprande

On remarque que l'cran se dcoupe en 4 champs : Champ tiquette Champ oprateur (code mnmonique) ou directive d'assemblage Champ oprande Champ commentaire Pour passer d'un champ un autre, il suffit de mettre un espace avec la touche espace ou TAB. Plusieurs espaces accols correspond un seul et mme espace. Attention on ne peut sauter des champs, c'est dire passer du champ tiquette au champ oprande. Seul le champ commentaire est un peu particulier. Si un champ quelconque est rempli, on peut aller directement au champ commentaire. Il y a une exception, lorsqu'aucun champ n'est rempli, l'diteur considre que toute la ligne est un champ commentaire, d'o la condition de mettre * en dbut de ligne. On n'utilisera pas d'tiquette comportant plus de 8 caractres du code ASCII standard. B) Directives d'assemblage : END EQU ORG Fin du fichier contenant le programme. Permet de donner des quivalences. Ex: PORTB EQU $1004. Dtermine o le compilateur dot mettre les codes qui suivent cette commande. Ex: ORG $1000. Rserve une quantit de mmoire (octet). Ex: RMB 8 Permet de mettre des valeurs d'octets fixes dans des zones mmoire. Permet de mettre des valeurs de mots de 16 bits dans des zones mmoire Permet de mettre des caractres de la table ASCII dans des zones mmoire FCB, FCD, FCC et RMB s'utilisent avec la commande ORG afin de spcifier les zones mmoires affectes. Page n17/17

RMB FCB FCD FCC Remarque :

Vous aimerez peut-être aussi