Universidad Autnoma del Carmen Facultad de Ingeniera Microprocesadores PIC16F877 !eportes de pr"cticas de la#oratorio$ Pro%esor& Ing$ 'uan Agustn Pedra(a )rtega Cd$ del Carmen* Campec+e 1 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Objetivo General Aprender a utilizar el microcontrolador PIC16F877 de Microchip el cual pertenece a la familia de los microcontroladores de 8 bits (bus de datos) el cual se le denomina PIC el modelo 16F877 posee !arias caracter"sticas #ue hacen a este microcontrolador un dispositi!o mu !ers$til% eficiente pr$ctico #ue tienen caracter"sticas como& Ar#uitectura 'ar!ard (ecnolo)"a *I+C (ecnolo)"a CM,+ Adem$s% aprenderemos el mane-o confi)uraci.n de los puertos paralelos de entrada/salida de dicho microcontrolador el cual posee 0 puertos denominados P,*(A% P,*(1% P,*(C% P,*(2 3 P,*(45 6n microcontrolador es un microprocesador optimizado para ser utilizado para controlar e#uipos electr.nicos5 +e denomina microcontrolador a un dispositi!o pro)ramable capaz de realizar diferentes acti!idades #ue re#uieran del procesamiento de datos di)itales del control comunicaci.n di)ital de diferentes dispositi!os5 2 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Prctica N 1 4n esta pr$ctica utilizamos el PORTA del microcontrolador el cual posee 6 l"neas bidireccionales tiene 7 re)istros asociados& Registro PORTA (05H): *e)istro del estado del Puerto A% cada uno de los 6 bits menos si)nificati!os (*A0% *A8% *A7% *A9% *A1 *A:) de este re)istro est$n asociados a la l"nea f"sica correspondiente del puerto5 3 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Registro TR!A ("5H): Cada bit de este re)istro confi)ura la direcci.n en #ue flue la informaci.n de la patita correspondiente del puerto A% as"% para ;<:%1%=5505
#it $ %e TR!A & 1 confi)ura la patita *A; del puerto A como 4ntrada5 #it $ %e TR!A & 0 confi)ura la patita *A; del puerto A como +alida5 Registro A'(ON1 ()*H): >as patitas *A:% *A1% *A9% *A7 3 *A0 est$n multiple?adas con las entradas anal.)icas A@:%A@1% A@9% A@7% A@8% de manera #ue antes de utilizarlas debemos confi)urar si ser$n usadas como entradas anal.)icas o como entradas / salidas di)itales5 Para seleccionar la se)unda opci.n (entradas / salidas di)itales) se debe colocar en la mitad menos si)nificati!a de este re)istro un :11: 9 % es decir% un :6h5 4st$ pr$ctica nos referimos a las salidas di)itales% en el cual se confi)uran las patitas *A:%=5% *A7 del puerto A para mane-ar el encendido apa)ado de 8 >42s o diodos luminosos conectados a las patitas con las respecti!as resistencias limitadoras de corriente5 +aterial Cantidad 2escripci.n Precio 6nitario Costo (otal 1 PIC16F877 A 765:: A 765:: 8 >42s A95:: A85:: 8 *esistencias de 77:B A50: A95:: 9 Capacitares de 99pF A95:: A85:: 1 Cristal de 8M'z A65:: A65:: (otal AC65:: 4 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Progra,a en +P-A# include DP16F8775I@CD d e#u :?8: n e#u :?1A m e#u :?FF ret1 e#u :?9: ret9 e#u :?91 ret7 e#u :?99 or) :?::: clrf +(A(6+ clrf P,*(A bsf +(A(6+%*P: mo!lE :?:6 mo!Ef A2C,@1 mo!lE :?:: mo!Ef (*I+A bcf +(A(6+% *P: clo clrf P,*(A call del bsf P,*(A% : call del bsf P,*(A% 1 call del bsf P,*(A% 9 call del bsf P,*(A% 7 call del )oto clo Fretardo de un se)undo del mo!lE d mo!Ef ret7 cic call pau decfsz ret7%1 )oto cic return Frutina de tiempo pau mo!lE n mo!Ef ret1 re1 mo!lE m mo!Ef ret9 re9 decfsz ret9%1 5 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 )oto re9 decfsz ret1%1 )oto re1 return end *oto 1 *oto . 6 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto / *oto 0 7 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Prctica N . 4n esta pr$ctica utilizamos el P,*(1 del microcontrolador PIC16F877% el cual es un puerto di)ital de 8 bits% todas sus patitas son bidireccionales traba-a en forma similar al puerto A5 (iene tres re)istros asociados& 4l re)istro de datos P,*(1% el re)istro de direcci.n de los datos (*I+1 el re)istro ,P(I,@G*4H5 Registro PORT# (01H2 101H): >os ocho bits #ue contiene refle-an directamente el estado de las ocho patitas del puerto 1 *1:% *11% *19% *17% *18% *10% *16% *175 Registro TR!# ("1H2 1"1H): 4n forma similar a (*I+A% al poner un : en un bit de (*I+1 se confi)ura la patita *1 correspondiente como salida al poner un 1 enun bit de (*I+1 se confi)ura la patita *1 correspondiente como entrada5 Registro OPTON3R4G ("1H2 1"1H): 4l bit 7 de este re)istro% denominado *1P6 es usado para conectar/desconectar una resistencia IpullJupK conectada a cada patita *15 Poniendo un : en este bit todas las resistencias se conectan5 Para desconectar las resistencias IpullJupK se debe de poner ese bit en 1% tambiLn se desconectan autom$ticamente cuando la patita correspondiente es confi)urada como salida5 6n *eset desconecta todas las resistencias5 8 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877
>as patitas *18% *10% *16 *17 del puerto 1 tienen la capacidad de )enerar una solicitud de interrupci.n a la CP6 cuando est$n confi)uradas como entradas5 4st$ pr$ctica consiste en realizar un encendido secuencial de 8 >42s conectados a *1:%=5% *17% es decir% se enciende *1: durante 1 se)undo% lue)o *11 as" sucesi!amente hasta lle)ar a *17 para !ol!er a comenzar el ciclo con *1:5 +aterial Cantidad 2escripci.n Precio 6nitario Costo (otal 1 PIC16F877 A 765:: A 765:: 8 >42s A95:: A165:: 8 *esistencias de 7C:B A50: A85:: 9 Capacitares de 99pF A95:: A85:: 1 Cristal de 8M'z A65:: A65:: (otal A1:65:: Progra,a en +P-A# I@C>624 Dp16f8775incD n e#u :?1A m e#u :?FF d e#u :?89 ret1 e#u :?9: ret9 e#u :?91 ret7 e#u :?99 or) :?::: clrf +(A(6+ clrf P,*(1 bsf +(A(6+% *P: clrf (*I+1 clrf +(A(6+ clrf P,*(1 bsf P,*(1%: cls call del 9 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 rlf P,*(1%1 )oto cls Fretardo de un se)undo del mo!lE d mo!Ef ret7 cic call pau decfsz ret7%1 )oto cic return Frutina de tiempo pau mo!lE n mo!Ef ret1 re1 mo!lE m mo!Ef ret9 re9 decfsz ret9%1 )oto re9 decfsz ret1%1 )oto re1 return end *oto 1 10 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto . *oto / 11 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto 0 12 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Prctica N / 4n est$ pr$ctica !ol!emos a utilizar el P,*(A del microcontrolador PIC16F877%cual como se menciono en la pr$ctica @M 1 mencionamos posee 6 l"neas bidireccionales 7 re)istros asociado& *e)istro P,*(A (:0') *e)istro (*I+A (80') *e)istro A24C,@ (CF') 4n est$ pr$ctica nos referimos a las entradas di)itales% en el se confi)ura la patita *A0 del puerto A como salida conectada a un >42% el cual se controla de acuerdo al estado de la patita *A: *A1 confi)uradas como entradas5 +aterial Cantidad 2escripci.n Precio 6nitario Costo (otal 1 PIC16F877 A 765:: A 765:: 1 >42s A95:: A95:: 7 *esistencias de 1NB A:50: A150: 1 *esistencia de 7C:B A:50: A:50: 9 +Eitches A75:: 65:: 9 Capacitares de 99pF A95:: A85:: 1 Cristal de 8M'z A65:: A65:: (otal AC65:: 13 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Progra,a +P-A# I@C>624 DP16F8775I@CD - e#u :?1A r e#u :?FF ret1 e#u :?9: ret9 e#u :?91 ,*H :O:::: C>*F +(A(6+ C>*F P,*(A 1+F +(A(6+% *P: M,P>Q :O:6 Fentrada salida M,PQF A2C,@1 F di)ital M,P>Q :?1F M,PQF (*I+A F >44 >A+ PA(I(A+ 1CF +(A(6+% *P: C': 1(F++ P,*(A%: H,(, C'1 1CF P,*(A%0 Fapa)a C'1 1(F++ P,*(A%1 H,(, C': 1+F P,*(A%0 Fenciende CA>> 24> H,(, C': F *6(I@A 24 9:M+4H 24> M,P>Q - M,PQF ret1 re1 M,P>Q r M,PQF ret9 re9 24CF+R ret9%1 H,(, re9 24CF+R ret1%1 H,(, re1 *4(6*@ 4@2 14 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto 1 *oto . *oto / 15 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto 0 16 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Prctica N 0 4n est$ pr$ctica utilizamos el P,*(1 el P,*(C del microcontrolador PIC16F877% el cual el P,*(1 es un puerto di)ital de 8 bits% donde todas sus patitas son bidireccionales traba-a en forma similar #ue el P,*(A5 4ste puerto tiene tres re)istros asociados& *e)istro P,*(1 (:6'% 1:6') *e)istro (*I+1 (86'% 186') *e)istro ,P(I,@G*4H (81'% 181') 4l P,*(C consta de 8 l"neas bidireccionales traba-a de forma similar a los puertos 1 C% este puerto tiene dos re)istros asociados& Registro PORT( (05H): 4s el re)istro de datos cuos 8 bits *C7% *C6%=% *C: refle-an directamente el !alor l.)ico de las l"neas f"sicas del puerto C5 Registro TR!( ("5H): *e)istro de control de direcci.n de las l"neas del puerto C5 Poniendo un 1 en un bit del re)istro (*I+C se confi)ura la l"nea correspondiente como entrada poniendo un : se confi)ura la l"nea correspondiente como salida5 >as l"neas del P,*(C se encuentra multiple?adas con !arias l"neas controladas por otros perifLricos% cuando se habilita la l"neas del perifLrico respecti!o puede ser i)norada la confi)uraci.n de (*I+C% de hecho al)unos perifLricos confi)uran la l"nea como salida mientras #ue otros la confi)uran como entrada5 Cada entrada del puerto C posee un buffer como disparador +chmitt5 17 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 4n est$ pr$ctica se realiza la simulaci.n la cone?i.n de un teclado matricial% es decir% #ue el microcontrolador acepta datos numLricos o alfanumLricos suministrados por un operador mediante un teclado5 4l teclado est$ or)anizado en forma matricial como un con-unto de sEitches en las intersecciones de !arios ren)lones columnas conductoras5 >a cone?i.n del teclado se realiza con tres l"neas de salida del puerto 1 #ue controla las columnas cuatro l"neas de salida del mismo puerto #ue reco)en la informaci.n de los ren)lones5 +e coloca un diodo de protecci.n en cada l"nea de salida del puerto 1 para e!itar #ue al acti!ar m$s de una columna a la !ez se produzca un corto circuito5 18 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Para la detecci.n asi)naci.n de c.di)o se)Sn la tecla presionada se realiza de la si)uiente manera& 'etecci6n: +e ponen en ba-o todos los ren)lones cuidando #ue haan diodos de protecci.n se leen las columnas5 +i ha una columna acti!a se limpia el rebote% si es tecla !$lida se pasa al paso 7% sino es tecla !$lida se asi)na un c.di)o de Inin)una tecla presionadaK5 (o%i7icaci6n: 4l puerto acti!a un ren)l.n a la !ez colocando un cero l.)ico en la l"nea correspondiente al ren)l.n a acti!ar5 Por cada ren)l.n acti!o se lee la informaci.n de columnas dependiendo del ren)l.n la columna acti!ada en ba-o se asi)na el c.di)o a la tecla de la intersecci.n5 (ambiLn en est$ pr$ctica se muestra el mane-o de un displa de 7 se)mentos% el cual es un displa de $nodo comSn conectado al puerto C5 Arre)lo de +e)mentos del 2ispla 19 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 4l pro)rama !isualiza d")itos numLricos he?adecimales en el displa% de acuerdo a la codificaci.n #ue se muestra en la si)uiente tabla& +aterial Cantidad 2escripci.n Precio 6nitario Costo (otal 1 PIC16F877 A 765:: A 765:: 19 +Eitches A75:: A765:: 8 *esistencias de 1NB A:50: A95:: 7 *esistencia de 77:B A:50: A750: 1 2ispla de 7 se)mentos A85:: A85:: 7 2iodos A15:: A75:: 9 Capacitares de 99pF A95:: A85:: 1 Cristal de 8M'z A65:: A65:: (otal A17850: 20 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 Progra,a +P-A# I@C>624 DP16F8775I@CD n e#u :?1A m e#u :?FF ret1 e#u :?9: ret9 e#u :?91 ,*H :?:: C>*F +(A(6+ F1an; : C>*F P,*(1 C>*F P,*(C 1+F +(A(6+%*P: F1an; 1 M,P>Q :?F: M,PQF (*I+1 F*755*8 entradas *755*: como salida C>*F (*I+C Fpuertos en salida 1CF ,P(I,@G*4H%7 1CF +(A(6+%*P: Fre)resa a 1an; : Fdetecci.n de teclas presionadas 24( C>*F P,*(1 1(F++ P,*(1%7 Flee ren)l.n 1%9%7 H,(, *41 1(F++ P,*(1%6 Flee ren)l.n 8%0%6 H,(, *41 1(F++ P,*(1%0 Flee ren)l.n 7%8%C H,(, *41 1(F++ P,*(1%8 Flee ren)l.n T%:%U H,(, *41 *41 CA>> PA6 1(F++ P,*(1%7 Flee ren)l.n 1%9%7 *4(>Q :?FF CA>> PA6 1(F++ P,*(1%6 Flee ren)l.n 8%0%6 *4(>Q :?FF CA>> PA6 1(F++ P,*(1%0 Flee ren)l.n 7%8%C *4(>Q :?FF CA>> PA6 1(F++ P,*(1%8 Flee ren)l.n T%:%U *4(>Q :?FF CA>> PA6 21 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 FCodificaci.n del teclado C,2 M,P>Q :?F7 M,PQF P,*(1 1(F++ P,*(1%7 F4s la tecla 1V CA>> *1 1(F++ P,*(1%6 F4s la tecla 8V CA>> *8 1(F++ P,*(1%0 F4s la tecla 7V CA>> *7 1(F++ P,*(1%8 F4s la tecla TV CA>> *A M,P>Q :?F1 M,PQF P,*(1 1(F++ P,*(1%7 F4s la tecla 9V CA>> *9 1(F++ P,*(1%6 F4s la tecla 0V CA>> *0 1(F++ P,*(1%0 F4s la tecla 8V CA>> *8 1(F++ P,*(1%8 F4s la tecla :V CA>> *: M,P>Q :?F2 M,PQF P,*(1 1(F++ P,*(1%7 F4s la tecla 7V CA>> *7 1(F++ P,*(1%6 F4s la tecla 6V CA>> *6 1(F++ P,*(1%0 F4s la tecla CV CA>> *C 1(F++ P,*(1%8 F4s la tecla UV CA>> *1 F*6(I@A 24 (I4MP, PA6 mo!lE n mo!Ef ret1 re1 mo!lE m mo!Ef ret9 re9 decfsz ret9%1 )oto re9 decfsz ret1%1 )oto re1 return F C,2IH, 24 >,+ @6M4*,+ *: M,P>Q :?:1 F*etorna c.di)o del W:X 22 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 M,PQF P,*(C CA>> C,2 *1 M,P>Q :?8F Fretorna c.di)o del W1 M,PQF P,*(C CA>> C,2 *9 M,P>Q :?19 Fretorna c.di)o del W9X M,PQF P,*(C CA>> C,2 *7 M,P>Q :?:6 Fretorna c.di)o del W7X M,PQF P,*(C CA>> C,2 *8 M,P>Q :O8C Fretorna c.di)o del W8X M,PQF P,*(C CA>> C,2 *0 M,P>Q :?98 Fretorna c.di)o del W0X M,PQF P,*(C CA>> C,2 *6 M,P>Q :?9: Fretorna c.di)o del W6X M,PQF P,*(C CA>> C,2 *7 M,P>Q :?:F Fretorna c.di)o del W7X M,PQF P,*(C CA>> C,2 *8 M,P>Q :?:: Fretorna c.di)o del W8X M,PQF P,*(C CA>> C,2 *C M,P>Q :?:8 Fretorna c.di)o del WCX M,PQF P,*(C CA>> C,2 *A M,P>Q :?:8 F*etorna c.di)o del WTX M,PQF P,*(C CA>> C,2 *1 M,P>Q :?71 F*etorna c.di)o del WUX M,PQF P,*(C CA>> C,2 end 23 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto 1 *oto . 24 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto / *oto 0 25 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *oto 5 26 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 PRA(T(A 5 8999999999999999999999999999999999999999999999999999999999999999999999999 list :&117"55a ;incl<%e =P11*"55a>N(= i7n%e7 3117"55a org 0?000 ? e@< 0?05 n e@< 0?77 , e@< 0?77 ret1 e@< 0?.0 ret. e@< 0?.1 ret/ e@< 0?.. cont e@< 0?.0 org 0?0000 inic #!* !TATA!2RP0 8banco 1 +OB-C 0?"0 8To%os los bits %el :<erto ( co,o sali%as +OBC* TR!( 8D el +!# co,o entra%a #(* !TATA!2RP0 8regresa al #anco 0 +OB-C 0?01 8 +OBC* PORT( 8'es:liega <n cero (-R* cont 8nicialiEa conta%or en cero tecla #T*!! PORT(25 8cFeca bot6n GOTO tecla 8!i no se Fa :resiona%o es:era (A-- r1s 8:a<sa %e .0 ,iliseg<n%os #T*!! PORT(25 8cFeca n<eva,ente el bot6n GOTO tecla 8tecla 7alsa2 es:era %e n<evo N(* cont21 8tecla vli%a2 incre,enta conta%or (A-- co%igo 8obtiene c6%igo :ara %es:legar el conta%or +OBC* PORT( 8%es:liega conta%or s<elt #T*!( PORT(25 8cFeca %e n<evo el bot6n GOTO s<elt 8si sig<e :resiona%o es:era GOTO tecla 8si Da se solt6 es:era n<eva :resi6n> co%igo: +OB-C 0?0* 8carga ,scara AN'C* cont20 8en,ascara el conta%or D lo %eja en C 27 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 A''C* P(-21 8!alta C instr<cciones a%elante R4T-C 0?01 8c6%igo %el 0 R4T-C 0?0* 8c6%igo %el 1 R4T-C 0?1. 8c6%igo %el . R4T-C 0?01 8c6%igo %el / R4T-C 0?0( 8c6%igo %el 0 R4T-C 0?.0 8c6%igo %el 5 R4T-C 0?.0 8c6%igo %el 1 R4T-C 0?0* 8c6%igo %el 5 R4T-C 0?00 8c6%igo %el " R4T-C 0?00 8c6%igo %el ) R4T-C 0?0" 8c6%igo %e la A R4T-C 0?10 8c6%igo %e la b R4T-C 0?/1 8c6%igo %e la c R4T-C 0?0. 8c6%igo %e la % R4T-C 0?/0 8c6%igo %e la e R4T-C 0?/" 8c6%igo %e la * r1s ,ovlG ? ,ovG7 ret/ re/ call r1 %ec7sE ret/21 goto re/ ret<rn 8 7inal :ri,ero 8seg<n%o r1 ,ovlG n ,ovG7 ret1 re1 ,ovlG , ,ovG7 ret. re. %ec7sE ret.21 goto re. %ec7sE ret121 goto re1 ret<rn en% 28 Universidad Autnoma del Carmen Microprocesadores Facultad de Ingeniera Microcontrolador PIC16F877 *OTO! 29