Buscar

programa do semáforo linguagem c

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

#include<16f628a.h>
#fuses intrc_io,nomclr
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
void main(void){
set_tris_a(0b00000011);
set_tris_b(0b00000000);
output_high(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_high(pin_b5);
while(true){	//while principal								
 while(true){	//while secundario									
// TESTA SE TEM CARRO NA RUA A
	 if(input (pin_a0)){							//se A0 é igual a 1
// TESTA SE NAO TEM CARRO NA RUA B
			if(!input(pin_a1)){					//se A1 e igual 0
				 	while(true){	//while ternario			
				 		output_low(pin_b0);
						output_low(pin_b1);
						output_high(pin_b2);
						output_low(pin_b3);
						output_high(pin_b4);
						output_low(pin_b5);
						delay_ms(3000);
					 output_high(pin_b0);
						output_low(pin_b1);
						output_low(pin_b2);
						output_low(pin_b3);
						output_low(pin_b4);
						output_high(pin_b5);
						delay_ms(500);
						break;					
						}	//para e sai do while ternario							
			// TESTA SE AINDA TEM CARRO NA RUA A
			if(input (pin_a0)){				//se A0 ainda e 1
				output_high(pin_b0);
				output_low(pin_b1);
				output_low(pin_b2);
				output_low(pin_b3);
				output_low(pin_b4);
				output_high(pin_b5);
				break;			
				}
			}	//para e sai do while secundario
		}
 	// testa se tem carro na rua B
	while(true){						//while secundario
		if(input(pin_a1)){				//se A1 e igual a 1
			if(!input(pin_a0)){		//se A0 e igual a 0
				while(true){			//while ternario
					output_low(pin_b0);
					output_high(pin_b1);
					output_low(pin_b2);
					output_low(pin_b3);
					output_low(pin_b4);
					output_high(pin_b5);
					delay_ms(3000);
					output_low(pin_b0);
					output_low(pin_b1);
					output_high(pin_b2);
					output_high(pin_b3);
					output_low(pin_b4);
					output_low(pin_b5);
					delay_ms(500);
					break;		//fim do while ternário
}
			// testa se ainda tem carro na B
			if(input(pin_a1)){			//se A1 ainda e 1
				output_low(pin_b0);
				output_low(pin_b1);
				output_high(pin_b2);
				output_high(pin_b3);
				output_low(pin_b4);
				output_low(pin_b5);
				break;				//para while secundario
				}
			}
		}
	}
		//testa se tem na b e se tem na A
		while(true){					// while secundario
			if(input(pin_a1)){				//se A1 e igual a 1
				if(input(pin_a1)==input(pin_a0)){	//se A1 é igual a A0
 			 while(true){		//while ternario
						output_low(pin_b0);
						output_low(pin_b1);
						output_high(pin_b2);
						output_low(pin_b3);
						output_high(pin_b4);
						output_low(pin_b5);
						delay_ms(3000);
					 output_high(pin_b0);
						output_low(pin_b1);
						output_low(pin_b2);
						output_low(pin_b3);
						output_low(pin_b4);
						output_high(pin_b5);
						delay_ms(500);	
						break;				
						}		//fim do while ternario				
		//testa se ainda tem carro em A
			if(input(pin_a1)==input(pin_a0)){	//se A1 ainda e igual A0
				output_high(pin_b0);
				output_low(pin_b1);
				output_low(pin_b2);
				output_low(pin_b3);
				output_low(pin_b4);
				output_high(pin_b5);
				break;					
				}
			}
		}
 
			if(!input(pin_a0)){
			 if(!input(pin_a1)){ 
				output_low(pin_b0);
				output_low(pin_b1);
				output_high(pin_b2);
				output_low(pin_b3);
				output_high(pin_b4);
				output_low(pin_b5);
				delay_ms(3000);
				output_high(pin_b0);
				output_low(pin_b1);
				output_low(pin_b2);
				output_low(pin_b3);
				output_low(pin_b4);
				output_high(pin_b5);
				delay_ms(1000);
				break;
				}
			if(input(pin_a0)){	
				output_high(pin_b0);
				output_low(pin_b1);
				output_low(pin_b2);
				output_low(pin_b3);
				output_low(pin_b4);
				output_high(pin_b5);
				break;
				} } } } } }

Outros materiais