Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <p89lpc9351.h>
  4.  
  5.  
  6. #define B1 P1_3
  7. #define B2 P1_4
  8. #define B3 P1_6
  9.  
  10. #define HEX0 0x0C0
  11. #define HEX1 0x0F9
  12. #define HEX2 0x0A4
  13. #define HEX3 0x0B0
  14. #define HEX4 0x099
  15. #define HEX5 0x092
  16. #define HEX6 0x082
  17. #define HEX7 0x0F8
  18. #define HEX8 0x080
  19. #define HEX9 0x090
  20. #define OFF 0x080
  21.  
  22. int limit [2];
  23.  
  24. void initMC()
  25. {
  26. P0M1 = 0;
  27. P0M2 = 0;
  28. P1M1 = 0;
  29. P1M2 = 0;
  30. P2M1 = 0;
  31. P2M2 = 0;
  32. P3M1 = 0;
  33. P3M2 = 0;
  34. B1 = 1;
  35. B2 = 1;
  36. B3 = 1;
  37. }
  38.  
  39. void display(int num)
  40. {
  41. int hexVal[] = {HEX0, HEX1, HEX2, HEX3, HEX4,
  42. HEX5, HEX6, HEX7, HEX8, HEX9};
  43. int digit = 0;
  44. if(num < 0)
  45. {
  46. P1_7 = 1;
  47. num *= -1;
  48. }
  49. else
  50. P1_7 = 0;
  51. digit = hexVal[num % 10];
  52. digit ^= 0xFF;
  53. P0 = digit;
  54. num /= 10;
  55. digit = hexVal[num];
  56. digit ^= 0xFF;
  57. P2 = digit;
  58. }
  59.  
  60. void mydelay(int ms)
  61. {
  62. int i;
  63. int j;
  64. for (j=0; j<ms; j++)
  65. {
  66. for (i=0; i<1840; i++)
  67. {
  68. // do nothing
  69. }
  70. }
  71. }
  72.  
  73.  
  74.  
  75. void changeLimit (int i, int limit[])
  76. {
  77. while (1)
  78. {
  79. P0 = OFF;
  80. P2 = OFF;
  81. P1_7 = 0;
  82. mydelay(250);
  83. display(limit[i]);
  84.  
  85. if (B2 == 0){
  86. limit [i]++;
  87. if (limit[i]>90)
  88. {
  89. limit[i]=-90;
  90. }
  91. mydelay(50);
  92. }
  93.  
  94. if (B3 == 0){
  95. limit [i]--;
  96. if (limit[i]<-90)
  97. {
  98. limit[i]=90;
  99. }
  100. mydelay(50);
  101. }
  102.  
  103. if (B1 == 0)
  104. break;
  105. }
  106. }
  107.  
  108. void ext_int(void)
  109. {
  110.  
  111. int i = 0;
  112.  
  113. while (1)
  114. {
  115. mydelay(1000);
  116. display(limit[i]);
  117.  
  118. if (B1 == 0)
  119. changeLimit(i,limit);
  120.  
  121. if (B2 == 0)
  122. i ^= 1;
  123.  
  124. if (B3 == 0)
  125. break;
  126. }
  127. }
  128.  
  129. int main (void)
  130. {
  131. initMC();
  132. limit[0] = -90;
  133. limit[1] = 90;
  134. while(1)
  135. {
  136. display(10);
  137. if (P1_3 == 0)
  138. ext_int();
  139. }
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement