Advertisement
hugol

Untitled

Mar 24th, 2015
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <p18f4520.h>
  2. #include <delays.h>
  3. #include <stdio.h>
  4. #include "xlcd.h"
  5.  
  6. #pragma config WDT = OFF
  7.  
  8. int j;
  9. char rb = '?';
  10.  
  11. void initXLCD(void);
  12. void txtXLCD(void);
  13. void initUSART(void);
  14. char reciveByteAndShow(void);
  15. void sendByte(char c);
  16.  
  17. void initUSART(void) {
  18.      // Inicjalizacja modułu USART
  19.  
  20.     /* Uzupełnij kod */   
  21.     TRISC |= 0xC0; // albo TRISC = TRISC | 0xC0;
  22.  
  23.     TXSTAbits.TX9 = 0; //transmisja 8-bitowa
  24.     TXSTAbits.TXEN = 1; //transmisja mozliwa
  25.     TXSTAbits.SYNC = 0; //tryb  asynchroniczny
  26.     TXSTAbits.BRGH = 1; // duza predkosc
  27.    
  28.     RCSTAbits.SPEN = 1; // port szeregowy aktywny
  29.     RCSTAbits.RX9 = 0; //odbior 8-bitowy
  30.     RCSTAbits.CREN = 1; //wlacza ciagly odbior
  31.    
  32.     SPBRG = 52;
  33. }
  34.  
  35. char reciveByteAndShow() {
  36.     // Odebranie bajtu danych z komputera PC
  37.     // i wyśietlenie go na wyświetlaczu LCD
  38.    
  39.     /* Uzupełnij kod */
  40.     while(PIR1bits.RCIF == 0);
  41.     rb = RCREG;
  42.     SetDDRamAddr(0x4F);
  43.     putcXLCD(rb);
  44.     return rb;
  45. }
  46.  
  47. void sendByte(char c) {
  48.     // Wysłanie danych do komputera PC
  49.    
  50.     /* Uzupełnij kod */
  51.     while(PIR1bits.TXIF == 0);
  52.     if(c>='a'&&c<='z')
  53.     c=c-32;
  54.     else if (c>='A'&&c<='Z')
  55.     c=c+32;
  56.     TXREG = c;
  57.  
  58. }
  59.  
  60. void main() {
  61.  
  62.     initXLCD();
  63.     txtXLCD();
  64.     initUSART();
  65.  
  66.     while(1) {
  67.         rb = reciveByteAndShow();
  68.         Delay1KTCYx(10);
  69.         sendByte(rb);
  70.     }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement