Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.32 KB | None | 0 0
  1. #include <built_in.h>
  2. char keypadPort at PORTD;
  3.  
  4. sbit LCD_RS at RB4_bit;
  5. sbit LCD_EN at RB5_bit;
  6. sbit LCD_D4 at RB0_bit;
  7. sbit LCD_D5 at RB1_bit;
  8. sbit LCD_D6 at RB2_bit;
  9. sbit LCD_D7 at RB3_bit;
  10. sbit LCD_RS_Direction at TRISB4_bit;
  11. sbit LCD_EN_Direction at TRISB5_bit;
  12. sbit LCD_D4_Direction at TRISB0_bit;
  13. sbit LCD_D5_Direction at TRISB1_bit;
  14. sbit LCD_D6_Direction at TRISB2_bit;
  15. sbit LCD_D7_Direction at TRISB3_bit;
  16.  
  17. void main() {
  18. char restoran[6] = {'D', 'A', 'L', 'G', 'A', '\0'}, promenliva[6] = {'n','e','s','h','t','o'};
  19. //id na sekoj kelner ke mu e j
  20. /*char kelneri[5][5] = {{'I', 'g', 'o', 'r'},{'A', 'n', 'a'}}, proba[5][5] = {{'a','a','a','a'},{'a','a','a'}};*/
  21. char kelner1[] = {'1', 'I', 'g', 'o', 'r', '\0'}, kelner2[] = {'2', 'A', 'n', 'a','\0','\0'};
  22. int i=0, j=0, keypadcount = 0;
  23. char kp, oldstate, cifri[20] = {' ', ' ', ' '};
  24. int cnt =0;
  25.  
  26. ANSEL = 0;
  27. ANSELH = 0;
  28. TRISB = 0x00; //B da e izlezna
  29.  
  30. Lcd_Init();
  31. Lcd_Cmd(_LCD_CURSOR_OFF);
  32. Lcd_Cmd(_LCD_CLEAR);
  33.  
  34. Keypad_Init();
  35.  
  36.  
  37. Lcd_Out(1,1, "Nema za naplata");
  38. //Lcd_Out(2, 1, cifri);
  39.  
  40. for(i=0; i<6; i++){
  41. EEPROM_Write(10+i, restoran[i]);
  42. //Delay_ms(10);
  43. //Lcd_Out(1,1, "");
  44. //Lcd_Out(1,1, "Prv for");
  45. }
  46.  
  47. for(i=0; i<6; i++){
  48. EEPROM_Write(15+i, kelner1[i]);
  49. //Delay_ms(10);
  50. //Lcd_Out(1,1, "Vtor for");
  51. }
  52.  
  53. for(i=0; i<6; i++){
  54. EEPROM_Write(20+i, kelner2[i]);
  55. //Delay_ms(10);
  56. //Lcd_Out(1,1, "Tret for");
  57. }
  58.  
  59. //while(1){
  60. // se resetira kodot za pritisnatiot taster
  61.  
  62. /* for(i=0; i<=15; i++){
  63. Lcd_Out(1,i," ");
  64. } */
  65. Lcd_Out(1,1, "Naplata: ");
  66. Lcd_Out(2,1, "Bakshish: ");
  67. while(1) {
  68. kp = 0;
  69.  
  70. while(!kp){
  71.  
  72.  
  73. kp = Keypad_Key_Click();
  74.  
  75. } //se cheka da se pritisne taster
  76. //Lcd_Out(2,1, " ");
  77.  
  78. //Lcd_Out(2,1, "ok");
  79.  
  80. /*switch(kp){
  81. case 1: cifri[cnt]='1'; //break; // 1
  82. case 2: cifri[cnt]='4'; //break; // 4
  83. case 3: cifri[cnt]='7'; //break; // 7
  84. case 4: cifri[cnt]=' '; //break;//DEL (BACK)
  85. case 5: cifri[cnt]='2'; //break;// 2
  86. case 6: cifri[cnt]='5'; //break; // 5
  87. case 7: cifri[cnt]='8'; //break; // 8
  88. case 8: cifri[cnt]='0'; //break; // 0
  89. case 9: cifri[cnt]='3'; //break; // 3
  90. case 10: cifri[cnt]='6'; //break; // 6
  91. case 11: cifri[cnt]='9'; //break; // 9
  92. case 12: kp = 6; break; //Acknowledgement (OK)
  93.  
  94. }
  95.  
  96. cnt++; */
  97. if(kp == 1){
  98. cifri[cnt] = '1';
  99. Lcd_Out(1, 9, cifri);
  100. cnt++;
  101. }
  102.  
  103. if(kp == 2){
  104. cifri[cnt] = '4';
  105. Lcd_Out(1, 9, cifri);
  106. cnt++;
  107. }
  108.  
  109. if(kp == 3){
  110. cifri[cnt] = '7';
  111. Lcd_Out(1, 9, cifri);
  112. cnt++;
  113. }
  114.  
  115.  
  116. if(kp == 5){
  117. cifri[cnt] = '2';
  118. Lcd_Out(1, 9, cifri);
  119. cnt++;
  120. }
  121. if(kp == 6){
  122. cifri[cnt] = '5';
  123. Lcd_Out(1, 9, cifri);
  124. cnt++;
  125. }
  126. if(kp == 7){
  127. cifri[cnt] = '8';
  128. Lcd_Out(1, 9, cifri);
  129. cnt++;
  130. }
  131. if(kp == 8){
  132. cifri[cnt] = '0';
  133. Lcd_Out(1, 9, cifri);
  134. cnt++;
  135. }
  136. if(kp == 9){
  137. cifri[cnt] = '3';
  138. Lcd_Out(1, 9, cifri);
  139. cnt++;
  140. }
  141. if(kp == 10){
  142. cifri[cnt] = '6';
  143. Lcd_Out(1, 9, cifri);
  144. cnt++;
  145. }
  146. if(kp == 11){
  147. cifri[cnt] = '9';
  148. Lcd_Out(1, 9, cifri);
  149. cnt++;
  150. }
  151.  
  152. if(kp == 13){
  153. cifri[cnt-1] = ' ';
  154. cifri[cnt] = ' ';
  155. Lcd_Out(1, 9, cifri);
  156. cnt--;
  157. }
  158.  
  159. if(kp == 12) //stegnal ACK i na LCD da se prikaze
  160. break;
  161.  
  162. }
  163.  
  164.  
  165. for(i=0; i<sizeof(cifri); i++){
  166. cifri[i] = ' ';
  167. }
  168. cnt=0;
  169.  
  170.  
  171. while(1) {
  172. kp = 0;
  173. while(!kp){
  174. kp = Keypad_Key_Click();
  175.  
  176. }
  177. if(kp == 1){
  178. cifri[cnt] = '1';
  179. Lcd_Out(2, 10, cifri);
  180. cnt++;
  181. }
  182.  
  183. if(kp == 2){
  184. cifri[cnt] = '4';
  185. Lcd_Out(2, 10, cifri);
  186. cnt++;
  187. }
  188.  
  189. if(kp == 3){
  190. cifri[cnt] = '7';
  191. Lcd_Out(2, 10, cifri);
  192. cnt++;
  193. }
  194.  
  195.  
  196. if(kp == 5){
  197. cifri[cnt] = '2';
  198. Lcd_Out(2, 10, cifri);
  199. cnt++;
  200. }
  201. if(kp == 6){
  202. cifri[cnt] = '5';
  203. Lcd_Out(2, 10, cifri);
  204. cnt++;
  205. }
  206. if(kp == 7){
  207. Lcd_Out(2, 10, cifri);
  208. Lcd_Out(2, 9, cifri);
  209. cnt++;
  210. }
  211. if(kp == 8){
  212. cifri[cnt] = '0';
  213. Lcd_Out(2, 10, cifri);
  214. cnt++;
  215. }
  216. if(kp == 9){
  217. cifri[cnt] = '3';
  218. Lcd_Out(2, 10, cifri);
  219. cnt++;
  220. }
  221. if(kp == 10){
  222. cifri[cnt] = '6';
  223. Lcd_Out(2, 10, cifri);
  224. cnt++;
  225. }
  226. if(kp == 11){
  227. cifri[cnt] = '9';
  228. Lcd_Out(2, 10, cifri);
  229. cnt++;
  230. }
  231.  
  232. if(kp == 13){
  233. cifri[cnt-1] = ' ';
  234. cifri[cnt] = ' ';
  235. Lcd_Out(2, 10, cifri);
  236. cnt--;
  237. }
  238.  
  239. if(kp == 12) //stegnal ACK i na LCD da se prikaze
  240. break;
  241.  
  242. }
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252. /*if(kp != oldstate){ //ako pritisnatiot taster e razlichen od prethodniot
  253. keypadcount = 1;
  254. oldstate = kp;
  255. }
  256. else{
  257. keypadcount++;
  258. }*/
  259. //}
  260.  
  261. /* PROVERKA DALI E ZACHUVAN RESTORANOT VO EEPROM
  262. for(i=0; i<6; i++){
  263. promenliva[i] = EEPROM_Read(10+i);
  264. }
  265.  
  266. Lcd_Cmd(_LCD_CLEAR);
  267. Lcd_Out(1,1,promenliva);
  268. */
  269.  
  270. /* //GRESHKA VO ZAPISHUVANJE VO EEPROM
  271. //for (i=0;i <5; i++){
  272. // for (j=0; j<5;j++){
  273. // EEPROM_Write(15+i, kelneri[i][j]);
  274. // Delay_ms(10);
  275. // }
  276. // }
  277.  
  278. //for (i=0;i <5; i++){
  279. // for (j=0; j<5;j++){
  280. // proba[i][j] = EEPROM_Read(15+i);
  281. // }
  282. //}
  283.  
  284. // Lcd_Cmd(_LCD_CLEAR);
  285. // Lcd_Out(1,1,proba);
  286. */
  287. //Ako nema RB0 prekin
  288. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement