Advertisement
Latkoski

Untitled

Feb 16th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. sbit LCD_RS at RA4_bit; // porta za komunikacija za LCD e A
  2. sbit LCD_EN at RA5_bit;
  3. sbit LCD_D4 at RA0_bit;
  4. sbit LCD_D5 at RA1_bit;
  5. sbit LCD_D6 at RA2_bit;
  6. sbit LCD_D7 at RA3_bit;
  7. sbit LCD_RS_Direction at TRISA4_bit;
  8. sbit LCD_EN_Direction at TRISA5_bit;
  9. sbit LCD_D4_Direction at TRISA0_bit;
  10. sbit LCD_D5_Direction at TRISA1_bit;
  11. sbit LCD_D6_Direction at TRISA2_bit;
  12. sbit LCD_D7_Direction at TRISA3_bit;
  13.  
  14. char KeypadPort at PORTD; // porta za komunikacija za Keypad e D
  15. int kp;
  16. int length;
  17. char bukva;
  18. char celosen[3];
  19. int prva_cifra = 0;
  20. int vtora_cifra = 0;
  21. ANSEL = 0x00;
  22. ANSELH = 0x00;
  23. TRISB.B0 = 0xFF; // senzor za detekcija na moneta vo avtomatot (rb0)
  24. TRISB.B1 = 0xFF; // b1,b2,b3 se za detekcija na vidot na monetata (vlezni)
  25. TRISB.B2 = 0xFF;
  26. TRISB.B3 = 0xFF;
  27.  
  28. Lcd_Init();
  29. while(1){
  30. Lcd_Cmd(_LCD_CLEAR);
  31. Lcd_Cmd(_LCD_CURSOR_OFF);
  32. Lcd_Out(1,1,"Vnesi parking ID");
  33. do{
  34. kp = 0;
  35. do
  36. kp = Keypad_Key_Click();
  37. while(!kp);
  38.  
  39. switch (kp)
  40. {
  41. case 1: kp = 49; break; // 1
  42. case 5: kp = 50; break; // 2
  43. case 9: kp = 51; break; // 3
  44. case 13: kp = 52; break; //4
  45. case 2: kp = 53; break;//5
  46. case 6: kp = 54; break;//6
  47. case 10: kp = 55; break;//7
  48. case 14: kp = 56; break;//8
  49. case 3: kp = 57; break;//9
  50. case 7: kp = 48; break; // 3
  51. case 11: kp = 33; break;// +
  52. case 15: kp = 34; break;// -
  53. case 4: kp = 65; break;//A
  54. case 8: kp = 66; break;//B
  55. case 12: kp = 67; break;//C
  56. case 16: kp = 1; break;//ENTER
  57. }
  58.  
  59. if(kp != 16 && (kp == 65 || kp == 66 || kp == 67) && (kp !=33 && kp !=34) && length == 0){
  60. bukva = kp - '0';
  61. length++;
  62. } //prviot vnes da ne e cifra, da ne e enter i da ne e plus ili minus
  63. else if(kp != 16 && (kp !=33 && kp !=34) && length == 1){
  64. prva_cifra = kp - '0';
  65. length++;
  66. }
  67. else if(kp != 16 && (kp !=33 && kp !=34) && length == 2){
  68. vtora_cifra = kp - '0';
  69. length++;
  70. }
  71. else if(length == 3){
  72. celosen[0] = bukva;
  73. IntToStr(prva_cifra,celosen[1]);
  74. IntToStr(vtora_cifra,celosen[2]);
  75. //vo celosen ja cuvam cela sifra, pr. B32, C23 (to so trebit da go proveram vo EEPROM)
  76.  
  77. }
  78.  
  79. else {
  80. Lcd_Cmd(_LCD_CLEAR);
  81. Lcd_Cmd(_LCD_CURSOR_OFF);
  82. Lcd_Out(1,1,"Greska");
  83. } //pogresen vnes
  84. }while(1);
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement