avatar
Elo

Guest 98 23rd May, 2022

                                           
                         /*
 * Zaliczenie
 *
 * Created: 22.05.2022 12:02:54
 * Author : Michał Turek, Nicol Karbowska
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL
#include <util/delay.h>
#define magistralaDDR DDRB
#define magistrala PORTB
#define sterowanieDDR DDRC
#define sterowanie PORTC
#define RS 0
#define E 1


ISR(TIMER1_COMPA_vect){
	ADCSRA |= (1<<ADSC);
}

void LCD_zapis(uint8_t dana)
{
	magistrala = dana;
	sterowanie |= (1<<E);//E=1
	_delay_us(2);
	sterowanie &= ~(1<<E);//E=0
	_delay_us(45);
}

void czas()
{
	
}
int main(void)
{
	magistralaDDR = 0xff;
	sterowanieDDR |= (1<<RS)|(1<<E);
	sterowanie &= ~(1<<RS);//instrukcje, bo RS=0
	LCD_zapis(0x38);//magistrala 8-bitowa
	LCD_zapis(0x06);//inkrementacja adresu
	//LCD_zapis(0x0f);//w??czenie wy?wietlacza i kursora
	LCD_zapis(0x0c);//w??czenie wy?wietlacza
	LCD_zapis(0x01);//czyszczenie ekranu
	_delay_ms(2);
	
	LCD_zapis(0x80);
	uint8_t sekund = 0;
	uint8_t dsekund = 0;
	uint8_t minut = 0;
	uint8_t dminut = 0;
	uint8_t godz = 0;
	uint8_t dgodz = 0;
	
	ADCSRA = (1<<ADEN)|(1<<ADIE)|(1<<ADPS2); //w?aczenie ADC i przerwania
	
	TCCR1B = (1<<WGM12) |(1<<CS12);
	OCR1A = 62500;
	TIMSK = (1<<OCIE1A);
	sei();
	
	sterowanie |= (1<<RS);
	LCD_zapis('0');

	LCD_zapis('0');
	
	LCD_zapis(':');
	
	LCD_zapis('0');
	
	LCD_zapis('0');
	
	LCD_zapis(':');
	
	LCD_zapis('0');
	
	LCD_zapis('0');
	

	
	
	while (1)
	{
		_delay_ms(1000);
		LCD_zapis(0x01);//czyszczenie ekranu
		LCD_zapis(0x80);
		sekund++;
		if(sekund == 10)
		{
			dsekund++;
			sekund = 0;
			if (dsekund == 6)
			{
				dsekund = 0;
				minut++;
				if (minut == 10)
				{
					minut = 0;
					dminut++;
					
					if (dminut == 6)
					{
						dminut = 0;
						godz++;
						
						if (godz == 10)
						{
							godz = 0;
							dgodz++;
							if ((dgodz == 2) && (godz == 4))
							{
								dgodz = 0;
								godz = 0;
							}
						}
					}
				}
			}
		}
		
		LCD_zapis(dgodz);

		LCD_zapis(godz);
		
		LCD_zapis(':');
		
		LCD_zapis(dminut);
		
		LCD_zapis(minut);
		
		LCD_zapis(':');
		
		LCD_zapis(dsekund);
		
		LCD_zapis(sekund);
		
	}

	
	
}
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM