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
Tony
http://www.bubblesoftonline.com
mailto:SPAMsales at TakeThisOuTpicnpoke.com
see also:
| file: /Techref/microchip/pprs232.htm, 2KB, , updated: 2001/5/25 14:48, local time: 2025/10/23 22:45,
216.73.216.20,10-1-5-169:LOG IN
|
| ©2025 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://massmind.ecomorder.com/Techref/microchip/pprs232.htm"> PIC Specific RS232 routine</A> |
| Did you find what you needed? |
Welcome to ecomorder.com! |
Welcome to massmind.ecomorder.com! |
.