Está en la página 1de 7
en Gece Ejercicio No. 4. Ga Generacién de sefiales digitales a través del TMRO En este ejercicio vamos a utilizar las propieda- des del temporizador interno de los PIC deno- minado TMRO para generar una onda cuadra- da que se entrega por un pin del microcontro- lador y se aplica sobre un diodo LED, figura 6.26, Como fuente de seftal para el cemporiza- dor se utilizan lus Gielus de 1eloj iatcisus Ue microcontrolador, sometids a un proceso de divisién con cl médulo presealador con un fac- torde 256. Es decir, vamos a dividir la frecuen- cia interna por 256 y con coa frecuencia resul tante vamos a incrementar secuencialmente cl registro del TMRO. Boe En la figura 6.27 podem diagrama de flujo del ejercicio: Woufigura cl funciouamicuw del TMRO por gure 627 Generscn de sefates digtles mecanto! THRO medio del registro OPCION, se configura el ‘Subrutina ce pucrto A como salida y luego se entra a.un ci- ane clo que basa su funcionamiento en el resultado del TMINO, En primera instancia se activa el LED de salida permaneciendo en ese estado durante un tiempo determinado, luego se des- activa el LED permaneciendo apagado durante el mismo periodo de tiempo que estuvo encen- dido; este ciclo se repite de manera indefinida. La parte mds interesante del programa es la subrutina de retatdo desatrollada alrededor del TMRO, la cual vemos en la figura 6.28. Fgura 620 Subrstoa de reterdo Cada vez que se invoca la subrutina RETAR- DO, la primera accién que se ejecuta es un borrado del registro TMRO, lo que hace que el temporizador cempiece suincremento desde cero, Cuando el MRO tmbaja en modo temporizador, quiere decie que se incrementa automiticamernte con los pulsos inter nos del relojdvidides pore factor establecido com el prescalador, En esta subrutina se hace wn chequeo Figura 626 Diarra eset dl sere conscante debit 6 del registro TRO, que se man- & IBICUTE curv0r18e000 tre Mereconrisdores Programacton tiene hasta que dicho bit se ponga en uno; el tiempo: ‘No usadio en este ejercicie ‘ranscurrido para que el bie Gse ponga en uno es el No usade en eae ejerico que vamos.a utilizar para generar el retardo, thea ocala in ‘rear Para calcularel reurde procedemes dela siguien- te foun i utlizanos un usual de-4 Mica frou bal cia interma es de IM, ya que se divide por cuatro ((dcbido a los ciclos de biisqueda y cjecuicién que eseu- Prescalador— Divicir por 256 amos en la eocién deteorda, lecciones sobre la CPU). ‘Eota frecuencia interna se debe dividir por 256 que eo Prescalador a! TMRO el valor configurado con el prscalador lo que nos da ‘No sada on esto jocicio un periodo de 256 us, Este valor multiplicado por 65, Figura 6:29 Conkiquracién del registro OPCION que escl valor hastacl cual cuenta cl TMRO pars legar al bir6, nos da un periods final de 16.64 ms. } EJERCECTO DE TEMPORTZACION CON EL TaRO E CHEQUEA EL BIT 6 DEL THRO RESULTANDO 65 INCREMENTS {ETARDO = 16.64 MILISEGUNDOS En Ia prderica, ol ED parece extar encendi- do todo el tiempo debido a que 16.64 ms es un tiempo muy corto para ser detectado por el ojo “Uist paLeres humano, La verdadera forma de esta onda pue- ne ee de apreciarse en un osciloscopio. El figura 629 poderas apreca valor que | o> sedebe asignar al registro OPCION para cumplirlos |06°, EU Os requerimientos del ejercicio; si dene alguna duda so. |PORTR equ 06 bre el significado de cada uno de estos biss,consulte la |CONTA EQU aD seeridin de tenrla donde ce hace nna dewripeiin cam |" nee pleta del registro OPCION, Finalmente en b figura |yxcq 630 podemos apreciar el cbdigo fuente del eericio. caw SCONFTGURAR oPCTON MOVLW B*11010111" ASIGNAR PRESCALADOR, oPrT0N 256, € INREMENTO POR Led No. 5. [Re107 THTERNO ontando eventos externos MOVLW Ox0@ En el anterior eercicio utilizamos el TMRO en el Uae poms denenn et eee | ‘modo de temporizador; esto significa que se incre- 5 ‘mentaba con los ciclosinternos de reloj. Enestecjer- |™°A FSI, feruntn fevraenn ene cheaurrna cio vamos a trabajar con la segunda opeiénpara el cr ORB. APAGO EL U0 manejo del TMRO la cual corresponde al modo de ee contador. Ahora, e! registro dl TMRO se incremen- coro ovo tari slo con la apariciin de eventos externas, porun |zeragog cLgF Tw INICIO LA pin especialmente asignado para esta labor (pin TOC- SQENTA OESKE CERO KI, RA en al 16F84). El digrama esquemaétion del | aspreq esc see, 6 -RT 6 Om en FN iN circuito lo podemos apreciar nla figura 631. El ob- Goro REPITO. NO ~> BORAO DE NUEVO jew en este eercicio es simplemente ler laentrada de RETURN SE ALGO DE LA ppulsos externos, incrementar lI MRO de acuerdo a te los pubos que se ham leido y visualizar cl valor almace- 20 nado en el temporzador por medio de ocho diados LED conectados en el puerto B. Fgura 6.30 Cécgo pala gaveracin do sales ogtais Curso préctico sobre Microcontroladaces ex: & Ejerciets: rogramecior) ace Figura 6.31 Diagrama esquemético do! ejercici En la figura 6.32 podemos apreciar el diagra- ma de flujo del presente ¢jercicio, en la gura 6.33 la configuracién de! registro OPCION para exte caso y ena figura 6.34 el cddigo fuente. La pal diferencia con respecta al ejervicin anterior, es laconfiguracién establecida en el registro OPCION, Ja eval hvinda Ia directs sobre cual es ba frente de sefial que vaa utilizar el TM; en este caso son los pulsos externos y sobre ellos no cjecuta su accién el prescalador debi a que ese médulo se ha evitado al asignarlo al temporizador watchdog. Flgura 6.32 Dagrama para contar eventos extrncs c & BIR: ccropicterstmrarccaianin del puerto. & Figura 6.53 Conguacion del registro OPCION pare contar ‘eventos extras EJERCICIO PARA CONTAR EVENTOS EXTERNOS LIST P=16F8¢ RADIX HEX a ) FQ 1 Tra EQU @L PORTA EQU a5 PORTE EQU 05 orc @ INICIO MOVLN OXFF ; CONFIGURAR PUERTO A ‘TRIS PORTA ; COMO ENTRADAS MOVLN @x00 ; CONFIGURAR PUERTO 8 TRIS PORTS ; COMO SALIDAS CRE PORTA: TNeTAR Fi PUFRTN CLRF IMR; INCIAR EL TRO CLRWOT—DESACTIVAR WATCHDOG MOVLN B*@3103111"; CONFIGURAR EL OPTION 3, REGISTRO THRO ‘CLRF TMR@ ; INICIAR DESDE CERO DE NUEVO CLO MOVE TMRO.N ; LEER EL THRO MOVWE PORTS ; VISUALIZAR RESULTADO EN EL 5 PUERTO B oto CICLO wn Figura 6.24 Citgo fuente cel eercico No cLRWOT Borra la cuenta del remporizador watchdog Sintaxis: CLRWDT yernplo: CLRWD 1 Antes de la instruccién Couadur WD" Después de la inseruccién. Contador WDT = 00 RETURN Retorno desde subrutina Sintaxis: RETURN Ejemplo: RETURN ‘Después de la subrstina, contador de programa = pila Ejercicio No. 6 Generacion de sefiales mediante el TMRO e interrupciones En ecte ejercicio vamosa estudiar otra técnica para generar scfiales digitalcs; n cl cjercicio No. 4 ob- servamos que cada ver que el registro TMRO lle- gaba hasta cierto valor se generaba cada uno de loc tiempos En rer arasién vamns a cargar nin valor inicial en el TMRO a parti del cual se incre- menta el reyistea mediante los ciclos de reloj in- temos y al debordarse, genera una interrupcién. El diagrama esquemético de este ejercicia lo podemos apreciar en la figura 6.35 y su montaje prictico sobre un circuito impreso universal en da figura 6.36. Estando dentro del servicio de interrupcién, se chequea el estado del pin de salida. Si esté en estado I6gico alto, se pone en bajo y viceversa. El cuerpo principal de este programa lo podemos apreciar en el diagrama de flujo de la figura 6.37. Inicialmente se hacen las con- figuraciones bésicas para el manejo que se va ahacer sobre las interrupciones y el modo de trabajo del TMRO; se carga un valor especifi- co en cl registro TMRO y se entra en un ciclo de espera para el momento en que se presen- te la interrupciba. Cer eneecin Figura 6.35 Diagrama esquemitco del eercico ‘Figura 6.36 Menisje scbve un cru impreso universal Figura 6.37 Diagrama do fujo co eereicio curse picts erconroes AGREE: & TAS 4A21 0 ‘ion generacién de la interrupcién y ya solo basta esperar el momento en que ella ocurra para cjecutar Bandera yur 9 activa cuandy 96 gina we vs egat la subrutina denominada servicio —— de interrupcién. tagor 08 as memuDciones por ido ete erupciones La configuracién del TMRO Figura 6.38 Configuracin dei registro INTCON Sipe dotatrates Irterpcin extemal fanco baat no tad en Fuente de efi! = eb inter0 orton Prescalaror—Dividir por 128 asignado al TMRO ‘noremento en flanco de subida {no fiizad) Figura 6.39 Coniguacion del registro OPCION Es de suponer que dependiendo del valor cargada en el regicera TMRO, varla la Ftecuen- cia de salida de la sefial digital. ‘Como hemos visto, la configuracién de las interrupciones se hace por medio del registro INTCON (INTerrupt CONtrol), figura 6.38; l primer paso es borrar Ia bandera TOIF (bit 2), Ia cual se activa cada vex que se presenta una interrupcién originada por un desborde Esta precaucién también se debe tener en. cuenta dentro de la nutina de interrupcién; mien- tras esta bandera permanezca activa no se podrin atender nuevas interrupciones del'TMRO. Finalmente se deben activar el bi¢ habili- tador global de interrupciones (GIK) y el bit habilitador de la interrupeién por desborde del IMXU. Con el cumplimiento de estas dos condiciones, se activa en forma definitiva la se hace mediante ef registro OP- CION; en él se establece que se ya-4 abajas Lun lus ciclus ives nos de reloj y el valor que se va a tomar para el prescalador, figura 6.39. A partir de ese momento el programa espe ra que se presente el desborde del TMRO y por fo tanto la interrupeién. Cuando ella llega ce cjecuta la estructura mostrada en la Figura 6.40, en donde se pregunta por el estado actual de la linea de salida y se origina una salida que in vierte dicha lertira. Fledilign Bente de exte cjer- cicio esel que se muestra en la figura 6.41. Servicio de Internupeidin Ce at Figura 6 40 Diagrams de fyo del servic de interapeién } DOMOSTRACEON DEL USO DCL TIMERO UrsT patgrBe RADIX. HEX ee) f wt 5 MAPA DE MEMORTA Te £0) 01 PORTB £0) 06 INTCON EQ) 08 os 8 core Imcro ORs 4 coro SER INT INICIO MOVLM $"9o@0BDE" ; CONF LGURAR PINES DEL TRIS PoRTe. 5 PUERTO B COND SALIDAS CaF PORTE ECF INTCON,2 4; BORBAR BANDERA OF INT, cL Tao BSE TATCON,7 —— HABILITADOR GLOBAL DE 5 INTERRUPCIONES. BSE IATCON,S 5 MABILITAR INTERRUP 5 CONES Oe THRE cuanor Novi SraLeror18" ; CONFTCURAR THRE oPru0N sowie axon Novae THRO aco cr ciao ‘ “SERVICIO DE INTERRUPCEON- SERINT BCE EATCON,2 BORER BALOEEA DE DAT. DEL 4} TMQ. ESTO PERMITE LEER 1 FUTURAS INTER. TESS + IN 1 DEL PBT B EN INT? wow 5 SIESTA EN CERO SE DEBE 5 ACTIVA RRA BIT ECF PORTB.2. «= PONER \ BRIO EL BIT 1 5 DEL PUERTO 8 core conrtc_TwRe scrav.ort 8S PoRT@,2.——; PONER EN ALTO EL BIT 1 + DEL puERTO 8 courre_m0 NOVLM x00 5 CARGAR ESTE VALOR PARA INICIAR OESOE ALLE Nowe Ti jIMICAR EL Tee ReTeLE Figura 6.41 Gidgo fuente dsl eerico No. 6 Programacion Por la linea de salida, pin 1 del puerto B, podemos conectar un diodo LED o atin me- jor, visualizar el resultado por medio de un osciloscopio, Este ejercicio se vuelve intere sante cuando jugamos con los pardmetios del sistema para variar la frecuencia de salida y Icgar a un valor descado. Los pardmetros con los que podemos jugar son: el valor del cristal externo, el valor asignado al prescalador y el valor cargado inicialmente en registro TMRO, En las figuras 6.42, 6.49, 6.44 y 6.45 po- demos apreciar diversas frecuencias generadas con distintos pardmetius, iccordumus que pata conocer el momento en que se genera la inte- rrupcién, debemos dividir la frecuencia del cristal externo por cuatro para saber la frecuen- cia interna del microcontroladors de esta ma neta, sabemos cada cuanto tiempo se incremen- ta el registro TMRO. Ta velocidad enn que se-aumenta este regis- tro se ve alterada por la divisién que origina el presealacar y esta nueva frecuencia incrementa al TMRO desde el valor en que fue cargado ini- cialmente. Cuando llega a EF y pasa a 00 se o:i- gina una condicién de desborde y se genera la interrupcién donde se modifica la salida, Con este ejercicio culminamos esta serie de ejetcicios basicos en microcontroladores PIC, al igual que el aprendiaaje sobre el médulo tempo- rizador'TMRO, ques uno de los més importan- tes dentro de los microcontroladores, Hasta ahora hemos visto como utilizar un microcontrolador PIC como contador y como temporizador, al igual que se ha mostrado como modificar tados los parimetros de su tunciona- miento. Ya estamos listos para abordar una nueva leccién de ejercicios de un nivel un poco mas ele- vado, donde desarrollaremos cjercicios de comu- nicaciones seriales, manejo de modulos LCD, co- nexidn de memorias seriales, ete, cu prt core wires MERCI: @ Ejercicios de programacion Cada war que ol TR se deshorda se genera ‘ma intorrupcionen ta cual se cambia el estado de a sefal de salida El instante en que ocurre un cambio de nivel es el momento exacto en (qu la interrupcién 9s atendlda. ‘Figura 8.42 En este caso se ha cargado o! TMAD con of valor Inexadecinal 1 vse ha asignado un fector oe dvisién de 128 Podemos notar que entre mayor sea el factor division del TMRO, senecestaré un tiempo ‘mayor para negara aesporae, por io temo un meeune Figura 6.43 Aqui se ha riitesdo ol TRO on 00 y she hecho | un bypass de rescaled asignndos a watchdog Figura 6.44 En este caso lamin sea borrado ei TRO pero se tie hecho ur ls pur 2, caryandoe!prescalador con 260 en ‘ns tres primers bits dot regstro OPOION Flgora 8.45 Aqui se ha iniciaraco ef TRO en 00 y 1a recuencta Ge tata teh por 32 & RKCIT:: 61150 dei sobre Mrocntroladeres

También podría gustarte