I'm building a thing that really could use some serial out and input, so I decided to try to finally use the USART's in some pics..
First I tried to get it to work in my nearly-finished testrig for the rest of the stuff, but when this didnt work I built a "serial testring" to be able to sort out the problems.
But no. get nothing in my term program.
This is my testcode..
Code:
' Serial testrig 1.0 Glenn a t repulsiv.se
@ device PIC16F877A,HS_OSC,LVP_OFF,WDT_OFF,PROTECT_OFF
' Lets define..
DEFINE OSC 20 ' Lets work at 20MHz
' And the LCD..
DEFINE LCD_DREG PORTD ' Set LCD Data port
DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_RSREG PORTD ' Set LCD Register Select port
DEFINE LCD_RSBIT 4 ' Set LCD Register Select bit
DEFINE LCD_EREG PORTD ' Set LCD Enable port
DEFINE LCD_EBIT 5 ' Set LCD Enable bit
DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 2 ' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us
DEFINE LCD_DATAUS 50 ' Set data delay time in us
' And the serial port using USART.
DEFINE HSER_BAUD 9600 ' HSER baud rate
DEFINE HSER_SPBRG 129 ' HSER SPBRG init
DEFINE HSER_RCSTA 90h ' HSER receive status init
'DEFINE HSER_TXSTA 24h ' HSER transmit status init high speed
DEFINE HSER_TXSTA 20h ' HSER transmitter init
pause 1000 ' Gracetime for the LCD
Main:
LCDOUT $FE, 1, "Hello world"
pause 500
LCDOUT $FE, $C0, "Again and again"
pause 500
LCDOUT $FE, 1
pause 500
gosub serial
pause 500
goto main:
serial:
HSEROUT ["Glenn",10]
Return
..I tried different things, but this should work ? or ?
I attached a schematics of my simple testrig.
Bookmarks