Documente Academic
Documente Profesional
Documente Cultură
Dpt G.E
2ème Année Automatique Nom :………………………
Examen Final :SN3 Prénom :………………………
Exercice 1(44pts)
Soit le programme 8085 suivant écrit dans la mémoire RAM à partir de
l’adresse 8000:
Programme Programme corrigé ADRESSE
ORG 3000 ORG 8000 8000
MOV C,10 MVI C,10 8000
LXI DE, E000 LXI D, E000 8002
LXI HL, 9000 LXI H, 9000 8005
A1 MVI A,M A1 MOV A,M 8008
CPI A,60 CPI 60 8009
JZ FIN JZ FIN 800A
MVI C,A MOV C,A 800D
ADD A,A ADD A 800E
INC C INR C 8010
OUT F OUT 0F 8011
STAX DE STAX D 8013
INX HL INX H 8014
DEC E DCR E 8015
DCX C DCR C 8016
JNZ A1 JNZ A1 8017
FIN : HALT FIN : HLT 801A
ORG 8000 ORG 9000 801B
DB, 0A,FF,1C,04 DB, 0A,FF,1C,04 9000
DB 05,10,60,90 DB 05,10,60,90 9004
adresses contenu
E000 20
E0FF FE
E0FE 38
E0FD 08
E0FC 0A
E0FB 20
EXERCICE 2 :(
Soit le programme suivant
EXERCICE 3 :
En utilisant les interruptions, écrire un programme en mikroc qui réalise
le fonctionnement suivant :
char i;
void interrupt ()
{
if(intcon.intf==1){ for(i=0;i<8;i++) {PORTD=(0x01<< i | 0x80>> i) ;
Delay_ms(500); }}
if(intcon.rbif==1)
{ if(portb.B5==0){ for(i=0;i<5;i++) { PORTD=(0x08<< i | 0x10>> i);
Delay_ms(500); }}}
intcon.intf=0;
intcon.rbif=0;
}
void main()
{
option_reg=0x00;
intcon=0x98;
TRISB=0xff;
TRISD=0x00;
for(;;)
{
PORTD=0x00; Delay_ms(500);
PORTD=0xff; Delay_ms(500);
}}
INSTRUCTIONS GENERALES
CALL L Branchement à un sous programme de label L 2
GOTO L Branchement à la ligne de label L 2
NOP No opération 1
RETURN Retour d'un sous programme 2
RETFIE Retour d'interruption 2
RETLW K Retour d'un sous programme avec K dans W 2
SLEEP Se met en mode standby TO, PD 1