lundi 18 décembre 2017
jeudi 14 décembre 2017
lundi 13 novembre 2017
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
Inscription à :
Articles (Atom)