Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h> // Todas as Definições do uC ATMEGA8
- #define F_CPU 14.7456E6 // Definição da frequência de clock do uC
- #include <util/delay.h> // Definições de funções que implementas atrasos
- #include "bit_tools.h" // Macros para as operações sobre bits
- #define Port_Canc_Sem PORTC
- #define CancEnt 0
- #define CancSai 1
- #define SemVerd 2
- #define SemVerm 3
- #define Port_Carros PINB
- #define CarrEnt 0
- #define CarrSai 1
- /* Programa Principal */
- int main(void)
- {
- DDRC = 0x0F; // PC0..PC3 saídas
- PORTC = 0; // saídas inicialmente a 0
- DDRB = 0; // porto B todo com entradas
- PORTB = 0x03; // activa pull-ups de PB0 e PB1
- int count=0;
- int Capac_Paqr=8;
- while(1)
- {
- _delay_ms(1);
- if(count<Capac_Parq){
- bit_set(PORTC,SemVerd);
- bit_clear(PORTC,SemVerm);
- }
- else
- {
- bit_set(PORTC,SemVerm);
- bit_clear(PORTC,SemVerd);
- }
- //ENTRAR CARRO
- if(!bit_read(PINB,CarrEnt)&& !bit_read(PORTC,SemVerm)){
- bit_set(PORTC,CancEnt);
- _delay_ms(2000);
- bit_clear(PORTC,CancEnt);
- count++;
- }
- //SAI CARRO
- if(!bit_read(PINB,CarrSai)&&(count>0)){
- bit_set(PORTC,CancSai);
- _delay_ms(4000);
- bit_clear(PORTC,CancSai);
- count--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement