Está en la página 1de 8

7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES

MICROCONTROLADORES
ProgramacindeMicrocontroladoresPIC,AVR,ARDUINO

nete gratis a la mayor comunidad


Regstrate en Facebook online del mundo y disfruta!

InicioUSARTPICComunicacinserial

USARTPICComunicacinserial

Compartir: 9 0 0 1

USARTPIC,vienedereceptortransmisorsncronoasncronouniversal,esunaformadecomunicacinentre
dispositivosquetenganestacapacidad,dondelosdatossonenviadosengruposde8bitsode9bitspero
bit por bit, esto es en serie, por eso se dice que esta es una comunicacin serial, en esta seccin se
comentar sobre este tipo de comunicacin utilizando el mdulo USART del microcontrolador PIC, con el
mduloUSARTPICelmicrocontroladorpuedecomunicarseeintercambiardatosconelordenador,conotros
microcontroladores,etc.

DescargaestecontenidoenPDFdesdeaqu.

Para la comunicacin entre microcontroladores y para la comunicacin entre el microcontrolador y el


ordenador, se necesitan 2 hilos de conduccin para la transmisin y recepcin de datos, y un hilo de
conduccin para la conexin de los comunes o GND que tienen que ser los mismos, para la comunicacin
serialentreelmicrocontroladoryelordenadorseseguirlanormaRS232.

SilacomunicacinUSARTPICesasncrona,unodeloshilosserparalatransmisindelosdatosdeundispositivoaotroyelotrohiloserparala
recepcindedatosentreundispositivoaotro,latransmisinylarecepcinpuedenocurrirenformasimultanea,loquesisetienequecumpliresquela
frecuenciadetrabajodeambosdispositivostienequeserlamisma,aestoseleconocecomolosbaudiosquevieneaserlacantidaddebitsporsegundo
quesetransmitirnentreambosdispositivos.

SilacomunicacinUSARTPICessncrona,unodeloshilosserutilizadotantoparalatransmisinylarecepcindedatosporloquelatransmisin
nopuedeocurrirenformasimultanea,elotrohiloserutilizadoparaenviarlasealderelojdesincronizacinentreambosdispositivos,enestecasouno
delosdispositivosesllamadomaestroyelotroesclavo,elmaestroeselquecontrolalasealderelojycuandoseiniciaofinalizalacomunicacin.

El microcontrolador PIC utilizado como modelo ser el PIC16F877A, los pines de este
microcontroladorquetrabajanconelmduloUSARTPICsonelpinRXopinreceptor y el
pinTXopintransmisor,losqueenlaimagenestnresaltadosresaltados.

ElpinRXeselpinparalarecepcindedatosytendrqueserconfiguradocomounaentrada
digital.

ElpinTXeselpinparalatransmisindedatosytendrqueserconfiguradocomounasalida
digital.

ElpinRXdelPICtienequeserconectadoalpinTXdelotrodispositivo.

ElpinTXdelPICtienequeserconectadoalpinRXdelotrodispositivo

Loscomunesdeambosdispositivostambintienenqueestarconectadosentressi.

LosnivelesdetensinconlosquetrabajanlospinesdelmduloUSARTPICsonde0Vy5V
un bajo ser 0V mientras que un alto ser 5V, por eso cuando la comunicacin es entre
microcontroladores la conexin entre pines se puede hacer directamente, pero cuando la
comunicacin es entre el microcontrolador y un ordenador la conexin entre pines tiene que
hacerse a travs de un conversor de nivel como el MAX232, ya que los niveles de tensin
paralacomunicacinserialdelordenadorsonmayoresqueparaelPICtpicamenteentre12Vy12V,ademsdetrabajarconlgicanegativa,estoespara
elordenadorunbajoser12Vmientrasunaltoser12V.
Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto
Puedeobtenerms
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 1/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES

Hay otra manera de conectar el PIC con el ordenador para la comunicacin serial mediante resistencias y la compuerta inversora tipo Schmitt 74HC14
comoseveenlasiguienteimagen.

ElsocketdondeseconectarelPICconelordenadorparalacomunicacinserialesdeltipoDB9yseconocecomopuertoserie,peroresultaqueestetipo
depuertoyanovieneenlosordenadoresporttilesquesonlosquehoyendalamayorautiliza,loquetraenahorasonpuertosUSB,porloquepara
realizarlacomunicacinserialconelmduloUSARTPICsernecesariolautilizacindeunconversorSERIEUSBcomoelquesemuestraenlasiguiente
imagen.

ElconectorDB9eselqueseutilizaparalacomunicacinserialconelmduloUSARTPIC,esteconectorconstadede9pines,loshayhembraymacho,
deesteconectorsoloseutilizarn3pines,unoparaelpinRX,otroparaelpinTXyelotroparaeltierra,estospinestieneunanumeracinquehayque
respetar.

ElconversorserieUSBvieneconelconectorDB9macho,sielcablequetraeescortosetendrqueconseguiruncableserieDB9delquelahembrase
conectaralconectorDB9machodelconversorserieUSByelDB9machodelcableserieDB9almicrocontroladorPICyaseaatravsdelMAX232oconel
usodelacompuertainversoracomosecomentolineasarriba,porloquelospinesaconectardelDB9machoconelmduloUSARTPICsonenelsiguiente
orden:

Elpin2queespinreceptorRXdelconectorDB9machoquevienedelordenador,seconectaratravsdelMAX232oconelusodelacompuerta
Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
inversoraylaresistenciade1KalpintransmisoropinTXdelmicrocontrolador.
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies.
Acepto Puedeobtenerms
Elpin3queespintransmisorTXdelconectorDB9machoquevienedelordenador,seconectaratravsdelMAX232oconelusodelacompuerta

informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.
inversoraylaresistenciade22KalpinreceptoropinRXdelmicrocontrolador.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 2/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES
Elpin5queespinGNDotierraocomndelconectorDB9machoquevienedelordenador,seconectaralpinVssdelmicrocontrolador.

LasconexionesdelmduloUSARTPICconelordenadoratravsdelacompuertainversoraylasresistencias,conelusodelconversorserieUSBsercomo
seindicaenlasiguienteimagen.

USARTPICPROGRAMACIN
ParaprogramarelmduloUSARTPICenelPIC16F877A,seutilizanlossiguientesregistros:elregistroTXSTA,elregistroRCSTA,elregistroSPBRG,
elregistroTXREG,elregistroRXREG,ysiseutilizaninterrupcionesUSARTPIClosregistrosPIE1yPIR1.

ElregistroTXSTAeselregistrodecontroldelatransmisindedatos.

Elbit7CSRCestilcuandoseutilizalacomunicacinserialsncrona,medianteestebitseeligelafuentederelojestoesquiendelosdispositivosserel
maestro,enlacomunicacinserialasncronaestebitnotieneefecto.

Elbit6TX9Esparaelegirsilatransmisindedatossera9bitsoa8bits,siestebitseponea1latransmisinsera9bitsyseestebitseponea0la
transmisinsera8bits.

Elbit5TXENEsteeselbitquehabilitalatransmisindedatos,alponerloa1sehabilitalatransmisindedatosysiseloponea0latransmisinde
datosestardeshabilitada.

Elbit4SYNCConestebitseeligeeltipodecomunicacinserialautilizarconelmduloUSARTPIC,alponerloa1lacomunicacinserialsersncronay
alponerloa0lacomunicacinserasncrona.

Elbit3noseutiliza.

Elbit2BRGHEstebitesparaseleccionarlavelocidaddelosbaudios,queeslacantidaddebitsqueseenviarnporsegundoenelmodoasncrono,sise
ponea1serdealtavelocidad,siseponea0serdebajavelocidad.

Elbit1TRMTEstebitindicaelestadodelregistroTSRutilizadoparalatransmisindedatos,trabajaautomticamente,siesta1indicaqueelregistro
estavaci,siesta0indicaqueelregistroestlleno.

Elbit0TX9DEstebitserelnovenobitseseutilizan9bitsenlatransmisindedatos.

ElRegistroRCSTAEselregistrodecontroldelarecepcindedatos.

Elbit7SPENEstebitesquepermitelahabilitacindelusodelmduloUSARTPIC,siseponea1sehabilitaelusodelmduloUSARTPIC,siseponea
0noesposibleutilizarelmduloUSARTPIC.

Elbit6RX9Esparaelegirsilarecepcindedatossera9bitsoa8bits,siestebitseponea1larecepcinsera9bitsyseestebitseponea0la
recepcinsera8bits.

Elbit5SRENEsteeselbitseutilizaenelmodosncronoparahabilitarlarecepcinsncrona,enelmodoasncrononoesutilizado.

Elbit4CRENConestebitsehabilitalarecepcincontinuadedatosalponerloa1,siseponea0larecepcincontinuadedatosestdeshabilitada.
Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto Puedeobtenerms
Elbit3ADDENEsutilizadoenelmodoasncronosilarecepcindedatosesde9bits.Silarecepcindedatosesa8bitsnoesutilizado
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 3/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES
Elbit2FERREstebittrabajaautomticamentesiseponea1esqueseharecibidoundatonovlido.

Elbit1OERREstebittrabajaautomticamenteysepondra1sisehaproducidounerrorporsobreescrituradeldatorecibido.

Elbit0RX9DEstebitserelnovenobitseseutilizan9bitsenlarecepcindedatos.

El registro SPBRG Es el registro donde se debe cargar el valor con el que se elige la velocidad de transmisin de los datos, esto es los baudios o la
cantidaddebitsporsegundoqueseenviarnenlacomunicacinserialconelmduloUSARTPIC,trabajajuntoconelbitBRGHdelregistroTXSTA.

ElvaloracargarenelregistroSPBFGsecalculaconlassiguientesfrmulasquedependerndelavelocidadelegidaconelbitBRGH,delafrecuenciadel
osciladorutilizadoydesilacomunicacinsersncronaoasncrona.

Losejemplosqueseharnsernparalatransmisinasncronaaaltavelocidadporloquelafrmulaqueseutilizarser:

Velocidadenbaudios=Fosc/(16*(SPBRG+1))

Es importante recordar que la velocidad en baudios de los dispositivos que se estn comunicando tienen que ser iguales, la mas comn es la de 9600
baudios,sienlafrmulaanteriorsereemplazaysedespejasetendr:

SPBRG=(Fosc/(16*9600))1

dedonde:

SPBRG=(Fosc/153600)1

Porejemplosielosciladoresde4MHzsetendr

SPBRG=(4000000/153600)1=25

Porloqueparaobtenerununavelocidadde9600baudiossetendrquecargarelregistroSPBRGcon25.

Hay un cuadro en la hoja de datos donde se tienen algunos valores a cargar en este registro para el modo sncrono y asncrono dependiendo de la
frecuenciadelosciladorutilizadoydelavelocidadelegida.

ElregistroTXREGEselregistrodondesedebeescribireldatoquesequieraenviarellacomunicacinserialconelmduloUSARTPIC.

ElregistroRCREGEselregistrodondesedebeleeralrecibiralgndatoenlacomunicacinserialconelmduloUSARTPIC.

ElregistroPIE1Alponerelbit4deesteregistroa1sehabilitaelusodeinterrupcionesporlafinalizacindelatransmisindeldatoyalponerelbit5de
esteregistroa1sehabilitaelusodelasinterrupcionesporlafinalizacindelarecepcindeldato.

ElregistroPIR1Elbitbit4deesteregistrosepondra1cuandosehaterminadolatransmisindeldato,luegosepondrautomticamentea0,siesta
Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
habilitadalainterrupcinporfinalizacindelatransmisindeldatoestebitserelqueindicaquehaocurridolainterrupcin.Elbit5deesteregistrose
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto Puedeobtenerms
pondra1cuandosehaterminadolarecepcindeldato,luegosepondrautomticamentea0,siestahabilitadalainterrupcinporfinalizacindela
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 4/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES
recepcindeldatoestebitserelqueindicaquehaocurridolainterrupcin.

USARTPICPROGRAMACINenelXC8
ParalaprogramacindelmduloUSARTPICseutilizarelXC8,yaqueestepermitetrabajardirectamenteconlosregistrosyestoesdegranayudapara
conocermuchomassobreelmanejodelosmicrocontroladoresPIC,enestecasosecomentarcomosepuedeprocederparautilizarelmduloUSARTPIC
delPIC16F877A,loaqucomentadoesmuysimilarparaotrosmicrocontroladoresPIC

ParainiciarelmduloUSARTPIC.

LospinesdelPIC116F877AparaelmanejodelmduloUSARTPICsonelpinRC7paralarecepcindedatosporloqueenestecasoselellamapinRX,y
elpinRC6paralatransmisindedatos,enestecasoselellamapinTX,elpinRXsetienequeconfigurarcomounaentradadigitalyelpinTXsetiene
queconfigurarcomounasalidadigital,estoenelXC8sepuedehaceras:

TRISCbits.TRISC7=1//pinRXcomounaentradadigital

TRISCbits.TRISC6=0//pinRXcomounasalidadigital

Configuracin del registro TXSTA para el control de la transmisin de datos, en este caso se har para que la transmisin sea a 8 bits en forma
asncronadealtavelocidadporloque:

Elbit7enmodoasncrononoseusaporloquesepondra0.

Elbit6sepondra0paraquelatransmisinseaa8bits.

Elbit5sepondra1paraqueesthabilitadalatransmisindedatos.

Elbit4sepondra0porquelatransmisinserasncrona.

Elbit3noseutilizaporloqueselopondra0.

Elbit2sepondra1paraqueelmduloUSARTPICtrabajeaaltavelocidad.

Elbit1esunbitdeestadotrabajaautomticamenteeindicacuandoelregistrodondesecolocaeldatoatransmitirestllenoovaco,selopuedeponera
1oa0parainiciar,enestecasoselopondra1porqueseestiniciandoytendraqueestarvaco.

Elbit0noseutilizaporqueeselbitdeparidadcuandoseutilizalatransmisinde9bitsperocomoseutilizarlatransmisina8bitsnoinfluyeyselo
pondra0.

LuegoenlainicializacindelmduloUSARTPICelregistroTXSTAenelXC8quedaras:

TXSTA=0b00100110//8bits,transmisinhabilitada,asncrono,altavelocidad

ConfiguracindelregistroRCSTAparaelcontroldelarecepcindedatos,enestecasoseharparaquelarecepcinseaa8bitsenformaasncrona
dealtavelocidadporloque:

Elbit7sepondra1parahabilitarelusodelmduloUSARTPIC.

Elbit6sepondra0paraquelarecepcinseaa8bits.

Elbit5seponea0porquenoseusaenlacomunicacinasncrona.

Elbit4seponea1parahabilitarlarecepcindedatos.

Elbit3seponea0porquelarecepcinsera8bit.

Elbit2estebittrabajaautomticamentecuandoseponea1indicaqueseharecibidoundatonovlido.

Elbit1estebittrabajaautomticamentecuandoseponea1indicaquesehaproducidounerrorporsobreescrituradealgndatorecibido.

Elbit0noseutilizaporqueeselbitdeparidadcuandoseutilizalarecepcinde9bitsperocomoseutilizarlarecepcina8bitsnoinfluyeyselopondr
a0.

LuegoenlainicializacindelmduloUSARTPICelregistroRCSTAenelXC8quedaras:

RCSTA=0b10010000//habilitadoelUSARTPIC,recepcin8bits,habilitada,asncrono

Carga del registro SPBRG para los baudios o la cantidad de bits por segundo para la comunicacin serial, como ser a alta velocidad por lo que el
bitBRGHdelregistroTXSTAsepusoa1yenformaasncrona,seutilizarlafrmula.

Velocidadenbaudios=baudios=Fosc/(16*(SPBRG+1))

Aldespejarsetendr

SPBRG=(Fosc/(16*baudios))1

EnlosejemplosqueseharnseutilizarunaFoscde4Mhzylavelocidadserde9600baudios,porloquealreemplazarsetendrqueelvaloracargar
enelregistroSPBRGserde25,luegoenelXC8ser:

SPBRG=25//paraunavelocidadde9600baudiosconunosciladorde4Mhz

Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
EntoncessepuedeiniciarelmduloUSARTPICenelXC8delasiguientemanera:
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto
Puedeobtenerms
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 5/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES
1 ///////////////////////////////////////////////
2 //inicializacindelmduloUSARTPICenelXC8modoasncrono,a8bits,
3 //a9600baudios
4 TRISCbits.TRISC7=1;//pinRXcomounaentradadigital
5 TRISCbits.TRISC6=0;//pinTXcomounasalidadigital
6 TXSTA=0b00100110;//8bits,transmisinhabilitada,asncrono,altavelocidad
7 RCSTA=0b10010000;//habilitadoelUSARTPIC,recepcin8bits,
8 //habilitada,asncrono
9 SPBRG=25;//paraunavelocidadde9600baudiosconunosciladorde4Mhz

Lainicializacinpodrahacersedentrodeunafuncinalaqueselepuededarelnombrequesequiera,enestecasoselallamariniciar_usart()loque
enelXC8seras:

1 ///////////////////////////////////////////////
2 //inicializacindelmduloUSARTPICmodoasncrono
3 //enunafuncin,a8bits,a9600baudios
4 /////////////////////////////////////////////////////
5 voidiniciar_usart(){
6 TRISCbits.TRISC7=1;//pinRXcomounaentradadigital
7 TRISCbits.TRISC6=0;//pinRXcomounasalidadigital
8 TXSTA=0b00100110;//8bits,transmisinhabilitada,asncrono,altavelocidad
9 RCSTA=0b10010000;//habilitadoelUSARTPIC,recepcin8bits,habilitada,asncrono
10 SPBRG=25;//paraunavelocidadde9600baudiosconunosciladorde4Mhz
11 }

ParalarecepcindedatosconelmduloUSARTPIC.

Losdatosqueserecibensondetipocaracter,cuandosevarecibirundatoatravsdelpinRXsetendrqueesperaraqueelbit5delregistroPIR1se
pongaa1,estebitindicaquesehacompletadolarecepcindeldato,eldatorecibidoesdetipocaractercharyestarenelregistroRCREG,cuandose
leeeldatoguardndoloenalgunavariabledetipocaractercharestebitsepondrautomticamentea0,larecepcindelosdatosenelXC8seharen
unafuncinalaqueselepuedellamarcomosedesee,enestecasoselellamarrecibe_caracter_usart().

1 ///////////////////////////////////////////////
2 //recepcindedatosdelmduloUSARTPICmodoasncrono
3 ////////////////////////////////////////////////////////////
4 unsignedcharrecibe_caracter_usart(){
5 if(PIR1bits.RCIF==1){//sielbit5delregistroPIR1sehapuestoa1
6 returnRCREG;//devuelveeldatoalmacenadoenelregistroRCREG
7 }
8 else//sino
9 return;//retornasinhacernada
10 }

ParalatransmisindedatosconelmduloUSARTPIC.

Losdatosquesetransmitensondetipocaracter,cuandosevatransmitirundatoatravsdelpinTXsetendrqueesperaraqueelregistroTSRdonde
seponenlosdatosquesevanaenviarestvaco,estosehaceesperandoaqueelbit1TRMTdelregistroTXSTAsepongaa1,estebitindicaqueseha
completadolatransmisindeundatoanteriormientraseldatoqueestenesperasecolocaenelregistroTXREG,cuandosevaceelregistroTSRse
podrenviarelotrodatoqueestesperandoenelregistroTXREGpasndoloenformaautomticaalregistroTSR,eldatotransmitidoesdetipocaracter
char,cuandosepasaeldatodelregistroTXREGalregistroTSRestebitsepondrautomticamentea0,latransmisindelosdatosenelXC8seharen
unafuncinalaqueselepuedellamarcomosedesee,enestecasoselellamarenvia_caracter_usart().

1 ///////////////////////////////////////////////
2 //transmisindedatosdelmduloUSARTPICmodoasncrono
3 ///////////////////////////////////////////////
4 voidenvia_caracter_usart(unsignedcharcaracter){
5 while(TXSTAbits.TRMT==0);//mientraselregistroTSRestllenoespera
6 TXREG=caracter;//cuandoelelregistroTSRestvacioseenviaelcaracter
7 }

Para la transmisin de cadenas de caracteres con el mdulo USART PICse puede utilizar la funcin vista anteriormente para la transmisin de
caracteres para enviar cadenas de caracteres, para ello se crear otra funcin que se puede llamar como se desee pero en este caso se le llamar
envia_cadena_usart().

1 ///////////////////////////////////////////////
2 //transmisindecadenasdecaracteresconelmduloUSARTPICmodoasncrono
3 ///////////////////////////////////////////////
4 voidenvia_cadena_usart(char*cadena){//cadenadecaracteresdetipochar
5 while(*cadena!=0x00){//mientraselltimovalordelacadenaseadiferente
6 //deelcaracternulo
7 envia_caracter_usart(*cadena);//transmiteloscaracteresdecadena
8 cadena++;//incrementalaubicacindeloscaracteresencadena
9 //paraenviarelsiguientecaracterdecadena
10 }
11 }

ARCHIVODECABECERAPARAELUSODELMDULOUSARTPICENELXC8
SepuedeagrupartodaslafuncionesvistasanteriormenteparaelusodelmduloUSARTPICenelXC8enformaasncrona,8bitsya9600baudiosenun
archivodecabeceraalqueselellamarenestecasousart.h,aunqueselepuededarelnombrequesedesee,seharusodeestearchivodecabeceraen
losejemplosqueserealizarnconelPIC16F877A,siseutilizaotropicuotravelocidaddecomunicacinesfcilhacerloscambiosquesenecesitendentro
delarchivousart.h,severalgnejemplo.

Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto
Puedeobtenerms
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 6/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES
1 ////////////////////////////////////////////////////////////////////
2 ////////////////////////////////////////////////////////////////////
3 //ArchivodecabeceraparaelusodelmduloUSARTPICconelXC8///
4 ///////////////////////////////////////////////////////////////////
5
6 #ifndefUSART_H
7 #defineUSART_H
8
9 voidiniciar_usart();//funcinparainiciarelUSARTPICasncron,8bits,9600baudios
10 unsignedcharrecibe_caracter_usart();//funcinparalarecepcindecaracteres
11 voidenvia_caracter_usart(unsignedchar);//funcinparalatransmisindecaracteres
12 voidenvia_cadena_usart(char*);//funcinparalatransmisindecadenasdecaracteres
13
14 ///////////////////////////////////////////////
15 //inicializacindelmduloUSARTPICmodoasncrono
16 //enunafuncin,a8bits,a9600baudios
17 /////////////////////////////////////////////////////
18 voidiniciar_usart(){
19 TRISCbits.TRISC7=1;//pinRXcomounaentradadigital
20 TRISCbits.TRISC6=0;//pinTXcomounasalidadigital
21 TXSTA=0b00100110;//8bits,transmisinhabilitada,asncrono,altavelocidad
22 RCSTA=0b10010000;//habilitadoelUSARTPIC,recepcin8bits,habilitada,asncrono
23 SPBRG=25;//paraunavelocidadde9600baudiosconunosciladorde4Mhz
24 }
25
26 ///////////////////////////////////////////////
27 //recepcindedatosdelmduloUSARTPICmodoasncrono
28 ////////////////////////////////////////////////////////////
29 unsignedcharrecibe_caracter_usart(){
30 if(PIR1bits.RCIF==1){//sielbit5delregistroPIR1sehapuestoa1
31 returnRCREG;//devuelveeldatoalmacenadoenelregistroRCREG
32 }
33 else//sino
34 return;//retornasinhacernada
35 }
36
37 ///////////////////////////////////////////////
38 //transmisindedatosdelmduloUSARTPICmodoasncrono
39 ///////////////////////////////////////////////
40 voidenvia_caracter_usart(unsignedcharcaracter){
41 while(TXSTAbits.TRMT==0);//mientraselregistroTSRestllenoespera
42 TXREG=caracter;//cuandoelelregistroTSRestvacioseenviaelcaracter
43 }
44
45
46 ///////////////////////////////////////////////
47 //transmisindecadenasdecaracteresconelmduloUSARTPICmodoasncrono
48 ///////////////////////////////////////////////
49 voidenvia_cadena_usart(char*cadena){//cadenadecaracteresdetipochar
50 while(*cadena!=0x00){//mientraselltimovalordelacadenaseadiferente
51 //deelcaracternulo
52 envia_caracter_usart(*cadena);//transmiteloscaracteresdecadena
53 cadena++;//incrementalaubicacindeloscaracteresencadena
54 //paraenviarelsiguientecaracterdecadena
55 }
56 }
57
58 #endif /*USART_H*/

USARTPICPROGRAMACINEjemplosenelXC8
ParaverlosejemplosdelmanejodelmduloUSARTPICvisitaresteenlace.

SihepodidoayudarteconelusodelmduloUSARTPIC,comparteesteenlaceparapoderayudaramuchaspersonasmas.MuchasGracias.

Atte:MrElberni.

Compartir: 9 0 0 1

Buscar

Enlacesdelsitio
INICIO

Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto
Puedeobtenerms
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 7/8
7/5/2017 USARTPICComunicacinserialMICROCONTROLADORES

Breakdancing

Crece - tu
Negocio
con
YouTube

MICROCONTROLADORESPIC
Introduccin
BitsdeconfiguracinPIC
EntradassalidasdigitalesPIC
TemporizadorcontadorPIC
Timer0PIC
Timer1PIC
Timer2PIC

InterrupcionesconelPIC
InterrupcinExternaPIC
Interrupcintimer0PIC
InterrupcinporcambiodeestadoenelpuertoBPIC
InterrupcinADCPIC
InterrupcinUSARTPIC

ConversoranalgicodigitalPIC
MduloCCP
CCPPICmodocaptura
CCPPICmodocomparacin
CCPPICmodoPWMmodulacinporanchodepulso
USARTPICComunicacinserial
USARTPICejemplos

I2CPICcomunicacinserial
I2CPICejemplos

EEPROMPICMemoriainterna
MICROCONTROLADORESAVR
Introduccin
EntradassalidasdigitalesconelAVR
TemporizadorAVR
Timer0AVR
Timer1AVR
Cumpliendoconlaleydecookiesdelalegislacinespaola,seinformaqueestesitioutilizacookiesdegoogleparamejorarlaexperienciadenavegacin,yofrecer
Timer2AVR
contenidosypublicidaddeinters.Alcontinuarconlanavegacinentendemosqueseaceptanuestrapolticadecookies. Acepto
Puedeobtenerms
informacin,obienconocercmocambiarlaconfiguracin,enesteenlace.
PWMAVRmodulacinporanchodepulso

http://microcontroladoresmrelberni.com/usartpiccomunicacionserial/ 8/8