reporte eusart pic 16ff887
TRANSCRIPT
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 1/15
Instituto Politécnico NacionalUnidad Profesional Interdisciplinaria en Ingeniería y
Tecnologías AvanzadasIngeniería Mecatrónica – MICROPROCESADORES,
MICROCONTROLADORES E INTERA!
Pro"esor# LEON PONCE MOISES$ru%o# M!"
ec&a# $ de %&nio de '($)
ProyectoM*d&lo USA+T
,IPOLITO MEN-E. E+OS E/+EN
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 2/15
Objetivos
• Enviar datos mediante el módulo EUSART del PIC16F887
• Comunicar el PIC16F887 y AT!A" mediante el #uerto serial y el modulo
del FT$I %&%
• 'ra(icar y mostrar los datos reco#ilados #or el PIC16F887 en una inter(a)*r+(ica,
• Enviar un -yte de datos de la inter(a) *r+(ica #ara controlar 8 leds con el
PIC16F887,
Materiales
1, PIC16F887%, . #otenciómetros&, 8 leds., Interru#tor $IP /8 S0itc23, 8 resistencias de 14 5om6, 8 resistencias de %74 om7, FT$I %&% /FT$I "asic28, atla-
PIC16f887
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 3/15
Módulo EUSART
El microcontrolador PIC16F887 #osee un módulo USART usando la norma RS
%&%,
El EUSAR /Enanced Universal Syncronous Asyncronous Receiver Transmotter2 #uede ser con(i*urado como un Sistema (ull du#le o -idireccional
as9ncrono ada#t+ndose a multitud de #eri(:ricos y dis#ositivos ;ue trans(ieren
in(ormación de esta (orma tales como el monitor o el com#utador,
EUSART #uede con(i*urarse de tres (ormas<
• As9ncrona /Full d=#le -idireccional2,
• S9ncronaaestro />al( d=#le unidireccional2,
• S9ncronaEsclavo />al( d=#le unidereccional2,
Modo Asíncrono
!as trans(erencias de in(ormación de reali)an so-re dos l9neas T? /Transmisión2 y
R? /Rece#ción2 saliendo y entrando los -its #or dicas l9neas al ritmo de una
(recuencia controlada internamente #or el USART, !as l9neas de comunicación son
los dos -its de m+s #eso del Puerto C< RC6@T?@C y RC7@R?@$T donde el -it
SPEB /RCSTA7D2 y los -its TRISC7<6D tienen ;ue activarse mediante un 1 con
el (in de activar dicos #ines,
Generador de BAUDIOS
En el #rotocolo RS%&% la (recuencia de -audios /-its #or se*undo2 a la ;ue se
reali)a la trans(erencia se de-e e(ectuar a un valor normali)ado< %.44 .844 6441%44 etc, Para *enerar esta (recuencia de "audios "R'> y "R'16 cuyo valor
controlado #or el contenido *ra-ado en el re*istro SP"R'> y SP"R',
FrecuenciaenBaudios= F
OSC
64∗( X +1 )
? es el valor car*ado en el re*istro SP"R'>< SP"R'
$es#eando ?<
X = F OSC
Frec .Baudios∗64−1
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 4/15
Para el PIC16F887 (uncionando con una (recuencia de .>) en modo as9ncrono
y alta velocidad con una (recuencia de 644 -audios
"R'>G1 y "R'16G4
X =4000000
9600∗16
−1 X =25
Si se car*a el re*istro SP"R' con %3 la (recuencia real de tra-ao ser+<
Frecuencia=4000000
16∗(25+1)=9615baudios
El error se *enera car*ando en el SP"R' ser+<
Error=9615−9600
9600∗100=0.16
Transmisor Asíncrono
Im#lementación de una transmisión en el módulo EUSART<
1, Con(i*urar las l9neas RCH@T?@C como salida y RC@@R?@$T como entrada,%, Poner SBCG4 y SPEBG1 #ara activar el EUSART en modo as9ncrono,&, T?G4 #ara tra-aar con 8 -its,., Se car*a el valor ? adecuado en el re*istro SP"R' #ara #roducir la
(recuencia de tra-ao deseada, >ay ;ue controlar el -it "R'> y "R'16,3, Activar la transmisión con T?EBG1, El -it T?IF tendr+ valor 1 cuando
T?RE' se encuentra vac9o,6, Car*ar en T?RE' el dato a transmitir, Comien)a la transmicion,
Receptor Asíncrono
1, Se car*a con el valor ? al re*istro SP"R' #ara tra-aar con la (recuencia
deseada controlando adem+s el valor de "R'> y "R'16,%, Se a-ilita el USART en modo as9ncrono con SPEB G 1 y SBC G 4,&, Poner R? G 1 #ara #ermitir la rece#ción del -it -its,
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 5/15
., Se a-ilita la rece#ción #oniendo CREB G 1,3, Al com#letarse la rece#ción RCIF se #ondr+ a 1 y se #roduce una
interru#ción si se a-9a #ermitido6, Se lee el re*istro RCSTA y se averi*ua si se a #roducido al*=n error,7, !eer los 8 -its del re*istro RCRE' #ara determinar si el dis#ositivo a sido
direccionado,8, Si se a #roducido al*=n error #oner CREB G 4,
Coversor a!lo"o di"ital A#$ del PIC16%887
!as seJales analó*icas a-undan en nuestro entorno, Para su estudio y an+lisis
detallado re;uiere de su #rocesamiento en el com#utador #or tanto se necesitan
dis#ositivos ca#aces de trans(ormar o traducir dicas seJales en di*itales #ara
;ue #uedan ser enviadas
Conversor A@$ de 14 -its de resolución y 1. canales,
Resolución
+¿−Vre f
−¿
1024
Vref ¿
Resolución=¿
Si Kre(L es 3 K$C y Kre( esta re(erenciado a tierra
Resolución= Vref 1024
Resolución=4.882mV
bit
Registros del módulo A/C
1, A$RES>< Parte alta del resultado de la conversión,%, A$RES!< Parte -aa del resultado de la conversión,&, A$CMB4< Re*istro de Control 4,
., A$CMB1< Re*istro de Control 1,3, ABSE! y ABSE!>< con(i*uración de canales An+lo*os y E@S di*itales,
Coniguración del módulo A/D
• Con(i*urar los #ines ;ue actuaran como entradas analó*icas las ;ue
tra-aan como E@S di*itales y las usadas #ara la tensión de re(erencia
/A$CMB12,
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 6/15
• Seleccionar el relo de la conversión /A$CMB42,
• Seleccionar el canal de entrada A@$ /A$CMB42,
•
Activar el módulo A@$/A$CMB42,
Utili)ando los -its C>S& C>S% C>S1 y C>S4 se selecciona el #in donde se
llevar+ aca-o la lectura analó*ica
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 7/15
Inicio de la con!ersión " lectura
• Colocar en 1 el -it 'M@$MBE /A$CMB42,
• Por la e#loración del -it 'M@$MBE ;ue al com#letarse la conversión se
convierte a 4,
• !eer el resultado en los 14 -its validos de A$RES>< A$RES!
$e esta manera a una entrada analó*ica de 4 K le corres#onde un valor di*ital de
44 4444 4444 y #ara 3 K un valor de 11 1111 1111, !a tensión de re(erencia
determina los limites m+imo y m9nimo de la tensión analó*ica ;ue se #uede
convertir
%T$I &'&
S#ar5Fun tiene una l9nea de #roductos de US" a serial UART diseJados #ara
#ermitir al usuario comunicar con serial UART a trav:s de un #uerto US" com=n,
Actualmente es m+s di(9cil encontrar un ordenador con #uerto serial UART y muy
com=n encontrar dis#ositivos seriales,
RS%&% es un est+ndar com#leto no solamente incluyendo caracter9sticas
el:ctricas sino caracter9sticas (9sicas y mec+nicas como una coneión de
ard0are #inouts nom-res de seJales, Una inter(a) #unto a #unto RS%&% es
ca#a) de lo*rar a distancias moderadas velocidades de asta %4-#s, Aun;ue no
se es#eci(i;ue en el est+ndar velocidades m+s altas de 113,%n#s son #osi-les
en distancias relativamente cortas
Co(ui)a)ió Serial MAT*A+
!a comunicación en la com#utadora se llevó a ca-o mediante AT!A" usando los
comandos asociados al control del #uerto serial
delete(instrfind({'port'},{'COM7'}));puerto=serial('COM7');puerto.BaudRate=96;fopen(puerto);!alor"#C=fread(puerto,$,'uint%')
!a inter(a) *r+(ica se reali)ó me el 'UI$E Nuic5 Start
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 8/15
El códi*o si*uiente controla el #uerto serial y lo *ra(ica utili)ando la (uncióndra0no0 #ara di-uar la *r+(ica en tiem#o real
& e*utes +ust efore -uiro/e*to is 0ade !isile.fun*tion -uiro/e*to1Openin23*n(4O+e*t, e!entdata, 4andles, !arar2in)4andles.output = 4O+e*t;
Se esta-lece el estado inicial de los -otones #ara controlar los ledsset(4andles.radioutton5,'alue',5);set(4andles.radioutton,'alue',5);set(4andles.radioutton8,'alue',5);set(4andles.radioutton,'alue',5);set(4andles.radioutton$,'alue',5);
set(4andles.radioutton6,'alue',5);set(4andles.radioutton7,'alue',5);set(4andles.radioutton%,'alue',5);set(4andles.radioutton9,'alue',5);
Se -orran los datos de el CM7 antes de iniciarlodelete(instrfind({'port'},{'COM7'}));
Se direccionan los datos del CM7 a un o-eto nom-rado #uerto y se con(i*ura lavelocidad de transmisiónpuerto=serial('COM7');puerto.BaudRate=96;
Se inicia el #uertofopen(puerto);!olta+e=;aes(4andles.aes5);
Se crean . vectores con la con(i*uración de las l9neas ;ue se *ra(icaran y seesta-lecen otros #ar+metros de la *ra(ical5=line(nan,nan,'Color','0a2enta',':ineidt4',5);l=line(nan,nan,'Color','r',':ineidt4',5);l8=line(nan,nan,'Color','',':ineidt4',5);l=line(nan,nan,'Color','2',':ineidt4',5);title('-R"3<C" O:"> "#C?R<":');lael('@u0ero de Muestras');/lael('olta+e ()');2rid on;
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 9/15
2rid 0inor4old on;
Se esta-lece la (recuencia de muestreo de la *r+(ica y la cantidad de datos3s=;@=;
Se crean . vectores llenos de 4 #ara el ciclo ;ue recorrer+ los datos/=Aeros(@,5);
/8=Aeros(@,5);/=Aeros(@,5);
Kector de tiem#o y limetes de la *ra(icat=linspa*e(,(@5),@);/li0(.5 $.5); &:i0ites del e+e /li0( @); &:i0ites del e+e
Ciclo #ermanenteti* D4ile 5
Se lee el estado de los -otones ;ue controlaran los leds y se convierten en unvalor decimal *uard+ndolo en la varia-le Odato =2et(4andles.radioutton5,'alue'); 5=2et(4andles.radioutton,'alue'); =2et(4andles.radioutton8,'alue'); 8=2et(4andles.radioutton,'alue'); =2et(4andles.radioutton$,'alue'); $=2et(4andles.radioutton6,'alue'); 6=2et(4andles.radioutton7,'alue'); 7=2et(4andles.radioutton%,'alue'); %=2et(4andles.radioutton9,'alue'); dato=E(F5)E(F)E(%F8)E(56F)E(8F$)E(6F6)E(5%F7);
Se escri-e el valor de Odato en el #uerto a-ierto fDrite(puerto,dato,'uint%');
Se leen los valores reci-idos #or el #ic y se crea un vector de 3 datos cada dato de1 -yte !alor"#C=fread(puerto,$,'uint%') &o0a el !alor re*iido por el puerto / lo2uarda en la !ariale
Se *uarda cada valor del vector en di(erentes varia-les y se ace la conversión avoltae !olta+e=!alor"#C(5)F$G$$; &Ha*e la *on!ersiIn a !olta+e !olta+e=(!alor"#C()F$G$$); &Ha*e la *on!ersiIn a !olta+e !olta+e8=!alor"#C(8)F$G$$; !olta+e=!alor"#C()F$G$$; !alorsD=!alor"#C($); !alorin=de*in(!alor"#C($),%);
Se im#rimen los datos en di(erentes Qedit tet set(4andles.edit8,'?trin2',!olta+e);
set(4andles.edit,'?trin2',!olta+e); set(4andles.edit$,'?trin2',!olta+e8); set(4andles.edit6,'?trin2',!olta+e); set(4andles.edit5,'?trin2',!alorin); set(4andles.edit,'?trin2',!alorsD); set(4andles.edit%,'?trin2',dato);
Se *uarda cada dato reci-ido en su vector ;ue lo *ra(icara recorriendo los datosen una #osición y *uardando el dato en el =ltimo lu*ar y se *ra(ica utili)andodra0no0
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 10/15
if to*J(5G3s) ti*; /(5Kend5)=/(Kend); /(end)=!olta+e; /(5Kend5)=/(Kend); /(end)=!olta+e; /8(5Kend5)=/8(Kend); /8(end)=!olta+e8; /(5Kend5)=/(Kend); /(end)=!olta+e; set(l5,'L#ata',t,'#ata',/) set(l,'L#ata',t,'#ata',/) set(l8,'L#ata',t,'#ata',/8) set(l,'L#ata',t,'#ata',/) draDnoD endend& Npdate 4andles stru*ture
Se cierra el #uerto y se -orra el o-eto creadof*lose(puerto);delete(puerto);2uidata(4O+e*t, 4andles);
I(,le(eta)ió de la )o(ui)a)ió UART )o el
PIC16%887
$eclaración de varia-les a usar int advalue G 4int advalue1 G 4int advalue% G 4int advalue& G 4int !E$C G 4int KS G 4
int iG1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@main/2
Con(i*uración de #uertosPMRTA G 4TRISA G 4FF@@EBTRA$APMRT" G 444TRIS" G 444@@SA!I$APMRTC G 444TRISC G 4FF@@PIB RC7 EBTRA$A RC4DRC6 SA!I$ATRIS$ G 4FF@@EBTRA$A
Con(i*uración del #uerto A como canal analó*ico y el " como canal di*ital
ABSE! G1 A$CMB1 G 4-44114444 @@PUERTM A ABA!M'ICMPMRTA G 4
ABSE!> G 4 @@PUERTM " $I'ITA!C1CMB4 G 4 @@ Initiali)e Com#arator 1 o(( C%CMB4 G 4 @@ Initiali)e Com#arator % o((
Con(i*uración del módulo EUSART"R'>G1"R'16G4SBCG4
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 11/15
SPEBG1
Con(i*uración de la rece#ción y envió de datos de 8 -itsT?G4R?G4
Se a-ilita la transmisiónT?EBG1
Se car*a en SP"R' el valor ;ue determinara la velocidad de la comunicación /Eneste caso un %3 decimal o 1 eadecimal #ara 644 "audio tomando en cuentala (recuencia de PIC de . )2SP"R'G41
Ciclo #ermanente0ile/1GG12
Se inicia la rece#ción con CREBRCIF G4CREBG1
0ile /RCIFGG42 @@0ait (or A@$ to (inisV
Se car*a el valor de RCRE' cuando RCIF se #one en 1 indicando ;ue el re*istrotermino la rece#ción y lue*o se mueve al #uerto "!E$CGRCRE'PMRT"G!E$C
Si MERR se a #uesto en 1 si*ni(ica ;ue a ocurrido un error en la rece#cion #or lo cual se detiene la rece#ción con(i*urando CREB en 4 #ara des#u:s volver aactivarlai( /MERRGG12CREBG4V
Con la varia-le Qi #reviamente con(i*urada con un 1 se lee el dato de AB4
des#u:s de la conversión del A@$ y se manda, Al mandar el dato se con(i*ura Qicomo % #ara leer la conversión del si*uiente #ini(/iGG12iG%
A$CMB4 G 4-44444441'M$MBE G 1 @@Start A@$ #rocess
0ile /'M$MBE GG12 @@0ait (or A@$ to (inisV
advalue G A$RES>T?RE'Gadvalue
A$RES>G4 A$RES!G4#ause/142V
Con la varia-le Qi #reviamente con(i*urada con un % se lee el dato de AB1des#u:s de la conversión del A@$ y se manda, Al mandar el dato se con(i*ura Qicomo & #ara leer la conversión del si*uiente #ini(/iGG%2iG&
A$CMB4 G 4-44444141'M$MBE G 1 @@Start A@$ #rocess
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 12/15
0ile /'M$MBE GG12 @@0ait (or A@$ to (inisV
advalue1 G A$RES>T?RE'Gadvalue1
A$RES>G4 A$RES!G4
#ause/142V
Con la varia-le Qi #reviamente con(i*urada con un & se lee el dato de AB.des#u:s de la conversión del A@$ y se manda, Al mandar el dato se con(i*ura Qicomo . #ara leer la conversión del si*uiente #ini(/iGG&2iG.
A$CMB4 G 4-44414441'M$MBE G 1 @@Start A@$ #rocess
0ile /'M$MBE GG12 @@0ait (or A@$ to (inisV
advalue% G A$RES>
T?RE'Gadvalue% A$RES>G4 A$RES!G4#ause/142V
Con la varia-le Qi #reviamente con(i*urada con un . se lee el dato de AB3des#u:s de la conversión del A@$ y se manda, Al mandar el dato se con(i*ura Qicomo 3 #ara leer la conversión del si*uiente #ini(/iGG.2iG3
A$CMB4 G 4-44414141'M$MBE G 1 @@Start A@$ #rocess
0ile /'M$MBE GG12 @@0ait (or A@$ to (inisV
advalue& G A$RES>T?RE'Gadvalue&
A$RES>G4 A$RES!G4#ause/142V
Con la varia-le Qi #reviamente con(i*urada con un 3 se lee el dato del #uerto $ se*uarda en la varia-le KS y lue*o se env9ai(/iGG32iG1
KSGPMRT$T?RE'GKS#ause/142V#ause/342V @@End 0ileV@@End main
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 13/15
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 14/15
Coe-ioes
8/15/2019 Reporte EUSART PIC 16FF887
http://slidepdf.com/reader/full/reporte-eusart-pic-16ff887 15/15
%u)ioa(ieto
Se#ales muestreadas en MAT$AB " generadas al !ariar los
potenciómetros conectados al %IC
$eds prendidos al reci&ir el dato del ordenador