Communication between PC and PIC16f876


Closed Thread
Results 1 to 12 of 12

Hybrid View

  1. #1
    Join Date
    Jun 2007
    Posts
    8

    Default

    Hello everybody
    Thank you for your answers

    I would like to know how to initialize the UART.
    Here is how I have make but that does not work.

    (19200bps,No parity,8 bits,and 1 stop bit)

    TXSTA = $20 '//Transmission sur 8 bits, pas de parité, mode asynchrone
    RCSTA = $90
    SPBRG=25

  2. #2
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default

    Bonjour,
    Depending how you want to use the USART, the initialization setup will be different. Let's say you want to read/write from the PIC USART register (RCREG/TXREG) yourself, your setup above is almost what you need but not not 100% exact. for a 9600 baud @4MHZ, the setup will be
    Code:
    RCSTA = $90 ' Enable serial port & continuous receive
    TXSTA = $24 ' Enable transmit, BRGH = 1
    SPBRG = 25  ' 9600 Baud @ 4MHz, 0.16%
    But more than often we want to use the power of a PBP built-in command, hence HSERIN/HSEROUT. In that case the right setup will be.
    Code:
    DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
    DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
    DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0.16%
    DEFINE HSER_CLROERR 1 ' Clear overflow automatically
    This also assume you're going to use the PIC dedicated I/Os (TX/RX)

    I would suggest you to download and use my PicMultiCalc, yeah i know i sound like a broken record but... agreed it's an handy tool.

    http://www.mister-e.org/pages/utilitiespag.html

    Bonne chance!
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  3. #3
    Join Date
    Jun 2007
    Posts
    8

    Default

    Merci Mister e

    But I would like to know another thing if I pass by the UART to register the information which goes into the PIC, how I have to proceed.

    This line of program is good:

    CTS = 1

    SERIN PORTC.7,N9600,["@"],char 'wait for char. @ from the PC and store second @ in char... this is just a wait line, no received data is used

    getserial:

    Serin PORTC.7,N9600,char 'receive at 9600bps and store in variable char

    write i, char 'write each received character to the memory


    if char = EOM then
    CTS = 0
    Goto start
    endif

    i = i + 1

    goto getserial

    I am going to try with your configuration of the UART
    Good day

    Regards

  4. #4
    Join Date
    Jun 2007
    Posts
    8

    Default Remerciment

    Thank you for your help,
    That works

Similar Threads

  1. Scrolling LED sign / marquee
    By led555 in forum Schematics
    Replies: 35
    Last Post: - 26th December 2008, 07:13
  2. PIC16F876 + QV306m4 Problems
    By pcaccia in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 28th May 2005, 19:17

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts