pic16f877a interfacing with pc

Home Forums Microcontrollers PIC Microcontroller pic16f877a interfacing with pc

This topic contains 3 replies, has 2 voices, and was last updated by  Ligo George 3 years, 7 months ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #7540

    rahulo0
    Participant

    Hello There,

    I am trying to send a message from pc to pic16f877a and want to display it on lcd. But problem is that no matter the message length that i am sending from pc ,i am able to receive and display only 2 characters on lcd. I am sending you the code. Looking forward for a reply. By the way i am using mikroC for writing the code.

    Thank you,
    rahul

    /*/ LCD module connections*/
    sbit LCD_RS at RB7_bit;
    sbit LCD_EN at RB6_bit;
    sbit LCD_D4 at RB5_bit;
    sbit LCD_D5 at RB4_bit;
    sbit LCD_D6 at RB3_bit;
    sbit LCD_D7 at RB2_bit;

    sbit LCD_RS_Direction at TRISB7_bit;
    sbit LCD_EN_Direction at TRISB6_bit;
    sbit LCD_D4_Direction at TRISB5_bit;
    sbit LCD_D5_Direction at TRISB4_bit;
    sbit LCD_D6_Direction at TRISB3_bit;
    sbit LCD_D7_Direction at TRISB2_bit;
    // End LCD module connections
    unsigned char uart_rd;
    int i;
    void main() {

    uart1_init(9600);
    delay_ms(100);
    Lcd_Init(); // Initialize Lcd

    Lcd_Cmd(_LCD_CLEAR); // Clear display
    Lcd_Cmd(_LCD_CURSOR_OFF);
    while(1){
    if(uart1_data_ready()==1){
    delay_ms(100);
    uart_rd=uart1_read();
    lcd_chr_cp(uart_rd);
    }

    }
    }

    #7544

    Ligo George
    Keymaster

    I also experienced this problem, while using uart and wifi module… I think this problem is due to less buffering space in pic microcontroller…there is only one RSR register for saving the received data…. So if the received data is not read, no data will be received further…
    So try transmitting byte by byte..

    #7547

    rahulo0
    Participant

    Thanks Ligo
    can you please program it in mikroc and send the codes ?

    #7548

    Ligo George
    Keymaster

    Try it yourself.. it is simple…

    When sending data from PC to PIC.. send it byte by byte…… If you need to send a sentence…
    just transmit and receive byte by byte… and you can use a terminator (eg: ‘.’ for the end of a sentence) to know the end of a sentence….

    PIC Microcontroller also has interrupt feature… you may use it, to reducing the continuous uart reading load ….

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.