Elo
Guest 1,647 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