Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<avr/io.h>
- #include "ks0108.h"
- #define F_OSC 16000000UL
- #include "delay.c"
- #include "avrlcd.h"
- #include <avr/pgmspace.h>
- #include <util/delay.h>
- #include <avr/interrupt.h>
- #include <stdint.h>
- short int viewport_top = 0;
- short int viewport_left = 0;
- short int viewport_right = 127;
- short int viewport_bottom = 63;
- int id=0;
- short int i=40;
- #include "font.h"
- #include "avrlcd_fonts.h"
- int main (void)
- {
- //nastaveni lCD//
- ks0108ClearScreen(); // Smazání displeje
- ks0108SetReset(1); // Reset nastavim na HIGH a tak musi i zustat
- delay_ms(1000); // Cekam nez LCD "nabehne:"
- ks0108Init(NON_INVERTED); // Inicializace LCD
- current_font=font13;
- draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
- draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
- draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
- draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
- draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
- rectangle(1,0,127,12,CL_BLACK);
- rectangle(1,0,127,63,CL_BLACK);
- DDRD = 0xff; // Set port D to output direction
- PORTD = 0xff;
- while (1)
- {
- switch (id){
- case 0:
- draw_text(110, 13,1,1, "<-", DT_NORMAL);
- draw_text(110, 43,1,1, " ", DT_NORMAL);
- break;
- case 1:
- draw_text(110, 23,1,1, "<-", DT_NORMAL);
- draw_text(110, 13,1,1, " ", DT_NORMAL);
- break;
- case 2:
- draw_text(110, 33,1,1, "<-", DT_NORMAL);
- draw_text(110, 23,1,1, " ", DT_NORMAL);
- break;
- case 3:
- draw_text(110, 43,1,1, "<-", DT_NORMAL);
- draw_text(110, 33,1,1, " ", DT_NORMAL);
- break;
- case 4:
- draw_text(110, 53,1,1, "<-", DT_NORMAL);
- draw_text(110, 43,1,1, " ", DT_NORMAL);
- break;
- case 5:
- draw_text(110, 13,1,1, "<-", DT_NORMAL);
- break;
- case 6:
- draw_text(110, 23,1,1, "<-", DT_NORMAL);
- draw_text(110, 13,1,1, " ", DT_NORMAL);
- break;
- case 7:
- draw_text(110, 33,1,1, "<-", DT_NORMAL);
- draw_text(110, 23,1,1, " ", DT_NORMAL);
- break;
- }
- if (bit_is_clear(PIND,0))
- {
- _delay_ms(500);
- id=id+1;
- if (id==8)
- {
- id = 0;
- }
- if (id==0)
- {
- ks0108ClearScreen();
- draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
- draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
- draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
- draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
- draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
- rectangle(1,0,127,12,CL_BLACK);
- rectangle(1,0,127,63,CL_BLACK);
- }
- else if (id==5)
- {
- ks0108ClearScreen();
- draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1,"Pavel Novak",DT_NORMAL);
- draw_text(1,23,1,1,"Jan Novy",DT_NORMAL);
- draw_text(1,33,1,1, "Jiri Petrla", DT_NORMAL);
- rectangle(1,0,127,12,CL_BLACK);
- rectangle(1,0,127,63,CL_BLACK);
- }
- }
- if (bit_is_clear(PIND,1))
- {
- switch (id) {
- case 0:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Andrea Curejova", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 737 631 401", DT_NORMAL);
- draw_text(1,33,1,1, "Email: andrea@curejova.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Samova 1", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Kuklik", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 1:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Felix Dolejs", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 724 931 087", DT_NORMAL);
- draw_text(1,33,1,1, "Email: felix@dolejs.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Za Hasickou 142", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Kovanice", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 2:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Krystof Penicka", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 730 958 101", DT_NORMAL);
- draw_text(1,33,1,1, "Email: krystof@penicka.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Drobneho 150", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Obora", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 3:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Miriam Hajkova", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 726 675 852", DT_NORMAL);
- draw_text(1,33,1,1, "Email: miriam@hajkova.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Hermannova 129", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Polnicka", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 4:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Svatoslav Krivka", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 770 581 801", DT_NORMAL);
- draw_text(1,33,1,1, "Email: svatoslav@krivka.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Fucikova 41", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Vernirovice", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 5:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Pavel Novak", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 770 589 321", DT_NORMAL);
- draw_text(1,33,1,1, "Email: pavel@novak.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Skolni 41", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Brno", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 6:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Jan Novy", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 775 881 841", DT_NORMAL);
- draw_text(1,33,1,1, "Email: jan@novy.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Komenskeho 141", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Praha", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- case 7:
- _delay_ms(25);
- ks0108ClearScreen();
- draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1, "Jmeno: Jiri Petrla", DT_NORMAL);
- draw_text(1,23,1,1,"Cislo: 732 481 952", DT_NORMAL);
- draw_text(1,33,1,1, "Email: jiri@petrla.cz", DT_NORMAL);
- draw_text(1,43,1,1, "Adresa: Kounicova 13", DT_NORMAL);
- draw_text(1,53,1,1, "Mesto: Brno", DT_NORMAL);
- rectangle(0,0,127,63,CL_BLACK);
- rectangle(0,0,127,12,CL_BLACK);
- break;
- default: draw_text(50,50,1,1,"Jiny stav", DT_NORMAL);
- }
- }
- if (bit_is_clear(PIND, 2))
- {
- _delay_ms(25);
- ks0108ClearScreen();
- // draw_text(124, i, 1, 1, "<", DT_NORMAL);
- if (id<5)
- {
- ks0108ClearScreen();
- draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
- draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
- draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
- draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
- draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
- rectangle(1,0,127,12,CL_BLACK);
- rectangle(1,0,127,63,CL_BLACK);
- }
- else if (id>=5)
- {
- ks0108ClearScreen();
- draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
- draw_text(1,13,1,1,"Pavel Novak",DT_NORMAL);
- draw_text(1,23,1,1,"Jan Novy",DT_NORMAL);
- draw_text(1,33,1,1, "Jiri Petrla", DT_NORMAL);
- rectangle(1,0,127,12,CL_BLACK);
- rectangle(1,0,127,63,CL_BLACK);
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement