Source Code File:"usartbaslib.bas"

'********************************************************
'*                                                      *
'*  HARDWARE USART LIBRARY FOR USE WITH BOOST BASIC     *
'*                                                      *
'*      WRITTEN BY      :  PUNERJOT SINGH MANGAT        *
'*      COUNTRY         :  INDIA                        *
'*      CITY            :  PATIALA                      *
'*      WEB PAGE        :  www.rackeys.com/punerjot     *
'*      EMAIL           :  punerjot@rackeys.com         *
'*      SOURCEBOOST ID  :  c58_4311                     *
'*      RELEASE DATE    :  May 24, 2006                 *
'*      REVISED DATE    :  May 24, 2006                 *
'*                                                      *
'********************************************************
'
'
'
' commandas are
' usart_tx(ASCII value of the char to be sent)
' usart_rx() as byte
' usart_init()
'
'
' RC6 = output TX
' RC7 = input RX
'
' parameters are: baud rate = 4800, Data bits = 8, Patity = none, Stop bit = 1
'
' the baud rate can be changed by changing the SPBRG value that can
' be calculated by BaudCalc.Exe


'*************** USART Initializing routines ***********************
sub usart_init()
    trisc.6 = 0         'RC6 as output TX
    trisc.7 = 1         'RC7 as input RX
    txsta = 0
    spbrg = 12          'for 4800 baud at 4 Mhz freq
    txsta = 0x22        '00100010
    rcsta = (10010000b) 'with continuous recieve
end sub
'************** USART Initializing routines ends *******************


'******************** USART TX procedure ***************************
sub usart_tx(b as byte)
    do while ( !(txsta & 0x02) )
        _asm nop
        _asm clrwdt
    loop
    txreg = b
end sub
'******************** USART TX procedure ends **********************


'******************** USART RX procedure ***************************
function usart_rx() as byte
            
    if ( (rcsta.OERR = 1) ) then    
        rcsta.CREN = 0
        rcsta.CREN = 1
        usart_rx = 0x00
    else
        do while (pir1.RCIF = 0)
            _asm nop
        loop
        usart_rx = rcreg
    end if

end function
'******************** USART RX procedure ends *********************

http://www.sourceboost.com

Copyright © 2006 SourceBoost Technologies