Advertisement
SIKER_98

bez t

May 10th, 2020
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. #include <REGX52.H>
  2. #define TRUE 1
  3.  
  4. unsigned char code cyfry[] = {0x3F, 0x06, 0X5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
  5. unsigned char data jednostki = 0, dziesiatki = 0;
  6.  
  7. unsigned char code zero[] = {0xEF, 0xDF, 0xBF, 0x7F};
  8. unsigned char data i;
  9. unsigned char data pamiec[] = {0, 0};
  10. bit flaga = 0;
  11. /////////////////-PRZYCISKI-//////////////////////////
  12.  
  13. void on_of() interrupt 0
  14. {
  15. if (flaga == 0)
  16. flaga = 1;
  17. else
  18. flaga = 0;
  19. }
  20.  
  21. void inkrementacja() interrupt 2
  22. {
  23. jednostki++;
  24. if (jednostki == 10)
  25. {
  26. dziesiatki++;
  27. jednostki = 0;
  28. }
  29. }
  30.  
  31. ///////////////////-WYSWIETLANIE-////////////////////////
  32.  
  33. void wyswietlanie()
  34. {
  35. if (flaga == 1)
  36. {
  37. P1 = cyfry[jednostki];
  38. P3 = 0x4C;
  39. P3 = 0xCC;
  40.  
  41. P1 = cyfry[dziesiatki];
  42. P3 = 0x8C;
  43. P3 = 0xCC;
  44. }
  45. else
  46. {
  47. P3_6 = 1;
  48. P3_7 = 1;
  49. P1 = 0;
  50. }
  51. }
  52.  
  53. ////////////////-PRZERWAINA_//////////////////////////
  54.  
  55. void setup()
  56. {
  57. EA = 1;
  58. //przyciski
  59. EX0 = 1;
  60. EX1 = 1;
  61. IT0 = 1;
  62. IT1 = 1;
  63. //timery
  64.  
  65. }
  66.  
  67. //////////////////////////////////////////
  68. void kolumna_1();
  69. void kolumna_2();
  70. void kolumna_3();
  71. void detekcja();
  72.  
  73. ///
  74. //////////////////////////////////////////
  75. ///
  76.  
  77. int main()
  78. {
  79. setup();
  80. while (TRUE)
  81. {
  82. timer();
  83. detekcja();
  84. wyswietlanie();
  85. }
  86. return 0;
  87. }
  88.  
  89. ///
  90. //////////////////DO OSBLUGI KLAWIATURY////////////////////////
  91. ///
  92.  
  93. void kolumna_1()
  94. {
  95. if (i != 3)
  96. {
  97. pamiec[1] = pamiec[0];
  98. pamiec[0] = i * 3 + 1;
  99. }
  100.  
  101. while (P2_1 == 0)
  102. wyswietlanie();
  103. }
  104.  
  105. ///////////////////////////////////////////
  106.  
  107. void kolumna_2()
  108. {
  109. pamiec[1] = pamiec[0];
  110. if (i == 3)
  111. {
  112. pamiec[0] = pamiec[0];
  113. }
  114. else
  115. {
  116. pamiec[0] = i * 3 + 2;
  117. }
  118. while (P2_2 == 0)
  119. wyswietlanie();
  120. }
  121.  
  122. ///////////////////////////////////////////
  123.  
  124. void kolumna_3()
  125. {
  126. if (i == 3)
  127. { // detekcja #
  128. jednostki = pamiec[0];
  129. dziesiatki = pamiec[1];
  130. }
  131. else
  132. {
  133. pamiec[1] = pamiec[0];
  134. pamiec[0] = i * 3 + 3;
  135. }
  136. while (P2_3 == 0)
  137. wyswietlanie();
  138. }
  139.  
  140. ///////////////////////////////////////////
  141.  
  142. void detekcja()
  143. {
  144. P2 = zero[i];
  145.  
  146. if (P2_1 == 0)
  147. {
  148. kolumna_1();
  149. }
  150. else if (P2_2 == 0)
  151. {
  152. kolumna_2();
  153. }
  154. else if (P2_3 == 0)
  155. {
  156. kolumna_3();
  157. }
  158.  
  159. if (i < 3)
  160. {
  161. i++;
  162. }
  163. else
  164. {
  165. i = 0;
  166. }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement