TD Mup 8085 Fezari 2018
TD Mup 8085 Fezari 2018
BADJIMOKHTAR-ANNABAUNIVERSITY
UNIVERSITE BADJI MOKHTAR ANNABA عنابـة-جامعة باجي مختار
POLYCOPIE
TRAVAUX Dirigés
Microprocesseurs et Interfaces
nnée Universitaire : 2017-2018
1
Travaux Dirigés
« Microprocesseur
Et Conception de Système à
Microprocesseur »
2
Préface
L'objectif de ces travaux dirigés est double : présenter les notions de base
nécessaires à la compréhension des systèmes utilisant des microprocesseurs à
8 et 16 bits par une série d’exercices et réaliser des devoirs permettant de
programmer en langage machine (assembleur) des applications d’acquisition
de données.
Mohamed FEZARI
4
TABLE DES MATIERES
TD 6 : Boucle de temporisation 12
interface Up-CAN 25
ANNEXES 29
5
TD 1 : Présentation du KIT DSK -8085
6
Travail à Faire :
7
TD2 : Architecture interne et jeux
d’instruction en Assembleur
8
TD 3 Instructions arithmétiques
Ex2 : Ecrire un programme qui calcul C=B-A pour deux mots A, B à 16 bits.
Ex3 : écrire un programme qui calcule la somme des cases mémoires 8000-
8010 et range le résultat dans la case 8020.
Ex4 : écrire un programme qui calcul le nombre de case contenant une valeur >
0F dans l’espace 8000-8020.
9
TD 4 Boucle et manipulation de Vecteurs
( Devoir n : 2)
Ex2 : Ecrire un programme qui calcul le nombre de répétition des voyelles ’a’,
‘e’ et ‘o’ dans l’espace mémoire 800-8040 et range les résultats dans les cases
8050, 8051 et 8052.
Ex3 : Nous voulons stocker dans l’espace mémoire une image 16*16 pixels à
partir de la case mémoire 8000, les pixels sont rangés ligne par ligne ,
développer un programme pour calculer le nombre de pixels ‘rouge’ et le
nombre de pixels ‘bleu’ et ranger les résultats dans les cases 8100 et 8101.
10
TD 5 : Multiplication et Division
Ex1 : Ecrire un programme qui calcule la somme de deux valeurs à 16 bits
A+B=C
Ou A=ahal et B=bhbl et C=chcl correspondent aux cases mémoires
respectivement :8000,8001 pour A 8002,8003 pour B et 8004,8005 pour C.
Ex2 :ecrire un programme qui fait la division d’un nombre multiple de 2 par 2.
Ecrire un programme qui fait la division d’un nombre multiple de2 par un autre
nombre multiple de 2.
Ex4: Réaliser une carte à microprocesseurs 8085 avec des interfaces type buffers
et latchs, la carte doit supporter 12 capteurs type TOR et 22 actionneurs type
TOR.
Donner un synoptique.
Citer les circuits de bases de cette carte.
Take a look at simulator of VIKAs et et Jubin Mitra simulator for 8085
microprocessor.
11
TD : 6 : Boucle de temporisation
Ex3 : écrire un programme qui calcule le produit de deux cases mémoire 8000
et 8001 et range le résultat dans 8010 et 8011.
Ex4 : écrire un programme qui calcule la valeur maxi et mini dans le block
mémoire 8000-8010 et range les résultats dans 8020 et 8021.
Ex6 : Ecrire un programme qui fait cognotter les LEDs entre 00 et FF avec
temporisation de 500 ms.
sachant qu’il existe dans la mémoire moniteur un programme de temporisation
de 1 mili seconde(ms) à l’adresse : 0FFA.
Si on veut l’utiliser, il faut charger le registre pair DE par le nombre de ms qu’on
veut.
Exemple : pour avoir une temporisation d’une seconde :
LXI D,0400
CALL 0FFA.
12
TD 7 : interface Parallèle PIO-8255 du
microprocesseur
13
‘IO’ +51 lire data sur port 51 et range dans Ac.
Travail a Faire:
PORT A 50
PORT B 51
PORT C 52
Registre Contrôle 53
Le port A est relié aux LEDs , Et le PORT B est relié aux Interrupteurs.
Example :
7002 OUT 53
7006 OUT 50
7008 RST 1
Example 2:
14
7000 MVI A,82
7002 OUT 53
7004 IN 51
7009 RST 1
Pour avoir une temporisation supérieure il faut charger le registre pair DE par
le nombre de milli-sec voulue.
Tempo=(DE)*1ms
LXI D, 0400
CALL 0FFA
3) Ecrire un programme qui lit l’état des interrupteurs relié au port B du PIO et
range les données dans l’espace mémoire 8010-801A.
Note : il faut trouver une solution pour synchroniser la saisie des données.
15
TD : 8 Exploitation de l’Interface Parallèle
dans un system à Microprocesseur
Exploitation des E/S sur Kit SDK-8085, et manipulation des Buffer et latch pour
multiplexer les E/S et réaliser des interfaces //.
Travail à faire :
1) Ecrire un programme qui affiche sur les LED du Kit SDK-8085, relié au port A,
un jeu de lumière selon l’état de l’interrupteur I0.
16
Si I0= 0 alors les LED clignotent entre 00 et ff , Delay 500ms
c) Donner une solution d’une interface pour machine avec 25 input (TOR) et 28
output TOR en utilisant des buffers et Latch ( sans PIO-8255). Donner
synoptique et décodage d’adresse.
3) Ecrire un programme qui simule la rotation d’un moteur pas-à pas dans les
deux sens selon l’état d’un interrupteur I1.
Si I1=0 alors le moteur tourne dans le sens des aiguilles de la montre, si I1=1 le
moteur tourne dans le sens inverse.
17
TD 9 : Exploitation du PIO pour émulation des
feux tricolores
But : Exploitation du PIO en I/O et multiplexage des lignes du PIO disponible
sur SDK-85.
Travail à Faire :
1 :Ecrire un programme pour émuler les feux tricolores d’un croisement avec 2
temporisation vert1=15s jaune1=3s et rouge1= 20s.
18
Améliorer le programme pour qu’il tienne en considération les modifications.
3 : Multiplexage du PIO
19
TD 10 : Interface Seri ACIA-6850 ou UART-8251
20
Dans exercice 1 et 2, Le protocole de communication est comme suite :
21
TD 11 : Interface Up- CNA
22
En supposant que l’adresse de base du DAC est : 60hex.
Ex2 : Ecrire un programme qui lit une consigne sur port B et envoie la consigne
au CNA, tempo4 sec et boucler le programme.
Ex3 : Écrire des programmes pour sortir une séquence binaire afin de générer:
Les ondes doivent être périodiques, avec une période contrôlable par une
échelle stockée dans une adresse RAM spécifique. Sélectionnez une plage de
23
fréquences raisonnable, en tenant compte des propriétés dynamiques du DAC
et de votre micro-ordinateur. Afficher les formes d'onde de sortie sur un
oscilloscope.
24
TD 12 : Notion d’acquisition d’un signal
analogique et interface Up-CAN
Objective : Avoir une notion sur l’acquisition d’un signal analogique avec carte
à microprocesseur. Développement d’une interface pour acquisition des
signaux analogiques et adaptation des signaux analogiques avec les
convertisseurs à 8 bits.
25
Travail à Faire :
1) Ecrire un programme qui fait la saisie d’un signal analogique issue d’un
capteur de température et range le résultat dans l’espace mémoire 8000-8100
fréquence d’échantillonnage 10 Hz et durée de saisie 10 mn.
26
d) écrire un programme d’initialisation des ports.
27
REFERENCES :
1) http://www.samomoi-technos.com/microprocesseur.php disponible en
Mars-2018
2) KIT de développement SDK-8085 de MIDICOM
3) https://8085simulator.codeplex.com/ disponible en Mars-2018
4) http://www.oshonsoft.com/8085.html disponible en Mars-2018
5) Aumio « emploie des microprocesseur »,
6) https://www.bestcours.com/cours-pdf-microprocesseur-8085
disponible en Mars-2018
7) https://archive.codeplex.com/?p=8085simulator disponible en Mars-
2018
28
ANNEXE 1
29
ANNEXE 2
30
ANNEXE 3
31
8085 Simulator
By Jubin MITRA
System Requirements:
Screenshot:
32
Features:
Assembler Editor
Can load Programs written in other simulator
Auto-correct and auto-indent features
Supports assembler directives
Number parameters can be given in binary, decimal and hexadecimal format
Supports writing of comments
Supports labeling of instructions, even in macros
Has error checking facility
Syntax Highlighting
Disassembler Editor
Supports loading of Intel specific hex file format
It can successfully reverse trace the original program from the assembly code, in most of the cases
Syntax Highlighting and Auto Spacing
Assembler Workspace
Contains the Address field, Label, Mnemonics, Hex-code, Mnemonic Size, M-Cycles and T-states
Static Timing diagram of all instruction sets are supported
Dynamic Timing diagram during step by step simulation
It has error checking facility also
Memory Editor
Can directly update data in a specified memory location
It has 3 types of interface, user can choose from it according to his need.
o Show entire memory content
o Show only loaded memory location
o Store directly to specified memory location
Allows user to choose memory range
I/O Editor
It is necessary for peripheral interfacing.
Enables direct editing of content
Interrupt Editor
All possible interrupts are supported. Interrupts are triggered by pressing the appropriate column (INTR,
TRAP, RST 7.5, RST 6.5, RST 5.5) on the interrupt table. The simulation can be reset any time by
pressing the clear memory in the settings tab.
Debugger
Support of breakpoints
Step by step execution/debugging of program.
It supports both forward and backward traversal of programs.
Allows continuation of program from the break-point.
Simulator
There are 3 level of speed for simulation:
33
o Step-by-step : Automatic line by line execution with each line highlighting. The time to halt at
each line is be decided by the user.
o Normal : Full execution with reflecting intermittent states periodically.
o Ultimate : Full execution with reflecting final state directly.
There are 2 modes of simulator engine:
o Run all at a Time : It takes the current settings from the simulation speed level and starts
execution accordingly.
o Step by Step : It is manual mode of control of FORWARD and BACKWARD traversal of
instruction set. It also displays the in-line comment if available for currently executed instruction.
o Allows setting of starting address for the simulator
o Users can choose the mnemonic where program execution should terminate
Helper
Help on the mnemonics is integrated
CODE WIZARD is a tool added to enable users with very little knowledge of assembly code could also
8085 assembly programs.
Already loaded with plenty SAMPLE programs
Dynamic loading of user code if placed in user_code folder
It also includes a user manual
Printing
Assembler Content
Workspace Content
Register Bank --> Each register content is accompanied with its equivalent binary value*
o Accumulator, Reg B, Reg C, Reg D, Reg E, Reg H, Reg L, Memory (M)
o Flag Register
o Stack Pointer (SP)
o Memory Pointer (HL)
o Program Status Word (PSW)
o Program Counter (PC)
o Clock Cycle Counter
o Instruction Counter
o Special blocks for monitoring Flag register and the usage of SIM and RIM instruction
Crash Recovery
Can recover programs lost due to sudden shutdown or crash of application
TOOLS
Insert DELAY Subroutine TOOL
o It is a powerful wizard to generate delay subroutine with user defined delay using any sets of
register for a particular operating frequency of 8085 microprocessor.
Interrupt Service Subroutine TOOL
o It is a handy way to set memory values at corresponding vector interrupt address
Number Conversion Tool
34
o It is a portable interconversion tool for Hexadecimal, decimal and binary numbers. So, that user
do not need to open separate calculator for it.
35