Académique Documents
Professionnel Documents
Culture Documents
#include <16F877.h>
#device adc=8
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=500000)
#include <STDLIB.H>
ldiv_t lidiv;
long i;
long diz,unite;
int idiz,iunite,portc,portd;
void main()
{
do
if (input(PIN_C0)==1)
{
output_B(0b10010);
delay_ms(50);
// Dure de l'allumage
output_B(0);
delay_ms(50);
//Dure extinction
}
else
{
// Dclenchement dcomptage
for (i=0;i<=600;i++){
lidiv=ldiv(60-i/10,10);
diz=lidiv.quot;
idiz=diz;
unite=lidiv.rem;
iunite=unite;
portc=iunite+idiz*16;
output_d(portc);
// affichage dcomptage
output_b(0b100001);
if (i==600){
// arret dcomtage 0
portc=0;
output_b(portc);
break;
// affichage OO au compteur
// sortir de la boucle
}
}
output_b(0b000001);
delay_ms(50);
output_b(0b100001);
delay_ms(50);
output_b(0b000001);
delay_ms(50);
output_b(0b100001);
delay_ms(50);
output_b(0b000001);
delay_ms(50);
output_b(0b100001);
delay_ms(50);
output_b(0b010001);
delay_ms(200);
output_b(0b001011);
delay_ms(200);
for (i=0;i<=600;i++)
{
lidiv=ldiv(60-i/10,10);
diz=lidiv.quot;
idiz=diz;
unite=lidiv.rem;
iunite=unite;
portc=iunite+idiz*16;
output_d(portc);
output_b(0b001100);
if (i==600)
{ portc=0;
// Dclenchement dcomptage
output_b(portc);
break;
}
}
output_b(0b001000);
delay_ms(50);
output_b(0b001100);
delay_ms(50);
output_b(0b001000);
delay_ms(50);
output_b(0b001100);
delay_ms(50);
output_b(0b001000);
delay_ms(50);
output_b(0b001100);
delay_ms(200);
output_b(0b001010);
delay_ms(200);
output_b(0b011001);
delay_ms(200);
}
while(true);