Chuleta-resumen de los registros asociados al TMR2

Một phần của tài liệu Microcontroladores PIC diseno practico de aplicaciones segunda parte PIC16F87X PIC18FXXX 2 ed jose angulo (Trang 121 - 134)

En la Figura 5.6 se ofrece una tabla que resume los bits de los registros que se utilizan en el mane- jo del TMR2.

Figura 5.5. Esquema por bloques de la estructura del TMR2.

Figura 5.6. Resumen de los bits de los registros que se utilizan en el manejo y programación del TMR2.

DIREC- VALOR VALOR

CIÓN NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 EN POR, EN EL RESTO BOR DE RESETS

0Bh, INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u

8Bh, 10B, 18Bh

0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

11h TMR2 Registro del módulo TMR2 xxxx xxxx uuuu uuuu

12h T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 xxxx xxxx uuuu uuuu

92h PR2 Registro de perớodo del TMRằ –00 0000 –uu uuuu

MIDIENDO EL TIEMPO

La mayoría de los programas tienen una o más rutinas de temporización. Dicha temporización se puede realizar mediante bucles anidados en que se van decrementando el valor de varios contado- res hasta llegar a 0 o, más eficientemente, descargando de esta tarea a la CPU, utilizándola para otras cosas, mientras un temporizador especial que lleva la cuenta. En este capítulo se ha hablado del as- pecto teórico de los temporizadores; vamos ahora a llevarlo a la práctica mediante un ejercicio. El uso de los temporizadores es tan común que en capítulos posteriores se seguirán mostrando ejem- plos de utilización aunque no sea el recurso a estudiar.

Enunciado

Se quiere que el temporizador TMR1 se comporte como un contador de eventos externos. Dichos eventos vendrán por la línea RC0/T1CKI desde el generador de onda del Micro’PIC I/O. Si cuenta los eventos durante 0,250 seg y el resultado se multiplica por 4, se obtiene el número de pulsos por segundo (herzios). Cambiando el intervalo de tiempo de medición se podrían medir KHz, MHz, etc.

Si en lugar de ser el generador el que proporcionara los pulsos, fuera el optoacoplador asociado al motor del Micro’PIC I/O, estaríamos consiguiendo medir su velocidad. Los herzios se van a mos- trar, además, por la pantalla LCD del Micro’PIC Trainer. El TMR0 va a funcionar como tempori- zador auxiliar.

Esquema eléctrico

La única conexión que deberá realizarse entre el Micro’PIC I/Oy el Micro’PIC Trainer, además del PICBUS, es entre la salida del generador y la patita RC0/T1CKI de entrada de pulsos para el TMR1.

En la Figura 5.7 se muestran las conexiones al completo.

Organigrama

Una vez más, el organigrama del programa principal es tan simple como la inicialización de los di- ferentes registros y recursos a utilizar, y la espera en un bucle a que se produzca una interrupción, que será la que realmente realice las operaciones necesarias. (Figura 5.8.)

Programar PIC es fácil

107

Figura 5.7. Esquema eléctrico del ejercicio propuesto.

Vss Vdd Vo RS R/W# E D0 D1 D2 D3 D4 D5 D6 D7

+5V

2 3 4 5 6 7 8 9 10 11 12 13 14 1

CONTRASTE

PIC16F873 1

2 3 4 5 6 7 8 9 10 11 12 13 14

RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT V

V RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA

DD SS

28 27 26 25 24 23 22 21 20 19 18 17 16 15 MCLR#/V /THV

RA0/AN0 RA1/AN1 RA2/AN2/V RA3/AN3/V RA4/T0CKI RA5/AN4/SS#

V OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL

PP

REF- REF+

SS

15 pF CRISTAL 4 Mhz

15 pF

+5 V 100

RESET In4148

10K +5V

GENERADOR MICRO’PIC I/O

Se entrará en la rutina de interrupción cada 50 ms. Éste es el tiempo aproximado que tarda el TMR0 en desbordarse con los valores cargados. Como se requiere una temporización de 250 ms, se entrarỏ en dicha interrupciún 5 veces, antes de hacer el tratamiento ôverdaderoằ. Una vez llegado a este punto se visualizará el TMR1, que se habrá ido incrementando con los pulsos proporcionados por el generador, en la pantalla LCD y, tras reponer los valores adecuadamente, se volverá al pro- grama principal hasta que se produzca una nueva interrupción. (Figura 5.9.)

Figura 5.8. Organigrama del ejercicio.

Figura 5.9. Organigrama de la rutina de tratamiento de interrupción.

Programa comentado

El programa quedará de la siguiente manera:

LIST P=16F873 ; Se indica el tipo de

; procesador

RADIX HEX ; Sistema de numeración

; hexadecimal

INCLUDE ôP16F873.INCằ ; Se incluye la definiciún de

; los registros internos en

; una librería

Lcd_var EQU 0x20 ; Variables para LCD

BYTE_L EQU 0X22 ; Parte baja del byte a

BYTE_H EQU 0X23 ; convertir y parte alta

BCD_2 EQU 0x24 ; Variables BCD

BCD_1 EQU 0x25

BCD_0 EQU 0x26

CONTADOR EQU 0x27

TEMPORAL EQU 0x28

DELAY EQU 0x29 ; Variable de temporización

ORG 0x00 ; Inicio en el Vector de

; Reset

goto INICIO ; Va a la primera instrucción

; del programa

ORG 0x04 ; Vector de

goto INTER ; interrupción

INCLUDE ôLCD_CXX.INCằ ; Incluye rutinas de LCD

; Se visualiza por el LCD los cinco dígitos situados en las variables BCD2-0

VISUALIZAR movlw 0x80

call LCD_REG

movlw 3

movwf CONTADOR

movlw BCD_0

movwf FSR

VISU_LOOP swapf INDF,W

andlw 0x0f

iorlw 0x30

call LCD_DATO

movf INDF,W

andlw 0x0f

iorlw 0x30

call LCD_DATO

decf FSR,F

decfsz CONTADOR,F

goto VISU_LOOP

return

; Rutina de conversión de un número binario de 16 bits a 5 dígitos BCD para el LCD

BITS16_BCD bcf STATUS,C

clrf CONTADOR

bsf CONTADOR,4

clrf BCD_0

clrf BCD_1

clrf BCD_2

LOOP_16 rlf DATOC_L,F

rlf DATOC_H,F

rlf BCD_2,F

rlf BCD_1,F

rlf BCD_0,F

decfsz CONTADOR,F

goto AJUSTE

return

AJUSTE movlw BCD_2

movwf FSR

call AJUSTE_BCD

incf FSR,F

call AJUSTE_BCD

incf FSR,F

call AJUSTE_BCD

goto LOOP_16

AJUSTE_BCD movf INDF,W

addlw 0x03

movwf TEMPORAL

btfsc TEMPORAL,3

movwf INDF

movf INDF,W

addlw 0x30

movwf TEMPORAL

btfsc TEMPORAL,7

movwf INDF

return

; Rutina de tratamiento de la interrupción

INTER decfsz DELAY,F ; ¿Han pasado 250 ms?

goto NO_250_MS ; No

SI_250_MS bcf T1CON,0 ; Sí. Para el TMR1

bcf STATUS,C

rlf TMR1L,F ; Lo multiplica por 4

rlf TMR1H,F

rlf TMR1L,F

rlf TMR1H,F

movf TMR1L,W ; Salva el contador

movwf BYTE_L

movf TMR1H,W

movwf BYTE_H

call BITS16_BCD ; Lo convierte a BCD

call VISUALIZAR ; Lo visualiza por el LCD

movlw ~.195 ; Repone el valor del TMR0

movwf TMR0 ; para volver a temporizar

movlw .5 ; 50 x 5 = 250 ms

movwf DELAY

bcf INTCON,2 ; Repone flag

clrf TMR1L

clrf TMR1H

bsf T1CON,0 ; Activa TMR1

retfie

NO_250_MS movlw ~.195 ; Para volver a contar otros

movwf TMR0 ; 50 ms, hasta llegar a los

bcf INTCON,2 ; 250

retfie

; Comienzo del programa principal

INICIO clrf PORTB ; Limpia salidas

clrf PORTA

bsf STATUS,RP0 ; Cambio al banco 1

bcf STATUS,RP1

movlw b’00000110’ ; Puerta A E/S digitales

movwf ADCON1

clrf TRISB ; Puerta B como salida

clrf TRISA ; Puerta A salida

movlw FF ; Puerta C como entrada

movwf TRISC

movlw b’11000111’ ; Configuración del TMR0

movwf OPTION_REG ; con predivisor de 256

bcf STATUS,RP0 ; Cambio a banco 0

movlw b’00000010’ ; Desactivación del TMR1

movwf T1CON

clrf TMR1L ; Inicialización del TMR1

clrf TMR1H

call UP_LCD ; Configuración de líneas

; para LCD

call LCD_INI ; Inicialización de LCD

movlw b’00001100’ ; LCD On, Cursor y Blink

call LCD_REG ; Off

movlw ~.195 ; Inicialización del TMR0

movwf TMR0

bsf T1CON,0 ; Activación del TMR1

movlw .5 ; Preparación de

movwf DELAY ; temporización de 250 ms

movlw b’10100000’ ; Habilitación de

movwf INTCON ; interrupción del TMR0

BUCLE clrwdt ; Refresca perro guardián

goto BUCLE

END

Prueba del programa

Se deberán conectar las líneas tal y como muestra el esquema eléctrico. Además, se deberá tener en cuenta:

La Figura 5.10 muestra una fotografía del programa funcionando. En el LCD puede observarse el valor numérico que muestra los herzios y el osciloscopio los pulsos generados por el oscilador del Micro’PIC I/O.

1.o En la ejecución, el jumper J6 del Micro’PIC Trainer debe estar cerrado.

2.o Los interruptores RA0-RA2 del Micro’PIC Trainer deben permanecer activados para no interferir con el funcionamiento del LCD.

Figura 5.10. Fotografía del ejercicio propuesto en ejecución.

APLICACIÓN DE LOS PIC AL CONTROL DE MOTORES Y SENSORES

Tarjetas como la Micro’PIC Trainer Plusy la Micro’PIC I/Opueden ser muy adecuadas para la de- puración de programas, ya que cada una de ellas dispone de periféricos de E/S variados junto con sus controladores. Esto permite la prueba de diferentes rutinas facilitando así el aprendizaje.

Sin embargo, cuando se acomete un proyecto real, a menudo los sensores y actuadores no se en- cuentran sobre la tarjeta, sino sobre el elemento al cual controlan. Para esto se hace necesario que la circuitería de control guarde cierta independencia de los sensores y actuadores.

La tarjeta MSx84

Se trata de una controladora de motores y sensores que puede contener un PIC16F84 de 18 patitas para su gobierno o puede conectarse a otro sistema como el Micro’PIC Trainerque, a través del PICBUS, puede pasarle las seủales de un PIC de un mỏximo de 28 patitas. (Figura 5.11.)

Figura 5.11. Fotografía que muestra las partes más importantes de la MSx84.

Diseủar con PIC es fỏcil

114

ALIMENTACIÓN AC

PICBUS

PIC18 HF40106

L2938

SW1 MOTORES

SENSORES

BATERÍA SW3

Descripción del esquema electrónico

En la Figura 5.13 se muestra el esquema de la tarjeta MSx84, que está compuesto de cuatro bloques principales:

1.o Fuente de alimentación.

2.o Sección del microcontrolador.

3.o Control de motores.

4.o Sección de sensores.

1.a Alimentación:se alimenta mediante un transformador de 12 VAC.

2.a Interruptor SW3:para el encendido y apagado de la placa.

3.a Entrada de batería J5:que permite la posibilidad de alimentación a pilas o con baterías, lo cual la hace muy apta para entornos en que se necesita autonomía de alimentación.

4.a Conexión de Motores J6 y J7:con el driver L293B que contiene la placa, que permite controlar a través de estos bornes 2 motores DC o uno PAP. Están asociados a las líneas RA0-RA3 del PIC.

5.a PICBUS:para la conexión con el Micro’PIC Trainer a través de este bus que permite, además de la disposición de las líneas de E/S de un PIC externo, la grabación del PIC que se encuentra en la propia tarjeta sin necesidad de sacarlo del zócalo.

6.a Conectores J -J4:asociados a las líneas RB0-RB3 y RA4 del PIC y que sirven para la conexión de 5 sensores, usando dos circuitos integrados HF40106.

7.a Dip-Switch SW1:son los encargados de realizar la asociación periféricos-líneas del PIC, tal y co- mo se muestra en la Figura 5.12, donde S0-S4 se refiere a los sensores, INx al sentido de los mo- tores y ENx a su encendido/apagado. En el caso de que se quiera realizar otra asociación, se de- berán quitar los microrruptores e interconectar las líneas mediante cables.

8.a PIC18:zócalo sobre el que se alojará el PIC16F84.

Figura 5.12. Zócalos que muestran la asociación de líneas con los sensores y actuadores.

MICROCONTROLADORES ôPICằ. DISEẹO PRÁCTICO DE APLICACIONES

Figura 5.13. Esquema electrónico de la tarjeta MSx84 para el control de motores y sensores.

Fuente de alimentación

Está formada por dos secciones. La primera recibe en el puente rectificador (D1) por J8 una tensión de 12 VAC y proporciona una tensión de 13 VDC, mediante el regulador UA7812 (U4) y los dio- dos D2, D3, D4 y D5.

Al cerrar el interruptor SW3, se consigue una tensión de 5 VDC a través del regulador UA7805 (U5) en el borne +VCC, mientras que en el borne +VBATse tienen los 13 VDC.

En lugar de la sección rectificadora del UA7812 se puede introducir una tensión de CC por me- dio de una batería en el conector J5.

Microcontrolador

La tarjeta contiene su propio microcontrolador PIC16F84, que pone a disposición del usuario todas sus patitas a través del conector PICBUS. Igualmente, usando este conector PICBUS puede conec- tarse al Micro’PIC Trainerpara grabar y borrar el microcontrolador directamente sobre la tarjeta de aplicación.

La circuitería que envuelve al PIC16F84 es la mínima necesaria: cristal X1 de 4 MHz, junto a los condensadores C7 y C8, y el circuito de Reset formado por el pulsador SW2 y la resistencia R11.

Sección de sensores

La tarjeta MSx84 puede controlar las seủales digitales procedentes de 5 sensores externos que se aplican por los conectores J0-J4. Dichas seủales se aplican a puertas Trigger inversoras para la adap- tación de niveles, evitando ruidos y deformaciones, mediante dos circuitos integrados HF40106.

Los microrruptores de SW1 permiten que cada una de las cinco seủales de los sensores puedan desconectarse de las líneas del microcontrolador, caso de no emplearse.

Một phần của tài liệu Microcontroladores PIC diseno practico de aplicaciones segunda parte PIC16F87X PIC18FXXX 2 ed jose angulo (Trang 121 - 134)

Tải bản đầy đủ (PDF)

(394 trang)