PIC16F88 HSERIN to LCD Problem


Results 1 to 10 of 10

Threaded View

  1. #1
    Join Date
    Jun 2009
    Posts
    4

    Default PIC16F88 HSERIN to LCD Problem

    Hello,

    I have been having problems with the HSERIN instruction on a 16F88 and after too many hours on Google I hope someone can help me.

    I have written a program that will take serial data and output it to an LCD. The program works at 1200 baud but doesn't work at any speed above this. Ideally I would like the baud rate to be 9600 but 1200 is too slow.

    Here is my code:

    Code:
    '-------------------------------------
    ' STARTUP CODE
    '-------------------------------------
    
    @ DEVICE PIC16F88,XT_OSC
    @ DEVICE PIC16F88,PROTECT_OFF
    @ DEVICE PIC16F88,WDT_OFF
    @ DEVICE PIC16F88,PWRT_ON
    @ DEVICE PIC16F88,MCLR_ON
    @ DEVICE PIC16F88,BOD_OFF
    @ DEVICE PIC16F88,LVP_OFF
    @ DEVICE PIC16F88,CPD_OFF
    @ DEVICE PIC16F88,DEBUG_OFF
    @ DEVICE PIC16F88,CCPMX_OFF
    
    ' *THIS SPEED DOESN'T WORK??
    'DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
    'DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
    'DEFINE HSER_SPBRG 25  ' 9600 Baud @ 0.16%
    'DEFINE HSER_CLROERR 1 ' Clear overflow automatically
    
    ' *THIS SPEED DOES WORK
    DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
    DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
    DEFINE HSER_SPBRG 51  ' 1200 Baud @ 0.17%
    DEFINE HSER_CLROERR 1 ' Clear overflow automatically
    
    'Define the LCD
    Define LCD_DREG PORTA
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTB
    DEFINE LCD_RSBIT 0
    DEFINE LCD_EREG PORTA
    DEFINE LCD_EBIT 4
    DEFINE LCD_BITS 4
    DEFINE LCD_LINES 2
    'DEFINE LCD_COMMANDUS 1500
    'DEFINE LCD_DATAUS 44
    
    'Register setup
    ADCON1 = %00000111          ' Disable A/D converter
    ANSEL = %00000000           ' all analog pins to digital
    CCP1CON = %00000000         ' Disable CCP Module
    CMCON = %00000111           ' Turn off comparator
    INTCON = %00000000          ' Interrupts disabled
        
    'Clear the ports
    TRISA = %00000000           'All O/P's
    TRISB = %00001101           'All O/P's
    PORTA = 0                   'Zero PortA O/P's
    PORTB = 0                   'Zero PortB O/P's
     
    'Var for RS232 data
    RxData var byte
    
    '-------------------------------------
    ' SPLASH SCREEN
    '-------------------------------------
    SplashScreen:
    
    pause 60   'Power up delay
    
    'Display a splash screen for 2 seconds
    LCDOUT $FE,1,"RS232 to LCD"
    LCDOUT $FE,$C0,"Display Test"
    pause 2000
    
    'Now ready for COMMS...
    LCDOUT $FE,1,"Waiting for PC"
    LCDOUT $FE,$C0,"to send data..."
    
    '-------------------------------------
    ' RS232 TO LCD
    '-------------------------------------
    Main:
    
    
    high PORTB.7        'This is just a test for diagnostics
    hserin [RxData]     'Get the RS232 Data
    low PORTB.7         'This is just a test for diagnostics
    
    lcdout RxData       'Output the data to the LCD
    
    goto Main           'Loop forever

    I have looked at the RS232/LCD data with a digital logic probe and I have attached 2 screen shots from this. One shows 1200 baud and the other 9600 baud. At 1200 baud the timing looks ok but at 9600 it looks like there is not enought time to send the LCD data before another byte of data comes in.

    Does anyone have any ideas how to resolve this issue?

    Thanks,
    robbrownuk
    Attached Images Attached Images   

Similar Threads

  1. Newbie? Problem with LCD
    By lew247 in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 7th December 2009, 19:48
  2. RX TX modules - intermitent communication
    By ruijc in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 11th June 2009, 00:13
  3. PIC HSERIN problem
    By shaiqbashir in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 20th July 2008, 11:08
  4. LCD Problem
    By karenhornby in forum General
    Replies: 3
    Last Post: - 19th June 2008, 11:43
  5. Replies: 8
    Last Post: - 7th December 2006, 15:42

Members who have read this thread : 1

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

Tags for this Thread

Posting Permissions

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