Ports for Embedded Systems
data_ready_to_send var bit
flow_control_input var PORTB.4
flow_control_output var PORTB.5
serial_in var byte
serial_out var byte
' Configure the flow-control pins as one input and one output.
TRISB.4 = 1
TRISB.5 = 0
' Assert the flow-control output to enable receiving data on the serial port.
flow_control_output = 0
This task loop calls two routines in an endless loop:
loop:
gosub receive_serial_data
gosub transmit_serial_data
GOTO loop
This routine checks for a new received byte on the serial port.
receive_serial_data:
if (PIR1.5 = 1) then
' A byte has arrived at the serial port. Read it.
hserin [serial_in]
' Tell the remote computer to stop sending data.
flow_control_output = 1
' Set serial_out to a character code to send on the serial port.
if ((serial_in > 96) and (serial_in < 123)) then
' The received character code was lower case (a-z).
' Send back the character in upper case.
serial_out = serial_in - 32