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 MereconrisdoresProgramacton
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 NocLRWOT
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