Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.25 KB | None | 0 0
  1.  
  2. #include<stdio.h>
  3. #include<avr/io.h>
  4. #include "ks0108.h"
  5. #define F_OSC 16000000UL
  6. #include "delay.c"
  7. #include "avrlcd.h"
  8. #include <avr/pgmspace.h>
  9. #include <util/delay.h>
  10. #include <avr/interrupt.h>
  11. #include <stdint.h>
  12.  
  13. short int viewport_top = 0;
  14. short int viewport_left = 0;
  15. short int viewport_right = 127;
  16. short int viewport_bottom = 63;
  17. int id=0;
  18. short int i=40;
  19. #include "font.h"
  20. #include "avrlcd_fonts.h"
  21.  
  22.  
  23. int main (void)
  24. {
  25. //nastaveni lCD//
  26. ks0108ClearScreen(); // Smazání displeje
  27. ks0108SetReset(1); // Reset nastavim na HIGH a tak musi i zustat
  28. delay_ms(1000); // Cekam nez LCD "nabehne:"
  29. ks0108Init(NON_INVERTED); // Inicializace LCD
  30.  
  31.  
  32.  
  33. current_font=font13;
  34.  
  35.  
  36.  
  37. draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  38. draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
  39. draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
  40. draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
  41. draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
  42. draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
  43. rectangle(1,0,127,12,CL_BLACK);
  44. rectangle(1,0,127,63,CL_BLACK);
  45.  
  46.  
  47.  
  48. DDRD = 0xff; // Set port D to output direction
  49. PORTD = 0xff;
  50.  
  51. while (1)
  52. {
  53.  
  54.  
  55. switch (id){
  56. case 0:
  57.  
  58. draw_text(110, 13,1,1, "<-", DT_NORMAL);
  59. draw_text(110, 43,1,1, " ", DT_NORMAL);
  60.  
  61. break;
  62. case 1:
  63. draw_text(110, 23,1,1, "<-", DT_NORMAL);
  64. draw_text(110, 13,1,1, " ", DT_NORMAL);
  65.  
  66. break;
  67. case 2:
  68. draw_text(110, 33,1,1, "<-", DT_NORMAL);
  69. draw_text(110, 23,1,1, " ", DT_NORMAL);
  70. break;
  71. case 3:
  72. draw_text(110, 43,1,1, "<-", DT_NORMAL);
  73. draw_text(110, 33,1,1, " ", DT_NORMAL);
  74. break;
  75. case 4:
  76. draw_text(110, 53,1,1, "<-", DT_NORMAL);
  77. draw_text(110, 43,1,1, " ", DT_NORMAL);
  78. break;
  79. case 5:
  80. draw_text(110, 13,1,1, "<-", DT_NORMAL);
  81. break;
  82. case 6:
  83. draw_text(110, 23,1,1, "<-", DT_NORMAL);
  84. draw_text(110, 13,1,1, " ", DT_NORMAL);
  85. break;
  86. case 7:
  87. draw_text(110, 33,1,1, "<-", DT_NORMAL);
  88. draw_text(110, 23,1,1, " ", DT_NORMAL);
  89. break;
  90.  
  91.  
  92. }
  93.  
  94. if (bit_is_clear(PIND,0))
  95. {
  96. _delay_ms(500);
  97.  
  98. id=id+1;
  99. if (id==8)
  100. {
  101. id = 0;
  102. }
  103. if (id==0)
  104. {
  105. ks0108ClearScreen();
  106. draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  107. draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
  108. draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
  109. draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
  110. draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
  111. draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
  112. rectangle(1,0,127,12,CL_BLACK);
  113. rectangle(1,0,127,63,CL_BLACK);
  114. }
  115. else if (id==5)
  116. {
  117. ks0108ClearScreen();
  118. draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  119. draw_text(1,13,1,1,"Pavel Novak",DT_NORMAL);
  120. draw_text(1,23,1,1,"Jan Novy",DT_NORMAL);
  121. draw_text(1,33,1,1, "Jiri Petrla", DT_NORMAL);
  122. rectangle(1,0,127,12,CL_BLACK);
  123. rectangle(1,0,127,63,CL_BLACK);
  124. }
  125. }
  126.  
  127.  
  128. if (bit_is_clear(PIND,1))
  129. {
  130. switch (id) {
  131. case 0:
  132. _delay_ms(25);
  133. ks0108ClearScreen();
  134. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  135. draw_text(1,13,1,1, "Jmeno: Andrea Curejova", DT_NORMAL);
  136. draw_text(1,23,1,1,"Cislo: 737 631 401", DT_NORMAL);
  137. draw_text(1,33,1,1, "Email: andrea@curejova.cz", DT_NORMAL);
  138. draw_text(1,43,1,1, "Adresa: Samova 1", DT_NORMAL);
  139. draw_text(1,53,1,1, "Mesto: Kuklik", DT_NORMAL);
  140.  
  141. rectangle(0,0,127,63,CL_BLACK);
  142. rectangle(0,0,127,12,CL_BLACK);
  143. break;
  144. case 1:
  145. _delay_ms(25);
  146. ks0108ClearScreen();
  147. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  148. draw_text(1,13,1,1, "Jmeno: Felix Dolejs", DT_NORMAL);
  149. draw_text(1,23,1,1,"Cislo: 724 931 087", DT_NORMAL);
  150. draw_text(1,33,1,1, "Email: felix@dolejs.cz", DT_NORMAL);
  151. draw_text(1,43,1,1, "Adresa: Za Hasickou 142", DT_NORMAL);
  152. draw_text(1,53,1,1, "Mesto: Kovanice", DT_NORMAL);
  153.  
  154. rectangle(0,0,127,63,CL_BLACK);
  155. rectangle(0,0,127,12,CL_BLACK);
  156. break;
  157. case 2:
  158. _delay_ms(25);
  159. ks0108ClearScreen();
  160. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  161. draw_text(1,13,1,1, "Jmeno: Krystof Penicka", DT_NORMAL);
  162. draw_text(1,23,1,1,"Cislo: 730 958 101", DT_NORMAL);
  163. draw_text(1,33,1,1, "Email: krystof@penicka.cz", DT_NORMAL);
  164. draw_text(1,43,1,1, "Adresa: Drobneho 150", DT_NORMAL);
  165. draw_text(1,53,1,1, "Mesto: Obora", DT_NORMAL);
  166.  
  167. rectangle(0,0,127,63,CL_BLACK);
  168. rectangle(0,0,127,12,CL_BLACK);
  169. break;
  170. case 3:
  171.  
  172. _delay_ms(25);
  173. ks0108ClearScreen();
  174. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  175. draw_text(1,13,1,1, "Jmeno: Miriam Hajkova", DT_NORMAL);
  176. draw_text(1,23,1,1,"Cislo: 726 675 852", DT_NORMAL);
  177. draw_text(1,33,1,1, "Email: miriam@hajkova.cz", DT_NORMAL);
  178. draw_text(1,43,1,1, "Adresa: Hermannova 129", DT_NORMAL);
  179. draw_text(1,53,1,1, "Mesto: Polnicka", DT_NORMAL);
  180.  
  181. rectangle(0,0,127,63,CL_BLACK);
  182. rectangle(0,0,127,12,CL_BLACK);
  183. break;
  184. case 4:
  185. _delay_ms(25);
  186. ks0108ClearScreen();
  187. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  188. draw_text(1,13,1,1, "Jmeno: Svatoslav Krivka", DT_NORMAL);
  189. draw_text(1,23,1,1,"Cislo: 770 581 801", DT_NORMAL);
  190. draw_text(1,33,1,1, "Email: svatoslav@krivka.cz", DT_NORMAL);
  191. draw_text(1,43,1,1, "Adresa: Fucikova 41", DT_NORMAL);
  192. draw_text(1,53,1,1, "Mesto: Vernirovice", DT_NORMAL);
  193.  
  194. rectangle(0,0,127,63,CL_BLACK);
  195. rectangle(0,0,127,12,CL_BLACK);
  196. break;
  197. case 5:
  198. _delay_ms(25);
  199. ks0108ClearScreen();
  200. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  201. draw_text(1,13,1,1, "Jmeno: Pavel Novak", DT_NORMAL);
  202. draw_text(1,23,1,1,"Cislo: 770 589 321", DT_NORMAL);
  203. draw_text(1,33,1,1, "Email: pavel@novak.cz", DT_NORMAL);
  204. draw_text(1,43,1,1, "Adresa: Skolni 41", DT_NORMAL);
  205. draw_text(1,53,1,1, "Mesto: Brno", DT_NORMAL);
  206.  
  207. rectangle(0,0,127,63,CL_BLACK);
  208. rectangle(0,0,127,12,CL_BLACK);
  209. break;
  210. case 6:
  211. _delay_ms(25);
  212. ks0108ClearScreen();
  213. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  214. draw_text(1,13,1,1, "Jmeno: Jan Novy", DT_NORMAL);
  215. draw_text(1,23,1,1,"Cislo: 775 881 841", DT_NORMAL);
  216. draw_text(1,33,1,1, "Email: jan@novy.cz", DT_NORMAL);
  217. draw_text(1,43,1,1, "Adresa: Komenskeho 141", DT_NORMAL);
  218. draw_text(1,53,1,1, "Mesto: Praha", DT_NORMAL);
  219.  
  220. rectangle(0,0,127,63,CL_BLACK);
  221. rectangle(0,0,127,12,CL_BLACK);
  222. break;
  223. case 7:
  224. _delay_ms(25);
  225. ks0108ClearScreen();
  226. draw_text(15, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  227. draw_text(1,13,1,1, "Jmeno: Jiri Petrla", DT_NORMAL);
  228. draw_text(1,23,1,1,"Cislo: 732 481 952", DT_NORMAL);
  229. draw_text(1,33,1,1, "Email: jiri@petrla.cz", DT_NORMAL);
  230. draw_text(1,43,1,1, "Adresa: Kounicova 13", DT_NORMAL);
  231. draw_text(1,53,1,1, "Mesto: Brno", DT_NORMAL);
  232.  
  233. rectangle(0,0,127,63,CL_BLACK);
  234. rectangle(0,0,127,12,CL_BLACK);
  235. break;
  236. default: draw_text(50,50,1,1,"Jiny stav", DT_NORMAL);
  237. }
  238. }
  239. if (bit_is_clear(PIND, 2))
  240. {
  241.  
  242. _delay_ms(25);
  243. ks0108ClearScreen();
  244. // draw_text(124, i, 1, 1, "<", DT_NORMAL);
  245. if (id<5)
  246. {
  247. ks0108ClearScreen();
  248. draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  249. draw_text(1,13,1,1,"Andrea Curejova",DT_NORMAL);
  250. draw_text(1,23,1,1,"Felix Dolejs",DT_NORMAL);
  251. draw_text(1,33,1,1,"Krystof Penicka",DT_NORMAL);
  252. draw_text(1,43,1,1,"Miriam Hajkova",DT_NORMAL);
  253. draw_text(1,53,1,1,"Svatoslav Krivka",DT_NORMAL);
  254. rectangle(1,0,127,12,CL_BLACK);
  255. rectangle(1,0,127,63,CL_BLACK);
  256. }
  257. else if (id>=5)
  258. {
  259. ks0108ClearScreen();
  260. draw_text(13, 1, 1, 1, "TELEFONNI SEZNAM", DT_NORMAL);
  261. draw_text(1,13,1,1,"Pavel Novak",DT_NORMAL);
  262. draw_text(1,23,1,1,"Jan Novy",DT_NORMAL);
  263. draw_text(1,33,1,1, "Jiri Petrla", DT_NORMAL);
  264. rectangle(1,0,127,12,CL_BLACK);
  265. rectangle(1,0,127,63,CL_BLACK);
  266. }
  267.  
  268. }
  269.  
  270.  
  271. }
  272.  
  273.  
  274.  
  275.  
  276. return 0;
  277.  
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement