Advertisement
Guest User

Untitled

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