Prog en ASM ( c urgent)

kikina062 Messages postés 6 Statut Membre -  
 flo -
salem alykom, j'ai un examen et j'ai 2 exo mais je n'arrive pa à les résoudres, si qlqu'un peut m'aider?

enoncé: 1er exo:
Donner un synoptique d'une carte de commande de deux moteurs (M0 et M1) sur port B suivant l'etat de 2 interrupeteurs(I0,I1) sur port (pa0,pa1) du PIC16F84 et écrire un programme.
Si I0=I1=0 alors M0 et M1 à l'arrêt, Si I0=1 et I1=0 alors M0 tourne
Si I0=0 et I1=1 alors M1 tourne, Si I0=I1=1 alors les 2 moteurs tournent dans le sens inverse.En utilisant le PIC16F84

un 2ème exo:
Ecrire un programme en assembleur et code machine qui lit un ensemble de données dans le block mémoire 8000 à 8010 et envoie ces données vers l'ensemble de LED avec une temporisation permettant de visualiser les données sur LED.
A voir également:

1 réponse

flo
 
Moi g créé ca (g qe 11 ans):

double reponse=0,nombre1=0,nombre2=0,resultat1=0,resultat2=0,resultat3=0,resultat4=0,resultat5=0,resultat6=0,a1=0,b1=0;
printf(" ===CALCULATRICE===
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%f",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%f",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%f",&nombre2);
resultat1=nombre1+nombre2;
printf("\n%f+%f=%f\n\n",nombre1,nombre2,resultat1);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat1=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat1);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat1=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat1);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat1=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat1);
}
if(reponse==5)
{
printf("\n\nPuissance\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat1=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat1=resultat1*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat1);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.---\n2.---\n3.---\n4.---\n5.---\n\n");
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
if(reponse==1)
{
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%d",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat2=nombre1+nombre2;
printf("\n%d+%d=%d\n\n",nombre1,nombre2,resultat2);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat2=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat2);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat2=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat2);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat2=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat2);
}
if(reponse==5)
{
printf("\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat2=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat2=resultat2*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat2);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat2=resultat2+1;
a1=resultat2*resultat2;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat2);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.%d\n2.---\n3.---\n4.---\n5.---\n\n",resultat1);
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
}
if(reponse==1)
{
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%d",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat3=nombre1+nombre2;
printf("\n%d+%d=%d\n\n",nombre1,nombre2,resultat3);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat3=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat3);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat3=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat3);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat3=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat3);
}
if(reponse==5)
{
printf("\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat3=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat3=resultat3*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat3);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat3=resultat3+1;
a1=resultat3*resultat3;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat3);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.%d\n2.%d\n3.---\n4.---\n5.---\n\n",resultat1,resultat2);
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
}
if(reponse==1)
{
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%d",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat4=nombre1+nombre2;
printf("\n%d+%d=%d\n\n",nombre1,nombre2,resultat4);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat4=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat4);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat4=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat4);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat4=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat4);
}
if(reponse==5)
{
printf("\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat4=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat4=resultat4*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat4);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat4=resultat4+1;
a1=resultat4*resultat4;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat4);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.%d\n2.%d\n3.%d\n4.---\n5.---\n\n",resultat1,resultat2,resultat3);
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
}
if(reponse==1)
{
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%d",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat5=nombre1+nombre2;
printf("\n%d+%d=%d\n\n",nombre1,nombre2,resultat5);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat5=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat5);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat5=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat5);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat5=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat5);
}
if(reponse==5)
{
printf("\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat5=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat5=resultat5*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat5);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat5=resultat5+1;
a1=resultat5*resultat5;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat5);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.%d\n2.%d\n3.%d\n4.%d\n5.---\n\n",resultat1,resultat2,resultat3,resultat4);
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
}
do
{
if(reponse==1)
{
do
{
printf("\n\nChoisisez un mode:\n1-Addition\n2-Soustraction\n3-Multiplication\n4-Division\n5-Puissanse\n6-Racine carre\n7-Racine cubique\n8-Les 5 derniers resultats\n\nnumero de mode:");
scanf("%d",&reponse);
if(reponse==1)
{
printf("\n\nAddition\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat6=nombre1+nombre2;
printf("\n%d+%d=%d\n\n",nombre1,nombre2,resultat6);
}
if(reponse==2)
{
printf("\n\nSoustraction\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat6=nombre1-nombre2;
printf("\n%d-%d=%d\n\n",nombre1,nombre2,resultat6);
}
if(reponse==3)
{
printf("\n\nMultiplication\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat6=nombre1*nombre2;
printf("\n%dX%d=%d\n\n",nombre1,nombre2,resultat6);
}
if(reponse==4)
{
printf("\n\nDivision\n\nChoisissez le premier nombre:");
scanf("%d",&nombre1);
printf("\n\nChoisissez le deuxieme nombre:");
scanf("%d",&nombre2);
resultat6=nombre1/nombre2;
printf("\n%d:%d=%d\n\n",nombre1,nombre2,resultat6);
}
if(reponse==5)
{
printf("\n\nTapez le nombre:");
scanf("%d",&nombre1);
printf("\n\n%d puissanse:",nombre1);
scanf("%d",&a1);
nombre2=nombre1+0;
resultat6=nombre1;
b1=a1+0;
a1=1;
do
{
a1++;
resultat6=resultat6*nombre2;
}
while(a1!=b1);
printf("\n\n%d puissanse %d=%d\n\n",nombre2,b1,resultat6);
}
if(reponse==6)
{
printf("\n\nRacine carre\n\nRacine carre de:");
scanf("%d",&nombre1);
do
{
resultat6=resultat6+1;
a1=resultat6*resultat6;
}
while(a1<nombre1);
printf("\nLa racine carre de %d=%d\n\n",nombre1,resultat6);
}
if(reponse==7)
{
printf("\n\nRacine cubique\n\nRacine cubique de:");
scanf("%d",&nombre1);
do
{
resultat1=resultat1+1;
a1=resultat1*resultat1;
a1=a1*resultat1;
}
while(a1<nombre1);
printf("\nLa racine cubique de %d=%d\n\n",nombre1,resultat1);
}
if(reponse==8)
{
printf("\n\nLes 5 derniers resultats\n\n1.%d\n2.%d\n3.%d\n4.%d\n5.%d\n\n",resultat1,resultat2,resultat3,resultat4,resultat5);
}
}
while(reponse==8);
printf("Voulez vous faire un autre calcul?\n1-Oui\n2-Non\n\n");
scanf("%d",&reponse);
}
resultat1=resultat2;
resultat2=resultat3;
resultat3=resultat4;
resultat4=resultat5;
resultat5=resultat6;
}
while(reponse!=2);
0
flo
 
dans le main()
mais on peut passer par des Header
0
flo
 
ya des mot coupés dsl
0
flo
 
oups j'me suis trompé de personne DSL
0