Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P.G.F.
MICROCONTROLADOR
Circuito integrado programable capaz de ejecutar las ordenes o comandos que estn grabados en su memoria. Es un computador dedicado destinado a gobernar una tarea en especfico por lo cual tiene unas caractersticas limitadas (pero con una gran potencialidad).
APLICACIN DE C
Frenos ABS, Vidrios electricos, Espejos electricos, aire acondicionado, Air Bag, Radio, pantallas de video, reloj, tacometro, velocimetro, inyectores, enfriamiento del motor, etc
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
APLICACIN DE C
DIFERENCIA P y C
CPU
ROM
ROM RAM
CPU
PUERTOS PERIFERICOS
MICROPROCESADOR
PIC 16F84A
Programacin con 35 instrucciones Max. Velocidad de operacin - 20 MHz Memoria de programa de 1024 palabras 68 bytes de memoria RAM 64 bytes de memoria EEPROM Instrucciones de 14-bit Datos de 8-bit
cuatro Interrupciones - Externa por el pin RB0/INT - Desbordamiento timer TMR0 - Cambios sobre los pines PORTB<7:4> - Completar escritura EEPROM
ARQUITECTURA PROCESADORES
Memoria de
Bus comn de direcciones
Instrucciones + Datos
8
Bus de Datos e Instrucciones
ARQUITECTURA PROCESADORES
10 9
Memoria de Instrucciones
Memoria de Datos
14
8
Bus de Datos
1K x 14
Bus de instrucciones
512 x 8
MEMORIA DE PROGRAMA
ROM: Se graba en el chip durante el proceso de su fabricacin. EPROM: Se graba desde un perifrico especial de un PC. Posee una ventana de cristal, la cual es sometida a rayos ultravioleta para ser borrada. OTP: Se graba como la EPROM, pero una sola vez. EEPROM: Procesos de escritura/borrado electricamente con un PC. Garantizan 1000.000 ciclos E/B. FLASH: Procesos de escritura/borrado electricamente con un PC. Garantizan 1000 ciclos E/B. Son de Bajo consumo y mayor confiabilidad.
MEMORIA DE PROGRAMA
0000 H
VECTOR RESET
1k EEPROM
0004 H
VECTOR INTERRUPCIN
PC
NIVEL 1
03FF H 0400 H
NO IMPLEMENTADO
NIVEL 2 NIVEL 3
. . .
1FFF H
NIVEL 8
13
MEMORIA DE DATOS
INDF TMR0 PCL ESTADO FSR PUERTO A PUERTO B EEDATA EEADR PCLATH INTCON 68 REGISTROS DE PROPOSITO GENERAL INDF OPTION PCL ESTADO FSR TRIS A TRIS B EECON1 EECON2 PCLATH INTCON
SFR
GPR
MAPEADOS EN EL BANCO 0
BANCO 0
BANCO 1
1 1 1 1 0 0 0 0
RB7 . . . RB0 REGISTRO TRISA (BANCO 1)
- - - 1 0 1 0 0
RA4 Si el bit asociado al pin esta: 0 el pin acta como salida 1 el pin acta como entrada . . . RA0 Pines de salida: RB3, RB2, RB1, RB0, RA3, RA1, RA0 Pines de entrada: RB7, RB6, RB5, RA4, RA2
1 1 1 1 0 0 0 0
RB7 . . . RB0
0 1 0 1 0 0 1 1
Entradas Salidas
REGISTRO DE ESTADO
7 6 5 4 3 2 1 0
Z
R/W
DC
R/W
C
R/W
RP1-RP0: 00 Accede al banco 0 01 Accede al banco 1 Z: Cero 1 El resultado de una instruccin lgico-aritmtica ha sido 0 0 El resultado de una instruccin lgico-aritmtica NO ha sido 0 DC: (acarreo o llevada en el 4 bit) 1 Ocurre Acarreo 0 No ocurrio Acarreo C: (acarreo o llevada en el 8 bit) 1 Ocurre Acarreo 0 No ocurrio Acarreo
INSTRUCCIN MOVLW k
K W
Ejm: (obsrvese las diferentes formas en que se expresa el decimal 7 movlw d7 movlw .7 movlw b00000111 REGISTRO DE TRABAJO W (WORK)
movlw .7
INSTRUCCIN MOVWF f
W
Ejm:
movwf PORTB
0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 x x x x x x x x
Movwf PORTB
Registro PORTB
1 0 1 1 0 1 0 1
Destino
1 1 0 0 1 1 1 0
movf PORTB,0 W R. ESTADO <2> : Z
1 1 0 0 1 1 1 0
PORTB Ejemplo 2:
=0
0 0 0 0 0 0 0 0
movf PORTB,1 PORTB R. ESTADO <2> : Z
0 0 0 0 0 0 0 0
PORTB
=1
f,b
x x x x x x x x
PORTB
bsf PORTB,1
x x x x x x 1 x
PORTB
f,b
x x x x x x x x
PORTB
bcf PORTB,7
0 x x x x x x x
PORTB
INSTRUCCIN CLRF f
00h 1
Ejm: clrf PORTA
f z
0 0 0 0 0 0 0 0 x x x x x x x x
PORTA clrf PORTA PORTA
R. ESTADO <2> : Z
=1
PROGRAMACIN
;AUTOR: P.G.F. ;PIC: 16F84A ;FUNCION: Prende un LED (RA0) si un pulsador NA (RB0) envia un 1 logico ;CARACTERISTICAS: ;OSCILADOR: XT ;WATCHDOG TIMER: OFF ;POWER UP TIMER: ON ;CODE PROTECT: OFF INCLUDE ORG goto ORG bsf clrf movlw movwf bcf clrf clrf movf movwf goto END "P16F84A.Inc" 00 INICIO 05 STATUS,RP0 TRISA b'00000001' TRISB STATUS,RP0 PORTA PORTB PORTB,0 PORTA CICLO
INICIO
;Salta al banco 1 ;Puerto A como salida ;RB0 como entrada ;Salta al banco 0 ;Pone un 0 logico en las salidas ;Pone un 0 logico en las salidas ;W = PORTB ;PORTA = W
CICLO
PROGRAMACIN
INCLUDE "P16F84A.Inc" ;************************** DEFINICION DE REGISTROS***************************** CBLOCK .12 VALOR1 ENDC ;*************************************PROGRAMA*************************************** ORG 00 GOTO INICIO ORG 05 ;**************************CONFIGURACION DE PUERTOS************************** INICIO bsf STATUS,5 ;Salta al banco 1 movlw b'11111' movwf TRISA ;Puerto A como entrada clrf TRISB ;Puerto B como salida bcf STATUS,5 ;Salta al banco 0 ;__________________________________________________ clrf PORTB ;borra puerto B por seguridad movf PORTA,0 ;W = PORTA movwf VALOR1 ;VALOR1 = W movf VALOR1,1 ;Z=1 si PORTA = b'0000' movlw .7 ;W = 7 (decimal) movwf PORTB ;PORTB = 7 (decimal) movf PORTB,1 ;Z=0 debido a PORTB no es igual cero END
TIPOS DE OSCILADORES
OSCILADOR TIPO RC:
REXT 10 K 10 K 10 K
TIPOS DE OSCILADORES
OSCILADOR TIPO HS XT - LP:
FRECUENCIA DE FUNCIONAMIENTO
Con la frecuencia de trabajo se establece la velocidad en la ejecucin de las instrucciones. 1 CicloInstruccin= 4 * TReloj TReloj = 1 / FrecuenciaTrabajo
TReloj = Periodo del reloj fTrabajo = Frecuencia de trabajo
FRECUENCIA DE FUNCIONAMIENTO
1 CicloInstruccin= 4 * TReloj TReloj = 1 / FrecuenciaTrabajo
FRECUENCIA DE FUNCIONAMIENTO
Las instrucciones se ejecutan en un tiempo igual a un CicloInstruccin excepto las de salto que tardan dos. Un programa contiene 100 instrucciones de las cuales 25 son de salto (cristal de 4 MHz) 1 CicloInstruccin= 4 / FrecuenciaTrabajo = 1s El programa tarda: 75 * CicloInstruccin+ 25 * 2 * CicloInstruccin El programa tarda: 125 s
foW
;REG1 = REG1 1 ;si REG1 0 se ejecuta la instruccin ;si REG1 = 0 se ejecuta la instruccin
REG1
0 0 0 0 0 0 1 1
decfsz goto goto REG1,1 SUBRUTINA1 SUBRUTINA2
REG1
0 0 0 0 0 0 0 1
decfsz goto goto REG1,1 SUBRUTINA1 SUBRUTINA2
Ejm:
Ejm:
RETARDOS
;REGISTROS PARA CONSTRUIR RUTINA DE RETARDO CBLOCK .12 REG1, REG2, REG3 ENDC ;VALORES PARA CONSTRUIR RUTINA DE RETARDO VALOR1 EQU d'70' ; retardo 1053850 microsegundos VALOR2 EQU d'70' VALOR3 EQU d'70 ;SUBRUTINA DE RETARDO: RETARDO movlw VALOR1 movwf REG1 TRES movlw VALOR2 movwf REG2 DOS movlw VALOR3 movwf REG3 UNO decfsz REG3,1 goto UNO decfsz REG2,1 goto DOS decfsz REG1,1 goto TRES retlw 0 ;W = 70 ;REG1 = W ;W = 70 ;REG2 = W ;W = 70 ;REG3 = W ;DECREMENTA REG3 Y SI QUEDA 0 SALTA A UNO ;DECREMENTA REG2 Y SI QUEDA 0 SALTA A DOS ;DECREMENTA REG1 Y SI QUEDA 0 SALTA A TRES
REG1
1 0 1 0 0 0 1 1
btfsc goto goto REG1,7 SUBRUTINA1 SUBRUTINA2
REG1
0 0 1 0 0 0 0 1
btfsc goto goto REG1,7 SUBRUTINA1 SUBRUTINA2
Ejm:
Ejm:
REG1
0 0 1 0 0 0 1 1
btfss goto goto REG1,7 SUBRUTINA1 SUBRUTINA2
REG1
1 0 1 0 0 0 0 1
btfss goto goto REG1,7 SUBRUTINA1 SUBRUTINA2
Ejm:
Ejm: