Advertisement
Sawy3R11

LAB_5_Mikronapedy

May 27th, 2017
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. #include <reg515.sfr>
  2. #include <lcd.h>
  3. unsigned char x;
  4. unsigned int var = 50, delta;
  5. void opoznienie(int x){
  6. int j;
  7. for(j = 1; j < x; j++);
  8. }
  9. int main(){
  10. init();
  11. T2R1 = 1;
  12. T2I0 = 1;
  13. CRCH = 0xFF;
  14. CRCL = 0x00;
  15. CCH1 = 0xFF;
  16. CCL1 = var;
  17. // odpowiedź regulatora inicjowana początkową wartością prędkości
  18. CCEN = 8;
  19. CLK = 1;
  20. P3_5 = 0;
  21. while(1){
  22. int a, b;
  23. x = get_char();
  24. if(x == 'g'){
  25. // spr. czy wciśnięto strzałkę w górę
  26. if(var < 250)
  27. // spr. czy wartość prędkości jest mniejsza od max. dopuszczalnej
  28. CCL1 = ++var;
  29. // jeśli, to zwiekszenie odpowiedzi regulatora
  30. put_instr(0x02);
  31. delta = CCL1 * 100 / 255;
  32. // wyliczanie wspołczynnika wypełnienia
  33. a = delta / 10;
  34. // wyłuskanie wartości dziesiątnych
  35. b = delta % 10;
  36. // wyłuskanie wartości jedności
  37. put_char(a + 48);
  38. 1
  39. put_char(b + 48);
  40. opoznienie(2000);
  41. }
  42. if(x == 'd'){
  43. // spr. czy wciśnięto strzałkę w dół
  44. if(var > 0)
  45. // spr. czy wartość prędkości jest większa od 0
  46. CCL1 = --var;
  47. // jeśli, to zmniejszenie odpowiedzi regulatora
  48. put_instr(0x02);
  49. delta = CCL1 * 100 / 255;
  50. a = delta / 10;
  51. b = delta % 10;
  52. opoznienie(2000);
  53. put_char(a + 48);
  54. put_char(b + 48);
  55. }
  56. }
  57. opoznienie(2000);
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement