dinsdag 19 april 2011

MAX232 + PIC16f628 = seriele communicatie

Hallo allemaal,

Mijn eerste blog gaat over seriele communicatie met de MAX232 en een PIC microcontroller. Dit kan heel handig zijn om een interface te maken tussen de PC en je elektronicaprojectje. Dit kan dan gebruikt worden om bijvoorbeel een sensor uit te lezen met een PIC en deze informatie dan door te sturen naar de PC. Ook omgekeerd is natuurlijk geen probleem.

Nu wilde ik daar vandaag eens wat mee gaan experimenteren en ging ik dus op zoek naar een MAX232 in de IC-collectie. Helaas, niets gevonden. Helaas want een simpele testopstelling is nochtans zeer makkelijk op te bouwen. Je verbind Rx van de PIC met R1out van de MAX232 en Tx met T1in. De MAX232 verbind je dan met de seriele poort van de PIC. Daarna verzend je met de PIC "iets" naar de MAX232, deze converteert de spanningslevels voor de seriele poort en met het programma hyperterminal ontvang je dat dan. Als simpele test verzend je daarna ook iets met hyperterminal naar de PIC. Om dat te controleren kan je heel simpel de PIC een ledje doen branden als hij een bepaald woord oid ontvangt.



 
Met het bovenstaande schema kan er een simpele interface gemaakt worden om de PIC met de PC te verbinden. De broncode voor de PIC (Picbasic) kan er dan als volgt uitzien: 


Device 16F628
Config WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC
XTAL 4
ALL_DIGITAL TRUE


Declare HSERIAL_BAUD 9600
Declare HSERIAL_RCSTA $90
Declare HSERIAL_TXSTA $24
Declare HSERIAL_CLEAR = On

HRSin Dec waarde

HRSOut Dec waarde

Dit programma ontvangt een waarde van de PC die door de gebruiker verstuurd is met hyperterminal en stuurt die onmiddelijk terug naar de PC. Hiermee kan dus gecontroleerd worden of de communicatie werkt. Alle verdere tekst in het programma zijn instellingen(baudrate e.d.), daar moet je je voor dit voorbeeld niet veel van aantrekken.

Geen opmerkingen:

Een reactie posten