Experimento 7: Modulación Ancho de Banda (PWM) controlado

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 371 - 394)

A.4. Experimentos con la gama mejorada

A.4.2. Experimento 7: Modulación Ancho de Banda (PWM) controlado

list p=18c452

#include <P18C452.INC>

OP1 equ 0x000

OP2 equ 0x001

org 00000h ; Vector de Reset goto Inicio

org 00020h

Inicio

clrf LATB ; Borrado de posibles Latchs del puerto B clrf LATC ; Borrado de posibles Latchs del puerto B clrf TRISB ; Todo el puerto B salidas

movlw 0xff

movwf TRISC ; Todo el puerto C entradas Bucle

movf PORTC,W ; Se almacena la lectura del puerto C en w movwf OP2 ; OP2 <- Los 8 bits leídos

andlw0x0f ; los 4 bits de + peso de w a 0 movwf OP1 ; OP1 <- primer operando

movlw 0xf0 ; Se elimina la parte baja de la lectura andwf OP2,F

movlw 0xf0

xorwf OP2,F ; Se complementan lo 4 bits de más peso swapf OP2,F ; Se intercambian los nibbles

movf OP1,W

mulwf OP2 ; Se realiza la multiplicación movff PRODL,PORTB ; Se muestra el producto en puerto B

goto Bucle

end

Figura A.20. Experimento 6 implementado en el PIC School.

programa será necesario contar con un osciloscopio conectado al canal PWM, o en su defecto co- nectar un periférico, como por ejemplo un motor, que nos permita ver el funcionamiento de este re- curso.

El esquema de conexionado es el siguiente, sabiendo además que la salida RC1, deberá conec- tarse a la sonda del osciloscopio.

Figura A.21. Esquema de conexión del Experimento 7 en el PIC School.

Es necesario configurar el módulo CCP para realizar funciones de modulado de ancho de ban- da, lo cual se lleva a cabo en la rutina Inicio_PWM. Dado que sólo vamos a utilizar una salida PWM utilizamos el módulo CCP estándar, es decir el CCP2.

Además como el ciclo activo del periodo PWM viene marcado por la lectura de un canal analó- gico es necesario realizar la configuración del mismo por medio de la rutina Inicio_ADC. Sólo AN0 actúa como analógico y como tensión de referencia utilizamos los 5 Vcc con los que se alimenta el microcontrolador.

Una vez configurados todos los recursos, se procede a la lectura del canal analógico, volcando los 10 bits en los que convierte la entrada, en los 10 que controlan los ciclos del periodo PWM. Ade- más se visualiza la lectura del canal AN0 en la pantalla LCD por medio de la rutina LCD_AD.

El código fuente de este experimento es el siguiente:

list p=18f4520

#include <P18F4520.INC>

cont equ 0x000

temp equ 0x001

Lcd_var equ 0x002

org 00000h ; Vector de Reset

goto Inicio

org 00020h

#include <lcd_18F.inc>

Inicio

clrf LATA ; Borrado de posibles Latchs del puerto A clrf LATB ; Borrado de posibles Latchs del puerto B clrf LATC ; Borrado de posibles Latchs del puerto C clrf LATD ; Borrado de posibles Latchs del puerto D clrf TRISB ; Todo el puerto B salidas (LCD datos) movlw b‘11110001’

movwf TRISD ; RD1,RD2,RD3 salidas (LCD control) movlw 0xff

movwf TRISA ; RA0 <- AN0 como entrada call Inicio_ADC ; Configuración del convertidor A-D call Inicio_LCD ; Inicialización del LCD

call Inicio_PWM ; Configuración del módulo CCP para PWM Principal

bsf ADCON0, GO ; Comienzo conversión A-D

btfss PIR1,ADIF ; Mientras no finalice conversión, espera goto Principal

movff ADRESH,CCPR2L ; los 8 bits MSB del ADC a los 8 de PWM btfsc ADRESL,7

bsf CCP2CON,5 ; Bit de menos peso ADC a PWM btfss ADRESL,7

bcf CCP2CON,5

btfsc ADRESL,6 ; Bit de peso 2 de ADC a PWM (total 10 bits)

bsf CCP2CON,4

btfss ADRESL,6

bcf CCP2CON,4

call LCD_AD ; Mostramos en el LCD el resultado del ADC bcf PIR1, ADIF ; Se borra el flag del ADC para la próxima conversión goto Principal ; Vuelta al bucle

;******************************************************************

;* Esta rutina muestra los 10 bits obtenidos tras realizar una *

;* conversión A-D en la pantalla LCD. Téngase en cuenta que como *

;* se ha configurado el ADC con justificación a la izquierda, *

;* el registro ADRESH contiene los 8 bits de más peso y el ADRESL *

;* los 2 de menos peso. *

;******************************************************************

LCD_AD

movlw 0x02 ; Borrado LCD y Home

call LCD_REG

movlw ‘A’

call LCD_DATO

movlw ‘N’

call LCD_DATO

movlw ‘:’

call LCD_DATO ; Mostramos en LCD “AN:”

clrf cont ; Inicializamos Contador LCD_Bucle

btfsc cont,3 ; si contador = 8 (1000)

goto LCD_Fin ; entonces, 8 bits de ADRESH ya mostrados rlcf ADRESH ; si no, movemos al Carry el siguiente bit btfsc STATUS,C ; de ADRESH y si éste es un 1

call LCD_1 ; entonces mostramos un 1 en LCD btfss STATUS,C ; si en cambio es un 0

call LCD_0 ; mostramos un 0 en el LCD incf cont,F ; incrementamos contador goto LCD_Bucle ; pasamos al siguiente bit LCD_Fin

btfsc ADRESL,7 ; una vez mostramos los 8 bits de ADRESH call LCD_1 ; se muestran los 2 de ADRESL

btfss ADRESL,7

call LCD_0

btfsc ADRESL,6

call LCD_1

btfss ADRESL,6

call LCD_0

return

;******************************************************************

;* Muestra un “0” en la pantalla LCD. *

;******************************************************************

LCD_0

movlw ‘0’

call LCD_DATO return

;******************************************************************

;* Muestra un “1” en la pantalla LCD. *

;******************************************************************

LCD_1

movlw ‘1’

call LCD_DATO

return

;******************************************************************

;* Esta rutina configura el convertidor A-D. Para ello configura *

;* el puerto A con sólo RA0 como entrada analógica, y justifica- *

;* ción a la izquierda. Además selecciona y activa el canal AN0 *

;******************************************************************

Inicio_ADC

movlw b‘00001110’

movwf ADCON1 ; Sólo AN0 analógico movlw b‘00010010’

movwf ADCON2 ; Tiempo de captura movlw b‘00000001’

movwf ADCON0 ; Selección y activación del canal AN0 return

A.4.3. Experimento 8: Visualización de dos canales analógicos a través del USART A través de este experimento vamos a visualizar el valor digitalizado de dos entradas analógicas en el PC a través de un programa Terminal. Utilizaremos como entradas analógicas las líneas AN0 y AN1 del puerto A, utilizando como tensión de referencia la alimentación de 5Vcc aplicada al PIC. Cada vez que pulsemos uno de los dos pulsadores conectados a las líneas RC0 y RC1 del puerto C se enviarán al PC, por medio del USART, los diez bits en los que el convertidor ADC ha digitalizado la entrada AN0 en caso de activar el pulsador conectado a RC0, o AN1 si el pulsado es el cableado a RC1.

Aquellos lectores que no dispongan de un programa Terminal propio, pueden utilizar el hiper- terminal®incluido en todas las versiones de Windows®. Recuerde que hemos configurado el USART con una velocidad de 9600 baudios, 8 bits de datos y uno de parada, luego la ventana de configuración del programa deberá quedar tal y como se indica en la Figura A.22.

El esquema de conexión del PIC School es el que se muestra en la Figura A.23.

A la hora de realizar el programa comenzaremos configurando los recursos utilizados. Con este propósito la rutina Inicio_UART configura las líneas RC7/Rx y RC6/Tx como entrada y salida res-

;******************************************************************

;* Esta rutina inicializa el LCD. Anteriormente ya se han confi- *

;* gurado las 8 líneas del puerto B y RD1,RD2 y RD3 como salidas *

;******************************************************************

Inicio_LCD

call UP_LCD ;Configura puertos para LCD call LCD_INI ;Secuencia de inicio del LCD

movlw b‘00001100’ ;Envía cmd: LCD On, Cursor Off y blink Off

call LCD_REG

return

;******************************************************************

;* Rutina que configura el módulo CCP1 para actuar como modulador *

;* de ancho de banda. *

;******************************************************************

Inicio_PWM

movlw b‘00001100’

movwf CCP2CON ;Configuración CCP1 como PWM movlw .255

movwf PR2

bcf TRISC, 1 ;Puerto RC1 como salida movlw 0x00

movwf CCPR2L movlw b‘00000100’

movwf T2CON ;Borrado de T2CON

clrf TMR2 ;Borrado del Timer2

bsf T2CON,TMR2ON ;Activación del Timer2 return

end

Figura A.22. Configuración del programa hiperterminal.

Figura A.23. Esquema de conexión del Experimento 8 en el PIC School.

pectivamente, además habilita el USART para que se establezca una comunicación asíncrona con el PC a 9600 baudios, con 8 bits de datos y uno de parada. A su vez, la rutina Inicio_ADC configura las líneas RA0/AN0 y RA1/AN1 como analógicas manteniendo el resto del puerto A como líneas digitales. Por último, la rutina Inicio_TMR0 configura el Timer 0 con 8 bits como temporizador y le asocia el preescaler que divide la frecuencia interna del PIC entre 256.

Una vez realizadas las tareas de configuración, el programa comienza testeando la activación de los dos pulsadores conectados a las líneas de menos peso del Puerto C. Téngase en cuenta que los pulsadores del PIC School introducen un 1 en reposo y un 0 cuando son pulsados. En el momento en que se detecta la pulsación en uno de ellos, y tras esperar 10 ms para eliminar los posibles rebo- tes que se puedan generar, se activa el canal analógico correspondiente y se procede con la conver- sión analógica-digital. Posteriormente se lanza por el USART los 10 bits en los que ha resultado la conversión. El programa fuente sería el siguiente:

list p=18f4520

#include <P18F4520.INC>

cont equ 0x000

temp equ 0x001

org 00000h ; Vector de Reset

goto Inicio

org 00020h

Inicio

clrf LATA ; Borrado de posibles Latchs del puerto A clrf LATB ; Borrado de posibles Latchs del puerto B clrf LATC ; Borrado de posibles Latchs del puerto C clrf LATD ; Borrado de posibles Latchs del puerto D movlw b‘10111111’

movwf TRISC ; RC6 como salida (Tx)

movlw 0xff

movwf TRISA ; RA0 <- AN0 RA1 <- AN1 como entradas call Inicio_UART ; Se configura el USART

call Inicio_TMR0 ; Se configura el TMR0

call Inicio_ADC ; Se configura el Convertidor A-D

Evalua_Pulsadores ; Se comprueba si las líneas RC0 o RC1 están btfss PORTC,0 ; activadas. Mientras por ambas líneas llegue call Pulsador_0 ; un 1 se permanece en el bucle. Al detectar btfss PORTC,1 ; un 0 en una de ellas se llama a la rutina call Pulsador_1 ; Pulsador_0 o Pulsador_1.

goto Evalua_Pulsadores

;*********************************************************************

;* Esta rutina, que es llamada cuando se detecta la activación del *

;* pulsador conectado a RC0, espera que este sea soltado eliminando *

;* los rebotes que esto pueda generar, realiza la lectura de la línea *

;* AN0 y la manda por el USART *

;*********************************************************************

Pulsador_0

call Espera_10_ms ; Espera 10 ms para eliminar posibles rebotes btfss PORTC,0 ; Se ha soltado ya el pulsador?

goto Pulsador_0 ; No, pues espera

call Espera_10_ms ; Elimina los rebotes generados al soltar call Lectura_AN0 ; Realiza la lectura de la línea AN0 call Visualiza ; Muestra la conversión A-D por el USART return

;*********************************************************************

;* Esta rutina, que es llamada cuando se detecta la activación del *

;* pulsador conectado a RC1, espera que este sea soltado eliminando *

;* los rebotes que esto pueda generar, realiza la lectura de la línea *

;* AN1 y la manda por el USART *

;*********************************************************************

Pulsador_1

call Espera_10_ms ; Espera 10 ms para eliminar posibles rebotes btfss PORTC,1 ; Se ha soltado ya el pulsador?

goto Pulsador_1 ; No, pues espera

call Espera_10_ms ;Elimina los rebotes generados al soltar call Lectura_AN1 ; Realiza la lectura de la línea AN0 call Visualiza ; Muestra la conversión A-D por el USART return

;*********************************************************************

;* Esta rutina manda por el USART la cadena de caracteres formada por*

;* “AN” un “0” o un “1” en función de la línea analógica leida y los *

;* 10 bits resultantes de la conversión *

;*********************************************************************

Visualiza movlw ‘A’

call Tx_Dato ; Se manda “A”

movlw ‘N’

call Tx_Dato ; Se manda “N”

clrf temp

btfsc ADCON0,2 ; Evaluando el conversor activo mandamos incf temp ; un “0” o un “1” por el USART

movlw 0x30 addwf temp,W call Tx_Dato movlw ‘:’

call Tx_Dato ; Se manda “:”

clrf cont

Visualiza_1

clrf temp ; Se manda los 8 bits de ADRESH

rlcf ADRESH

btfsc STATUS,C

incf temp,F

movlw 0x30 addwf temp,W call Tx_Dato incf cont,F movlw .8 cpfseq cont goto Visualiza_1

clrf temp

btfsc ADRESL,7

incf temp,F

movlw 0x30 addwf temp,W call Tx_Dato

clrf temp

btfsc ADRESL,6

incf temp,F

movlw 0x30 addwf temp,W

call Tx_Dato ; y los otros dos de ADRESL movlw .13

call Tx_Dato return

;*********************************************************************

;* Esta rutina selecciona la línea AN0 e inicia la conversión *

;*********************************************************************

Lectura_AN0

movlw b‘00000001’

movwf ADCON0 ; Selección y activación del canal AN0 bcf PIR1, ADIF

bsf ADCON0, GO ; Comienzo conversión goto Lectura_Fin

;*********************************************************************

;* Esta rutina selecciona la línea AN1 e inicia la conversión *

;*********************************************************************

Lectura_AN1

movlw b‘00000101’

movwf ADCON0 ; Selección y activación del canal AN0 bcf PIR1, ADIF

bsf ADCON0, GO ; Comienzo conversión goto Lectura_Fin

Lectura_Fin

btfss PIR1,ADIF ; ¿Ha producido interrupción el CAD?

goto Lectura_Fin return

;*********************************************************************

;* Esta rutina envía el carácter contenido en W por el USART *

;*********************************************************************

Tx_Dato

movwf TXREG

Tx_Dato_1

btfss TXSTA,TRMT goto Tx_Dato_1 return

;*********************************************************************

;* Rutina que temporiza 10 ms a través del Timer 0. Dado que se le ha *

;* conectado un divisor de frecuencia entre 256 y que 256*39=9984 *

;* el Timer 0 debe temporizar 39 incrementos *

;*********************************************************************

Espera_10_ms

movlw ~.39 ; Inicializa para temporizar 39 incrementos

movwf TMR0L

bcf INTCON,TMR0IF ; Borra el flag del Timer 0 bsf T0CON,TMR0ON ; Se activa el Timer 0

Espera_10_ms_1

btfss INTCON,TMR0IF ; Se espera hasta desborde goto Espera_10_ms_1

bcf T0CON,TMR0ON ; Se para el temporizador return

;*********************************************************************

;* Esta rutina inicializa el USART para establecer una comunicación *

;* asíncrona a 9600 baudios con 8 bits de datos y 1 de parada *

;*********************************************************************

Inicio_UART

bcf TRISC,6 ; RC6/Tx Salida

bsf TRISC,7 ; RC7/Rx Entrada

clrf SPBRGH

movlw .103

movwf SPBRG ; 9600 baudios a 4MHz

bcf TXSTA,SYNC ; comunicación asíncrona

bsf TXSTA,BRGH

bsf BAUDCON,BRG16

bcf TXSTA,TX9

bsf RCSTA,SPEN

bsf TXSTA,TXEN ;Comienza la transmisión return

;*********************************************************************

;* Esta rutina configura el Timer 0 con 8 bits y preescaler 1/256 *

;*********************************************************************

Inicio_TMR0

movlw b‘01000111’

movwf T0CON

return

;*********************************************************************

;* Esta rutina configura el convertidor A-D estableciendo AN0 y AN1 *

;* como canales analógicos. La selección y activación de los mismos *

;* se realiza en Lectura_AN0 y Lectura_AN1 respectivamente *

;*********************************************************************

Inicio_ADC

movlw b‘00001101’

movwf ADCON1 ; Sólo AN0 y AN1 analógico

movlw b‘00010010’

movwf ADCON2 ; Tiempo de captura

return end

A.5. EL COMPILADOR DE C

Para la realización de este último experimento vamos a emplear uno de los compiladores de C para microcontroladores PIC más empleados: el compilador PCWHde la empresa CCS.

Entre las principales ventajas de este compilador destacan las siguientes:

Compatibilidad. Es el único compilador compatible con todas las gamas y modelos de microcontroladores PIC, permitiendo siempre, la utilización del microcontrolador más adecuado a cada proyecto

Precio. Es uno de los compiladores más económicos permitiendo además la adquisición por separado de cada una de las gamas de microcontroladores PIC.

●● Facilidad de uso. Gracias al enorme número de funciones preconstruidas que incluye, ca- paces de controlar a cada uno de los recursos incluidos en los microcontroladores, es sin duda el compilador de alto nivel más potente y sencillo de utilizar no exigiendo grandes conocimientos de programación a alto o bajo nivel.

Existe una versión de evaluación que permite, durante 30 días, desarrollar aplicaciones basadas únicamente en el microcontrolador PIC 18F4520. Esta versión se puede descargar desde la página http://www.ccsinfo.com.

A continuación indicamos el código fuente, programado en lenguaje C, para el desarrollo del ex- perimento 8.

#include <18F4520.h>

#fuses XT,NOWDT,NOPROTECT,NOLVP

#use delay(clock=4000000)

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) main() {

int res;

set_tris_c(b’10111111’); //Configuración Puerto C

setup_port_A(ALL_ANALOG); //Configuración Puerto A setup_adc( ADC_CLOCK_INTERNAL);

While (TRUE) {

if (input(PIN_C0)==0) // Si RC0 es un 0 (Pulsador activo) {

delay_ms(10); // Espera 10 ms.

while (input(PIN_C0) == 0) // Mientras esté pulsado

{} // no hacer nada

delay_ms(10); // Espera 10ms set_adc_channel(0);

res = read_adc(); //Lectura de Puerto AN0 printf(“AN0:\%un”,res); //Muestra resultado por USART }

if (input(PIN_C1)==0) {

delay_ms(10);

while (input(PIN_C1) == 0) {}

A través de este código esperamos que el lector se pueda hacer una idea de las ventajas que im- plica la utilización de este tipo de herramientas.

En su contra debemos advertir que la optimización del código generado mediante cualquier com- pilador de alto nivel es muy inferior a la obtenida mediante lenguaje ensamblador, en lo referente a la capacidad de memoria que se precise y en la velocidad de ejecución.

También se pueden encontrar en el sitio de Internet de Microchip demos y versiones de bajo cos- te para estudiantes de compiladores en C.

delay_ms(10);

set_adc_channel(1);

res = read_adc();

printf(“AN1:\%un”,res);

} } }

LIBROS

ôMICROCONTROLADORES PIC. Diseủo prỏctico de aplicacionesằ,

(Primera parte: PIC16F84). Incluye un CD con aplicaciones y tutoriales multimedia.

Angulo, J. Mê. y Angulo, I.

Editorial McGraw-Hill, 3ê ediciún, 2003.

ôMICROCONTROLADORES PIC. La clave del diseủoằ, Angulo, J. Mê., Martớn, E. y Angulo, I.

Editorial Thomson, 2004.

ôDISEẹO PRÁCTICO CON MICROCONTROLADORESằ, Angulo, J. Mê., Romero, S. y Angulo, I.

Editorial Thomson, 2004.

ôLABORATORIO DE PRÁCTICAS DE MICROELECTRểNICAằ, Angulo, J. Mê.

Editorial McGraw-Hill, 2 volúmenes, 2002.

REVISTAS

ôRevista Espaủola de Electrúnicaằ

ôElektorằ

ôElectronicsằ

ôCircuit Cellarằ

ôElectrúnica Prỏctica Actualằ

ôResistorằ

ôPC Hardwareằ

ôNueva Electrúnicaằ

369

Bibliografía y direcciones de interés relacionadas con los PIC

EMPRESAS

ôMICROCHIP TECHNOLOGY INC.ằ

2355 West Chandler Blv., Chandler, AZ 85224-6199, EE.UU., Tel: 602.786.7200.

ôSAGITRONằ

Montún de Trigo, 2, 28760 TRES CANTOS (MADRID), Espaủa E-mail: sagitron@sagitron.es

ôINGENIERÍA DE MICROSISTEMAS PROGRAMADOS S. L.ằ

Alda. Mazarredo 47-1º, 48009 BILBAO (Espaủa), Tel/Fax: 94-4230651 E-mail: info@microcontroladores.com

INTERNET

MICROCHIP: http://www.microchip.com INGENIERÍA DE

MICROSISTEMAS

PROGRAMADOS: http://www.microcontroladores.com PARALLAX, INC: http://www.parallaxinc.com ITU TECHNOLOGIES: http://www.itutech.com SAGITRON: http://www.sagitron.es

12C, 303, 331 Acceso a Banco, 241 ACK, 178

AD15-AD0, 256 ADC, 100 ADCON0, 144, 301 ADCON1, 82, 144, 301 ADCON2, 301 ADDWFC, 270 ADFM, 146 ADON, 145 ADRESH, 146 ADRESL, 146 AGUX, 327 ALE, 256 Alineamiento, 147 Alta prioridad, 259 ALU, 36

Anchura de pulsos, 131 Anchura del impulso, 124 Aproximaciones sucesivas, 143 Arbitraje, 181

Arizona Microchip, 329 Arquitectura, 311 ASCII, 332 ASM, 26 Bajo consumo, 94 Banco, 15, 238

Banco de Registro de Propósito General, 36

Banco de Registro Específico, 36 Bancos, 39, 237

Basic, 332

Baudios, 207 BC, 278 BODEN, 58, 87 Bootloader, 250 BOR#, 88 BOR, 58 BRA, 278 Breakpoint, 333 BRG, 207 BSR, 237 BTFSC, 278 BTFSS, 278 BUS 12C, 191 C, 59, 332 CALL, 38, 39, 277 CAN, 325, 331 Canales, 143 Captura, 122

Captura y mantenimiento, 143, 318

CCP, 104, 119, 126, 296 CCP1, 119, 126, 296 CCP1CON, 119 CCP2, 62, 119, 296 CCP2CON, 120 CCPxCON, 296 CCPxIF, 297 CCS, 365 CHS2-0, 145 CLRWDT, 91, 279 CMCON, 90, 305 CODEC, 320

Codificador de Cuadratura, 325 Colisiones, 190

Comparación, 122 Compatibilidad, 322, 366 Compilador de C, 365 Compiladores, 332 CONFIG1H, 235 Consumo, 91 Contador

asíncrono, 102 de Programa, 36 síncrono, 102, 121 Controlador

de ADM, 325 de DMA, 21, 324 de programa, 249 Controladores Digitales de

Seủales, 20, 317 Conversor

A/D, 143, 300, 318, 325 analógico/digital, 150 CORCON, 313 CP0, 66 CP1, 66 CPD, 87 CPFSEQ, 270 CPFSGT, 270 CPFSLT, 270 Cristal de cuarzo, 75 CRT, 205

CVRCON, 90 DAC, 100 DAW, 279 DC, 59 DCFSNZ, 271 DEBUG, 87

371

Índice

Debugger, 338 Despertar, 91 Diagrama

de conexión, 322 de conexionado, 232 Direccionamiento directo, 240,

241

Divisor de frecuencia, 59 DSC, 20, 317

DSP, 20, 317 dsPIC30F, 21, 320 dsPIC30F5013, 323 dsPIC30F6010, 325, 326 dsPIC30F6014, 323 dsPIC33F, 21, 22, 324 Duty Cycle, 123 EADDR, 244 EADDRH, 244 EBDIS, 255 ECO, 215 Edición, 332

EECON1, 63, 65, 244, 245, 252 EECON2, 63, 244, 252 EEDATA, 244 EEIF, 245

EEPROM, 39, 62, 67, 244 Emisor, 201

Emulador, 333 Enanos, 5

Encapsulados, 42, 227, 324 Encoger, 80, 131

Ensamblador, 26 Entradas analógicas, 360 EQ, 105

Esclavo, 174

Escritura de Tabla, 256 Espacio X, 327 Fase

de depuración, 333 de programación, 334 de prueba, 334 Firmware, 92

FLASH, 33, 38, 62, 64, 67 Formatos, 269

FOSC1:0, 87 Fournier, 319 Frecuencímetro, 347 FSR, 42

FSRn, 241

Fuentes de interrupción, 259

Full duplex, 205 Futaba, 53 Gama

Base, 5 Media, 5, 6

Mejorada, 5,15, 221, 225 Generador lógico, 331 GIEH, 261

GIEL, 261 GO/DONE#, 145 GOTO, 39, 277 GPR, 238 Half duplex, 205 Harvard, 36, 221, 325 Hiperterminal, 360 I2C, 167, 173 iButton, 331 ICD2, 333 INDFn, 241 INFSNZ, 271

Ingeniería de Microsistemas Programados S. L., 27, 139, 329

Ingeniería Informática, 140 Instrucciones, 267, 268

con literales, 273 control, 275 orientadas al bit, 272 orientadas al byte, 269 INTCON, 61, 85, 260 INTCON2, 261 INTCON3, 262 Inteligencia Artificial, 72 IPEN, 261, 264 IPR1, 264 IPR2, 265 IPR3, 265 IRP, 42, 58 L293B, 53, 55, 79 Laplace, 319 LAT, 281 LB#, 256

LCD, 151, 159, 345 LCD-CON, 159 LDR, 30 Lenguaje C, 366 LFSR, 274 LM336z-2.5V, 78

LM35, 31 LVP, 87 MAC, 327 Maestro, 174 MCLR#Vpp, 83, 93 MCU, 1, 20 MEMCON, 255 Memoria

de programa, 249 externa, 253, 286 Flash, 253

Micro´PIC I/0, 74, 113, 126 Micro´PIC Trainer Plus, 97 Micro´PIC Trainer, 27, 50, 74,

126

Microbótica, 138 Microbots, 138 Microchip, 1, 307 Microcontroladores, 1 Microrruptores, 117 Migrabilidad, 2, 8 MIPS, 307

Modelo de procesador, 310 Modo

captura, 120, 297 comparación, 121, 298 de 16 bis, 256 SLEEP, 34

Modos de direccionamiento, 46, 239

Modulación, 131

de Anchura de Pulsos, 299 Módulo, 122

comparador, 304 de Comparación, 325 PWM, 124

Motor DC, 75, 79 DSP, 20, 325, 327 Motores

DC, 52, 53 PAP, 52, 54 MOVFF, 271 MOVLB, 274 MPASM, 26 MPASMWIN, 333 MPLAB IDE, 329 MPLAB SIM, 338 MSERX, 200 MSETX, 200

MSSP, 167, 195, 205, 303

MSx84, 114 Multiplicador, 327

8x8, 232 de 8 bits, 355 MULWF, 272

Nacional Semiconductor, 78 NANOWAT, 223

NEGF, 270

Nomenclatura, 15, 225, 321 NOP, 72, 279

NRZ, 206 Onda cuadrada, 77 OPTION, 101 Optoacoplador, 75 Opto-triac, 79 Organigrama, 23 OSCCON, 235 Oscilador, 77, 233

de cristal, 234 OST, 89 Palabra

de configuración, 66, 86, 87 de identificación, 87 Pantalla LCD, 331 Pascal, 332 PCF 8583P, 100 PCF8574A, 100 PCF8583, 163 PCON, 88 PCWH, 365 PD#, 58 PEIE, 264

Perro Guardián, 91, 94 PFM, 54

Philips, 163 PIC School, 340 PIC, 1

PIC16F62x

PIC16F84, 23, 30, 117 PIC16F87, 37 PIC16F873A, 48, 50 PIC16F874A, 37 PIC16F876A, 50 PIC16F877A, 37 PIC16F87X, 187

PIC16F87x, 33, 38 42, 44, 81 PIC18C242, 226

PIC18C252, 226 PIC18F, 221

PIC18F1220, 223 PIC18F2331, 225 PIC18F4520, 354 PIC18F650, 229 PIC18F8722, 223 PIC18F8X20, 231 PIC18FXX20, 229 PIC18FXXKXX, 222 PIC18FXXXX, 222 PIC18XXJXX, 222 PIC18Xxxx, 15 PIC24, 307 PIC24F, 16, 19 PIC24FJ128GA, 314 PIC24FjxxxGA, 307 PIC24H, 20 PIC24HJxxxGP, 307 PIC-BOT3, 139 PICBUS, 114 PICBUS, 75 PICME-TR, 28, 73 PIC-TR, 51 PIE1, 62, 264 PIE2, 62, 63 PIE3, 264 Piezoeléctrico, 77 Pila, 38, 249 PIR1, 62, 63, 263 PIR2, 62, 63, 245, 263 PIR3, 263

POP, 278 POP.S, 310 POR#, 88 POR, 58, 84 PORT, 281 PORTA, 81 Postdivisor, 104 PPICBUS, 76 PR2, 123 Predivisor, 104 Prioridad, 259

Procesadores Digitales de Seủales, 317

PRODH, 229 PRODL, 229

Protección de Código, 66 PSP, 86

PSPIE, 61 PSPMODE, 86 PSV, 313, 315 Puerta A, 81, 143, 28 Puerta B, 59, 83, 283

Puerta C, 85, 283 Puerta D, 85, 284 Puerta E, 86, 284 Puerta F, 285 Puerta G, 286 Puerta H, 286 Puerta J, 287 Puerto de Tabla, 250 pull-up, 59 PUSH, 278 PUSH.S, 310

PWM, 54, 79, 124, 299, 325,356

PWRT, 89 PWRTE#, 78 RA0/AN0, 81 RA1/AN1, 81 RA2/AN2, 81 RA4/T0CKI, 81 RA5/AN4/SS#, 81 Radio frecuencia, 200 RAM, 39, 40, 41 RB<7-4>, 84 RB0/INT, 85 RB3/PGM, 83, 93 RB6/PGC, 83 RB7/PGD, 83 RBIF, 85 RBO/INT, 59 RBPU#, 84 RCALL, 277 RCON, 243, 260 RCSTA, 212, 213 Recepción, 193 Receptor, 203

asíncrono, 212 Reconocimiento, 179,193 Registro

de control de interrupciones, 61

de Estado, 39, 57, 313 de permiso de interrupciones

2, 62, de Trabajo W, 36 OPTION, 60 Registros

Específicos, 39 sombra, 310 Relés, 79

Reloj/calendario, 163 Repertorio, 47

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 371 - 394)

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

(394 trang)