by Tony Nixon
This code is written for a 16C74, but it should still work.
One difference with the 16F877 is the RCSTA register which has a ADDEN bit, but this is disabled on powerup.
; enable ASYNC TX/RX ; ; BAUD RATE SETTINGS ; 38400 - spbrg = 25, brgh = 1 ; 19200 - spbrg = 12, brgh = 0 ; 9600 - spbrg = 25, brgh = 0 ; movlw b'01xxxxxx' movwf portc bsf status,rp0 movlw b'10xxxxxx' ; x = depends on your application movwf trisC movlw d'12' ; 19200 baud movwf spbrg movlw b'00100000' ; brgh = low ; movlw b'00100100' ; brgh = high movwf txsta ; enable Async Transmission, set brgh bcf status,rp0 ; ram page 0 movlw b'10010000' movwf rcsta ; enable Async Reception movf rcreg,w ; flush receive buffer movf rcreg,w ; maybe not needed movf rcreg,w ; ; Perhaps put a powerup settling time delay here ; ; program start ; receive a character and echo it back Loop call Receive ; -> RxHold movf RxHold,w movwf txreg goto Loop ; ; ---------------------------- ; RECEIVE CHARACTER FROM RS232 ; ---------------------------- ; This routine does not return until a character is received. Receive nop btfss pir1,rcif ; (5) check for received data goto Receive movf rcreg,w movwf RxHold ; tempstore data return
-- Best regards
mailto:-Remove-sales at picnpoke.com
|file: /Techref/microchip/pprs232.htm, 2KB, , updated: 2001/5/25 13:48, local time: 2023/11/28 14:26,
|©2023 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?|
<A HREF="http://www.massmind.org/Techref/microchip/pprs232.htm"> PIC Specific RS232 routine</A>
|Did you find what you needed?|
Welcome to massmind.org!
Welcome to www.massmind.org!