Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. #include <REGX52.H>
  2.  
  3. void uart_init()
  4. {
  5. //Ustawic SCON
  6. //Ustawic przerwania
  7. //Ustawic rejestry przerwan wysylania i odbierania
  8. //Ustawic timer
  9. TMOD = 0x20; /* Timer 1, 8-bit auto reload mode */
  10. TH1 = 0xFD; /* Load value for 9600 baud rate */
  11. SCON = 0x50; /* Mode 1, reception enable */
  12. TR1 = 1;
  13. //timer_init();
  14. // konfiguracja przerwan
  15. ES = 1; // wlaczenie IRQ portu szeregowego
  16. EA = 1;
  17. P3_4 = 0;
  18. TI = 0; //ustawia flage transmiosji
  19. RI =0 ;
  20. }
  21.  
  22. void uart_send(char c)
  23. {
  24. P3_4 = 1;
  25.  
  26. SBUF = c; /* Load char in SBUF register */
  27. while (TI==0); /* Wait until stop bit transmit */
  28. TI = 0;
  29. //Zmieniac na tryb nadawania
  30. //Dopisac
  31. //Zmieniac na tryb nasluchiwania
  32. P3_4 = 0;
  33. }
  34.  
  35. void uart_sendbuffer(char * buffer, unsigned int count)
  36. {
  37. unsigned int i = 0;
  38. for(i = 0; i < count; i++)
  39. uart_send(buffer[i]);
  40. }
  41.  
  42. //Po odpowiednim ustawieniu
  43. //funkcja ta wykona sie gdy odebrany zostanie bajt danych
  44. //BARDZO WAZNE JA USTAWIC (wyzerowac rejestry) NAWET JAK TYLKO NADAJE
  45. void ISR_Serial (void) interrupt 4
  46. {
  47. P1 = 1;
  48. P1 = SBUF;
  49. if (RI == 1)
  50. {
  51. // tutaj wykonac odczytanie odebranego komunikatu z SBUF
  52. RI = 0;
  53. }
  54. /* Give received data on port 1 */
  55. /* Clear RI flag */
  56. }
  57.  
  58. char * buffer [4] = {"Michal"};
  59. char * buffer1 [6] = {"Stachera"};
  60. char * buffer2 [7] = {"23.06.2019"};
  61. char * buffer3 [10] = {"I7Y6S1"};
  62.  
  63.  
  64. void sleep (int liczba){
  65.  
  66. int i = 0;
  67. for(i = 0; i <liczba ; i++){
  68. ;
  69. }
  70. }
  71. unsigned char counter = 0;
  72. void main(void)
  73. {
  74. uart_init();
  75. P3_4 = 0; //Tryb nasluchiwania
  76.  
  77. while(1)
  78. {
  79. P2 = ~(0x80 >> (counter++ % 4));
  80.  
  81. //Przycisk 1
  82. if(P2_4 == 0 && P2_3 == 0)
  83. {
  84. uart_send(0x01);
  85. uart_sendbuffer(buffer[0],6);
  86. uart_send('\0');
  87. sleep(5000);
  88. //uart_send(???)
  89. //uart_sendbuffer(buffer[0], 10);
  90. //uart_send(???)
  91. //P0_0 = ~P0_0;
  92. }
  93. if(P2_4 == 0 && P2_2 == 0 ){
  94. uart_send(0x02);
  95. uart_sendbuffer(buffer1[0],8);
  96. uart_send('\0');
  97. sleep(5000);
  98.  
  99. }
  100. if(P2_5 == 0 && P2_3 ==0){
  101. uart_send(0x04);
  102. uart_sendbuffer(buffer3[0],6);
  103. uart_send('\0');
  104. sleep(5000);
  105.  
  106. }
  107.  
  108. //Przycisk 9
  109. if(P2_1 == 0 && P2_6 == 0)
  110. {
  111. uart_send(0x03);
  112. uart_sendbuffer(buffer2[0],10);
  113. uart_send('\0');
  114. sleep(5000);
  115. }
  116. P3_4 = 1;
  117. }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement