lundi 13 novembre 2017

MPLAB

http://www.mediafire.com/file/kf1dvvl47cb3jai/MPLAB_IDE_v8_66.zip

Micro C

https://www.4shared.com/rar/chQUgo-7ca/mikroC_PRO_PIC.html

ISIS Prof

https://www.4shared.com/rar/ZdnNdsm7ca/Isis_Proteus_Profesional_7Lice.html

Logiciel Microprocessur 8085

http://www.mediafire.com/file/get597zfk587f1o/Microprocessor+Architecture+Programming+and+Applications+with+the+8085+Fifth+Edition-+Ramesh+Gaonkar.iso

TP 7-Commande d’un moteur DC

// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
char a,b;
void main() {
Lcd_Init();
Lcd_cmd(_Lcd_cursor_off);
a=b=48;
TRISA=0x00;
TRISB.B6=1;
TRISB.B7=1;
for(;;)
{
while(PORTB.B6==0)
{
PORTA=0x01;Lcd_out(1,1,"DROIT");
delay_ms(200);a--;
if(a==47&&b==48){a=48;b==48;}
if(a==47&&b!=48){a=57;b--;}
Lcd_chr(1,10,a);
Lcd_chr(1,9,b);
}
while(PORTB.B7==0)
{
PORTA=0x02;Lcd_out(1,1,"GOUCH");
delay_ms(200);a++;
if(a==58){a=48;b++;}
Lcd_chr(1,10,a);
Lcd_chr(1,9,b);
}
 Lcd_out(1,1,"STOPE");
 PORTA=0x00;

 }

}

TP 6-clock LCD

    // Lcd pinout settings
sbit LCD_RS at RB1_bit;
sbit LCD_EN at RB2_bit;
sbit LCD_D7 at RB6_bit;
sbit LCD_D6 at RB5_bit;
sbit LCD_D5 at RB4_bit;
sbit LCD_D4 at RB3_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB1_bit;
sbit LCD_EN_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB6_bit;
sbit LCD_D6_Direction at TRISB5_bit;
sbit LCD_D5_Direction at TRISB4_bit;
sbit LCD_D4_Direction at TRISB3_bit;
   char s1,s2,p,m1,m2,h1,h2;
   int j;
void main() {
s1=s2=m1=m2=h1=h2=48;
p=58;
j=1;
      Lcd_Init();
      Lcd_cmd(_Lcd_cursor_off);
      Lcd_chr(1,8,s1);  Lcd_chr(1,7,s2); Lcd_chr(1,6,p); Lcd_chr(1,5,m1);
      Lcd_chr(1,4,m2);Lcd_chr(1,3,p);Lcd_chr(1,2,h1);Lcd_chr(1,1,h2);Lcd_out(1,10,"LUN");
      for(;;)
      {
      delay_ms(1000);
      s1++;
      if(s1==58) {s1=48;s2++ ;}
      if(s2==54) {s1=48;s2=48;m1++ ;}
      if(m1==58) {s1=48;s2=48;m1=48;m2++ ;}
      if(m2==54) {s1=48;s2=48;m1=48;m2=48;h1++ ;}
      if(h1==58) {s1=48;s2=48;m1=48;m2=48;h1=48 ;h2++;}
       if(h2==50&&h1==52) {s1=48;s2=48;m1=48;m2=48;h1=48 ;h2=48;j++;}
      Lcd_chr(1,8,s1);  Lcd_chr(1,7,s2); Lcd_chr(1,5,m1);
      Lcd_chr(1,4,m2);Lcd_chr(1,2,h1);Lcd_chr(1,1,h2);
     if(j==1) Lcd_out(1,10,"LUN");
     if(j==2) Lcd_out(1,10,"MAR");
     if(j==3) Lcd_out(1,10,"MER");
     if(j==4) Lcd_out(1,10,"JEU");
     if(j==5) Lcd_out(1,10,"VEN");
     if(j==6) Lcd_out(1,10,"SAM");
     if(j==7) Lcd_out(1,10,"DIM");
     if (j==8) j=1;


}  }


TP5-Afficheur LCD

Les afficheurs à cristaux liquides, autrement appelés afficheurs LCD (Liquid Crystal Display), sont des modules compacts intelligents et nécessitent peu de composants externes pour un bon fonctionnement. Ils consomment relativement peu (de 1 à 5 mA), sont relativement bons marchés et s'utilisent avec beaucoup de facilité.

Plusieurs afficheurs sont disponibles sur le marché et diffèrent les uns des autres, non seulement par leurs dimensions, (de 1 à 4 lignes de 6 à 80 caractères), mais aussi par leurs caractéristiques techniques et leur tension de service. Certains sont dotés d'un rétroéclairage de l'affichage. Cette fonction fait appel à des LED montées derrière l'écran du module, cependant, cet éclairage est gourmand en intensité (de 80 à 250 mA).




Programme 1
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
void main() {
     Lcd_Init();
Lcd_cmd(_Lcd_cursor_off);
while(1)
{
Lcd_Out(1, 1, "Merci"); delay_ms(1000);
Lcd_cmd(_Lcd_clear);
delay_ms(1000);
}     }

Programme 2
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
void main() {
     Lcd_Init();
Lcd_cmd(_Lcd_cursor_off);
Lcd_Out_cp( "MOV A");
Lcd_Out_cp( ",B");
}

Programme 3
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
      char i;
void main() {
     Lcd_Init();
Lcd_cmd(_Lcd_cursor_off);
i=5;
Lcd_chr(1,1,i+48);
}



Programme 4
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
void main() {
     Lcd_Init();
Lcd_cmd(_Lcd_cursor_off);
for(;;)  {
  while(porta.b0= =0) {Lcd_out(1,1,"March"); }
   while(porta.b1= =0) {Lcd_out(1,1,"Stop"); }
   Lcd_cmd(_lcd_clear);
} }

TP 4-Afficheurs 7 segments

Les afficheurs 7 segments sont un type d'afficheur très présent sur les calculatrices et les montres à affichage numérique : les caractères (des chiffres, bien que quelques lettres soient utilisées pour l'affichage hexadécimal) s'écrivent en allumant ou en éteignant des segments, au nombre de sept. Quand les 7 segments sont allumés, on obtient le chiffre 8.



Programme 1
void main()
{
 TRISB=0x00;
 loop:
 PORTB=0x3F; delay_ms(1000);
 PORTB=0x06; delay_ms(1000);
 PORTB=0x5B; delay_ms(1000);
 PORTB=0x4F; delay_ms(1000);
 PORTB=0x66; delay_ms(1000);
 PORTB=0x6D; delay_ms(1000);
 PORTB=0x7D; delay_ms(1000);
 PORTB=0x07; delay_ms(1000);
 PORTB=0x7F; delay_ms(1000);
 PORTB=0x6F;delay_ms(1000);
 goto loop; }


Programme 2
void main()
{
 TRISB=0x00;
for(;;)
{
 PORTB=0; delay_ms(1000);
 PORTB=1; delay_ms(1000);
 PORTB=2; delay_ms(1000);
 PORTB=3; delay_ms(1000);
 PORTB=4; delay_ms(1000);
 PORTB=5; delay_ms(1000);
 PORTB=6; delay_ms(1000);
 PORTB=7; delay_ms(1000);
 PORTB=8; delay_ms(1000);
 PORTB=9; delay_ms(1000);
}}

Programme 3
void main()
{
 int x;
 TRISB=0x00;
  PORTB=0; delay_ms(1000);
for(x=0;x<9;x++)
{
 PORTB++;delay_ms(1000);
}}

Programme 4
void main()
{
 int x;
 TRISB=0x00;
  PORTB=9; delay_ms(1000);
for(x=0;x<9;x++)
{
 PORTB--; delay_ms(1000);
}}

Programme 5
void main()
{
 TRISB=0x00;
  PORTB=0;
  delay_ms(1000);
  for(;;)
  {
 PORTB++;
 delay_ms(1000);
 if (PORTB==9)
 {
 PORTB=0;
  }}}

TP 3-Microcontrôleur 16F84 a

1-objectif

Réalisation d’un circuit à base de microcontrôleur 16F84-a qui permet de l’allumage d’un LED dans  La port B0. A l’aide de l’outil « ISIS Professional » réaliser le circuit de la figure ci-dessous :


2-Règles générale d’écriture en mikro C
-Les instructions propres au langage microC doivent être écrites en minuscule
(void main (void)).
-Les instructions particulières aux microcontrôleurs doivent être écrites en majuscule
(TRISB).
-Les retours à la ligne et les espaces servent uniquement à aérer le code
-Toutes instructions ou actions se terminent par un point virgule « ; ».
3-Programme en c (logiciel mikro c)
void main()
{
TRISB=0B00000000;
PORTB=0B00000001;
}

4-Remarque :
TRISB=0B00000000 (B0-B7 output)
Tous les ports de B0-B7 sont des sorties
PORTB=0B00000001 (B0 =5v)
Alimenté B0 par une tension de 5v 

TP 2 : µp 8085-les instructions (SHLD-LHLD-ADD-SUB-ADI-SUI-ADC)

I-Les instructions
Les instructions qui constituent un programme peuvent être classifiées en 4 catégories :
1-Les instructions d’affectations (transfert) : permet de faire le transfert des données. (MOV, MVI, LXI, LDA, STA, SHLD, LHLD,…….)
2-Les instructions arithmétiques et logiques (ADD, SUB, SUI, ADI, ADC, SBB, INR, DCR, INX, DCX, ANA, ORA, XRX, ANI, XRI…..)
3-Les instructions de branchement (conditionnel et inconditionnel) : JZ, JNZ, JM, JP, JC, JNC, JPO, JPE……
4-Les instructions d’entrées sorties (IN, OUT……..)
II-Exécution d’un programme
Pour exécuter un programme par une machine, on passe par les étapes suivantes :
1-Edition : on utilise généralement un éditeur de texte pour écrire un programme et sauvegarder dans un fichier.
2-Compilation : un compilateur est un programme qui convertit le code source en un  programme écrit dans un langage machine (binaire ou hexadécimale)

3-Chargement : charger le programme en langage machine dans mémoire afin de l’exécuter.

III-Préparation :
1-Ecrire un programme en assembleur qui calculer la somme des valeurs des cases mémoires 0009H et 0010H et mettre le résultat dans les cases 0012H, 0013H.
2-Transférer un block mémoire de longueur  4 octets de l’adresse 0012H à l’adresse 0020H.
3-l’addition de nombre 05H ou contenus des registres D, C, B