/* * File: mine_plytka_dev1.c * Author: srodaelektronika * * Created on 17 lutego 2025, 20:38 */ // CONFIG #pragma config FOSC = XT // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled) #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) #define _XTAL_FREQ 4000000 #include "lcd16x2.h" // nasz plik nagłówkowy #include #include // potrzebne aby działały np. takie funkcje jak sprintf() void main(void) { // pierwsza napis dla jednej lini char napis1[] = "Odliczanie"; // drugi napis dla drugiej lini char napis2[] = "Ka Bummm!!!"; // wyliczenie długo?ci wyrazów unsigned char dlugosc1 = 0, dlugosc2 = 0; // deklaracja zmiennych typu int dlugosc1 = sizeof(napis1) / sizeof(napis1[0])-1; // wyliczenie długo?ci naspisu 1 (pomniejszone o 1 aby dobrze wpisywało się w liczenie tablicowe) dlugosc2 = sizeof(napis2) / sizeof(napis2[0])-1; // wyliczenie długo?ci naspisu 2 (pomniejszone o 1 aby dobrze wpisywało się w liczenie tablicowe) char bufor[2]; // zmienna potrzebna do zmiany liczby na znak unsigned int i; // zmienna i do pętli for InicjowaniePortow( ); //inicjowanie portów w mikrokontrolerze WlaczLCD(); //inicjalizacja wy?wietlacza LCD UstawKursorLCD(1, 2); //wiersz 1. kolumna 2. WyswietlLCD(napis1, dlugosc1); //wy?wietl napis // odliczanie for(i=9; i>0; i--) { sprintf(bufor, "%d", i); // konwersja liczby na napis aby przyjęła go funkcja WyswietlLCD() UstawKursorLCD(1,15); //wiersz 1. kolumna 15. WyswietlLCD(bufor, 1); //wy?wietl napis __delay_ms(1000); //zaczekaj 1 s } UstawKursorLCD(2, 4); //wiersz 2. kolumna 4. WyswietlLCD(napis2, dlugosc2); //wy?wietl napis while(1); //pętla nieskończona }