- /*
- BP_LED.CPP
- BP_LED.EXE
- Projet : BP ==> LED
- but : Allumer la led pendant 5s en appuyant sur le BP
- Version 1.1
- 23/11/2001
- ABELANSKI Micha?l
- Turbo C
- */
-
- // declaration des biblioth?ques utiliser;
-
- #include <stdio.h> //pour param?tre entr?e sortie standart;
- #include <dos.h> //pour outportb, inportb, delay;
- #include <conio.h> //pour clrscr; gotoxy;
-
- #define RegData 0x0378 //d?claration du registre de donn?e;
- #define RegEtat 0x0379 //d?claration du registre de statut;
-
- void Led(void); //d?claration de la proc?dure LED;
- int BP(void); //d?claration de la proc?dure BP;
-
- void main(void)
- {
- clrscr();
- printf("\n\t-Appuyer sur une touche pour quitter");
- printf("\n\t-Appuyer sur le BP pour allumer la led pendant 5s");
- gotoxy(2,7); //pointe ? la colonne 2 ligne 7
- printf("ETAT LED : LED ETEINTE");
- do
- {
- Led(); //appel de la fonction LED
- }
- while(!kbhit()); //faire tant qu'auncune touche frapper;
-
- gotoxy(1,15); //pointe ? la colonne 1 ligne 15
- printf("\nVous avez appuyer sur une touche \nFin de programme");
- delay(1000); //tempo 1s;
-
- }
-
- void Led(void) // Proc?dure LED();
- {
- int i;
- outportb(RegData,0x00); //ecriture du registre de donn?e pour eteindre la led;
- if (BP() == 0) //si BP enfonc?;
- {
- outportb(RegData,0x01); // ?criture pour allumer la led;
- gotoxy(2,7); //pointe ? la colonne 2 ligne 7
- printf("ETAT LED : LED ALLUMER");
- for (i=5;i>= 0;i = i-1) //pour affichage d'1
- { //decompteur boucle pour
- gotoxy(28,7); //r?p?ter 5 fois
- printf("T: %ds",i); //pendant 1s
- delay(1000); //5 * 1s = 5s
- }
- gotoxy(2,7);
- printf("ETAT LED : LED ETEINTE");
- outportb(RegData,0x00); //?criture pour eteindre la led
- }
- }
-
- int BP(void) // proc?dure BP();
- {
- int d5;
- d5 = (inportb(RegEtat) & 0x20); // lecture du registre d'?tat et masque pour lire seul le Bit D5;
- return d5; //renvoie de la valeur de d5 ? la proc?dure BP() ;
- }
-
-
/*
BP_LED.CPP
BP_LED.EXE
Projet : BP ==> LED
but : Allumer la led pendant 5s en appuyant sur le BP
Version 1.1
23/11/2001
ABELANSKI Micha?l
Turbo C
*/
// declaration des biblioth?ques utiliser;
#include <stdio.h> //pour param?tre entr?e sortie standart;
#include <dos.h> //pour outportb, inportb, delay;
#include <conio.h> //pour clrscr; gotoxy;
#define RegData 0x0378 //d?claration du registre de donn?e;
#define RegEtat 0x0379 //d?claration du registre de statut;
void Led(void); //d?claration de la proc?dure LED;
int BP(void); //d?claration de la proc?dure BP;
void main(void)
{
clrscr();
printf("\n\t-Appuyer sur une touche pour quitter");
printf("\n\t-Appuyer sur le BP pour allumer la led pendant 5s");
gotoxy(2,7); //pointe ? la colonne 2 ligne 7
printf("ETAT LED : LED ETEINTE");
do
{
Led(); //appel de la fonction LED
}
while(!kbhit()); //faire tant qu'auncune touche frapper;
gotoxy(1,15); //pointe ? la colonne 1 ligne 15
printf("\nVous avez appuyer sur une touche \nFin de programme");
delay(1000); //tempo 1s;
}
void Led(void) // Proc?dure LED();
{
int i;
outportb(RegData,0x00); //ecriture du registre de donn?e pour eteindre la led;
if (BP() == 0) //si BP enfonc?;
{
outportb(RegData,0x01); // ?criture pour allumer la led;
gotoxy(2,7); //pointe ? la colonne 2 ligne 7
printf("ETAT LED : LED ALLUMER");
for (i=5;i>= 0;i = i-1) //pour affichage d'1
{ //decompteur boucle pour
gotoxy(28,7); //r?p?ter 5 fois
printf("T: %ds",i); //pendant 1s
delay(1000); //5 * 1s = 5s
}
gotoxy(2,7);
printf("ETAT LED : LED ETEINTE");
outportb(RegData,0x00); //?criture pour eteindre la led
}
}
int BP(void) // proc?dure BP();
{
int d5;
d5 = (inportb(RegEtat) & 0x20); // lecture du registre d'?tat et masque pour lire seul le Bit D5;
return d5; //renvoie de la valeur de d5 ? la proc?dure BP() ;
}