Advertisement
Latkoski

keypad

Dec 17th, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. char KeypadPort at PORTD;
  2. sbit LCD_RS at RB4_bit;
  3. sbit LCD_EN at RB5_bit;
  4. sbit LCD_D4 at RB0_bit;
  5. sbit LCD_D5 at RB1_bit;
  6. sbit LCD_D6 at RB2_bit;
  7. sbit LCD_D7 at RB3_bit;
  8. sbit LCD_RS_Direction at TRISB4_bit;
  9. sbit LCD_EN_Direction at TRISB5_bit;
  10. sbit LCD_D4_Direction at TRISB0_bit;
  11. sbit LCD_D5_Direction at TRISB1_bit;
  12. sbit LCD_D6_Direction at TRISB2_bit;
  13. sbit LCD_D7_Direction at TRISB3_bit;
  14.  
  15. int broj_obidi;
  16. int broj_memorija = 21;
  17. char *poraka_greska;
  18. int golemina_broj;
  19. int prva_cifra;
  20. int vtora_cifra;
  21. int treta_cifra;
  22. int vnesen;
  23. int kp;
  24. void main() {
  25. ANSEL = 0b0010000;
  26. ANSELH = 0;
  27. TRISA = 1;
  28.  
  29. poraka_greska = "Greska";
  30. broj_obidi = 0;
  31.  
  32. while(1){
  33.  
  34. Keypad_Init();
  35. Lcd_Init();
  36. Lcd_Cmd(_LCD_CLEAR);
  37. Lcd_Cmd(_LCD_CURSOR_OFF);
  38. do{
  39. kp = 0;
  40.  
  41. do
  42. kp = Keypad_Key_Click();
  43. while(!kp);
  44.  
  45. switch (kp)
  46. {
  47. case 1: kp = 49; break; // 1
  48. case 2: kp = 52; break; // 4
  49. case 3: kp = 55; break; // 7
  50. case 4: kp = 42; break; // *
  51. case 5: kp = 50; break; // 2
  52. case 6: kp = 53; break; // 5
  53. case 7: kp = 56; break; // 8
  54. case 8: kp = 48; break; // 0
  55. case 9: kp = 51; break; // 3
  56. case 10: kp = 54; break; // 6
  57. case 11: kp = 57; break; // 9
  58. case 12: kp = 35; break; // #
  59. case 13: kp = 65; break; // A
  60. case 14: kp = 66; break; // B
  61. case 15: kp = 67; break; // C
  62. case 16: kp = 68; break; // D
  63. }
  64. if(kp != 35 && golemina_broj == 0){
  65. prva_cifra = (kp-48) * 10;
  66. golemina_broj++;
  67. continue;
  68. }
  69. else if(kp !=35 && golemina_broj == 1){
  70. vtora_cifra = kp - 48;
  71. golemina_broj++;
  72. }
  73.  
  74. else if(kp == 35){
  75. vnesen = prva_cifra + vtora_cifra;
  76. while(broj_obidi < 3){
  77. Lcd_Cmd(_LCD_CLEAR);
  78. if(vnesen > broj_memorija){
  79. Lcd_Out(1,1,"<");
  80. broj_obidi++;
  81. break;
  82. }
  83. else if(vnesen < broj_memorija){
  84. Lcd_Out(1,1,">");
  85. broj_obidi++;
  86. break;
  87.  
  88. }
  89. else if(vnesen == broj_memorija){
  90. Lcd_Out(1,1,"Pogodok");
  91. }
  92. }
  93. if(broj_obidi == 3){
  94. Lcd_Out(1,1,"Greska");
  95. }
  96. }
  97. } while(1);
  98.  
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement