olgierd

Untitled

Dec 16th, 2018
65
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "8051.h" // zbior definiuj.cy rejestry procesora
  2.  
  3. #define TH0_RELOAD 0xFA
  4. #define TL0_RELOAD 0x00
  5. #define TIK 1
  6.  
  7. int ktory = 1;
  8. char kody[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
  9. int i = 0, j = 0, k = 0, l = 0;
  10.  
  11. int btn_before = 1;
  12. int state = 0;
  13.  
  14. void timer0_init(void) {
  15. TH0 = TH0_RELOAD; // za.adowanie czasu odliczania
  16. TL0 = TL0_RELOAD; // TH0 . starszy bajt, TL0 - m.odszy
  17. TMOD = TMOD | 0x01; // tryb nr 1 uk.adu TIMER 0
  18. TR0 = 1; // TIMER 0 start
  19.  
  20. ET0 = 1; // odblokowanie przerwa. od TIMER 0
  21. }
  22.  
  23. void timer_isr (void) __interrupt (1) __using (0) {
  24. static int count=0;
  25. TH0 = TH0_RELOAD; // za.adowanie czasu odliczania
  26. TL0 = TL0_RELOAD;
  27. count++;
  28.  
  29. if (count==TIK) { // dodatkowy licznik przerwa.
  30. count=0; // umo.liwiaj.cy uzyskanie dodatk.
  31. P2_7=!P2_7; // opo.nie.
  32.  
  33. ktory = ktory*2;
  34. if (ktory == 16)
  35. ktory = 1;
  36. }
  37. }
  38.  
  39. void delay(int val){
  40. int i = 0;
  41. for (i; i < val; i += 1){
  42. }
  43. }
  44.  
  45. void main(void) {
  46. EA = 0; // zablokowanie przerwa.
  47. timer0_init(); // przygotowanie uk.adu Timer0
  48. EA = 1; // odblokowanie przerwa.
  49. P2=0xFF; // wygaszenie wszystkich diod
  50. while(1) {
  51. P2_6 = P3_6;
  52.  
  53. btn_before
  54. state
  55.  
  56.  
  57. P1 = ktory;
  58. if (P3_0 == 0)
  59. i++;
  60. if (i > 9)
  61. i = 0;
  62.  
  63. if (P3_1 == 0)
  64. j++;
  65. if (j > 9)
  66. j = 0;
  67.  
  68. if (P3_2 == 0)
  69. k++;
  70. if (k > 9)
  71. k = 0;
  72.  
  73. if (P3_3 == 0)
  74. l++;
  75. if (l > 9)
  76. l = 0;
  77.  
  78. if (ktory == 1)
  79. P0 = kody[i];
  80. if (ktory == 2)
  81. P0 = kody[j];
  82. if (ktory == 4)
  83. P0 = kody[k];
  84. if (ktory == 8)
  85. P0 = kody[l];
  86.  
  87.  
  88.  
  89. }
  90. }
RAW Paste Data