Upload
nguyenbao
View
221
Download
0
Embed Size (px)
Citation preview
Programación de microcontroladores usos y aplicaciones.
Desde Ensamblador a C.
Familias 8-bit de Microchip: PIC10F, PIC12F, PIC16F y PIC18F
www.espinher.mx/cursos/microchip/
Espinher Electróingeniería, S.A. de C.V.Ing. Héctor Gómez
Gerente de Producto www.espinher.mx
inher
Electro
ingen
iería
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
El mundo gira gracias a los microcontroladores
Existen miles de variedades, especificaciones, marcas y modelos.Esp
inher
Electro
ingen
iería
www.espin
her.m
x
uCMicrocontroladores
uPMicroprocesador
Sistemas Integrados
Lenguaje Ensamblador ASM
Propósito específico 8-bit, 16-bit, 32-bit
Propósito general 32-bit a 64-bit
Lenguaje C o C++Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
uCMicrocontroladores
uPMicroprocesador
Especificaciones
Frecuencia de operación
>1GHz
Frecuencia de operación <500MHz
RAM: 1MB ROM: 4MB
RAM: Config > 4,096MB
ROM: Config > 131,072MBEsp
inher
Electro
ingen
iería
www.espin
her.m
x
uCMicrocontroladores
uPMicroprocesador
Aplicaciones
• Controlador Lógico Programable o PLC
• Control de Motores • Control Industrial • Control de LED • Instrumentación • Sensores y procesos
• Sistemas Operativos: Linux, Windows, RTOS
• Computadoras: Teléfonos o Tabletas.
• Comunicaciones: SATA, Bluray, Video,
Datos y voz. • InstrumentaciónEsp
inher
Electro
ingen
iería
www.espin
her.m
x
uC
uP
Ejemplo de aplicación
uC uC uC uC uC uC
OS Linux Android
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Universo 32-bit
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
ssd
Familia de ARM
STM32 & KL25Z “Freedom”STM32 “Discovery”
Renesas SynergySAM3X8E “Arduino Due”
PIC32MZ dsPIC33
Raspberry Pi 3Samsung Exynos 3110Nvidia Tegra, 2, 3, 4Exynos 5 Samsung Galaxy
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Universo 8-bit a 16-bit
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Familia 8-bit Microchip
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Aplicación: Control y automatización industrial
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Elementos de un PLC
PLC
Pantalla LCD: alfanumérica o gráfica, monocromática o color,
opción táctil
Control de
Proceso
Eléctro Válvulas
Interruptores de límite
Entradas y salidas
Contactor: Motores,
calefactores, etc
Preso, termostatos
Comunicación: Profibus, Modbus,
Fieldbus, AS-i, HART, SERCOS, Sinec, SyncNet,
Ethernet,CAN Bus
Interfaz de Usuario: Teclado matricial,
tablero de operador, botonera,
Teclado USB
Otro PLC
Sensores analógicos: temperatura, presión,
luxes, conteo, pH, humedad.
RPM, contador, tiempo, frecuencia, distancia
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Periféricos del 87K90Puerto J excelente para
bus paralelo de 8-bit
Puerto GPuerto E Puerto FCanales PWM 6 para control
trifásicoPuerto D
• USART RS232, RS485
• SPI • I2C • Ethernet* • CAN Bus* • WiFi*
Puerto B para control de teclado matricial u
otras entradas de usuario
Otros uC
Convertidor Analógico a Digital de 12-bit con
24 canales. Temporizadores
13 canales
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
18F87K90 VS. 18F4550Característica PIC18F87K90 PIC18F4550
ROM, RAM, EEPROM 128KB, 4KB, 1KB 32KB, 2KB, 0.2KBFrequencia Max 64MHz (62.5ns) 48MHz* (83.3ns)Puertos E/S ó I/O 69 pines ABCDFGHJ 35 pines ABCDE*
Puertos ADC 24 + 12 Diff 13Timers 8-bit/16-bit 6 / 5 = 13 1 / 3 = 4
Canales PWM 3 (6) 1 (2)USART, SPI, I2C 2, 2, 2 1, 1, 1Reloj Calendario A, M, S, D, H, M, s No
Interrupciones Ext. 4 3Voltaje de Op. 1.8V a 5.5V 2.0V a 5.5V
USB No USB 2.0 12Mbit/sEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
Aplicación industrial 0% PLC
PIC18F87K90
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Aplicacion REAL
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
www.espinher.mx/cursos/microchip/
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
PIC10F322PIC16F877APIC18F4550PIC18F87K90
8-bit
Ensamblador a CEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
Fundamentos: Registros de Funciones Especiales SFR
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
7 6 5 4 3 2 1 0PIC10F322 0x70
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
7 6 5 4 3 2 1 0PIC16F877A 0xA8
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
7 6 5 4 3 2 1 0PIC18F4550 0x82
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Special Features of the CPU
Instruction Set SummaryEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
{}
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Bits de Configuración
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Bits de Configuración
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Bits de Configuración
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Configuración de puertos:Habilitar si es para recibir información del exterior
“Entrada” Registro TRISn = Unos 1111,1111
1nput
Habilitar si es para entregar información al exterior “Salida”
Registro TRISn = Ceros 0000,0000 0utput
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Extraer e inyectar información al microcontrolador
PIC10F3226 pines
PIC16F877A40 pines
PIC18F455040 pines
PIC18F87K9080 pines Entrada Salida
TRISA * TRISA TRISA TRISA 0xFF 0x00
TRISB TRISB TRISB 0xFF 0x00
TRISC TRISC TRISC 0xFF 0x00
TRISD TRISD TRISD 0xFF 0x00
TRISE * TRISE * TRISE 0xFF 0x00
TRISF 0xFF 0x00
TRISG 0xFF 0x00
TRISH 0xFF 0x00
TRISJ 0xFF 0x00Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Extraer e inyectar información al microcontrolador
PIC18F87K9080 pines Entrada Salida Valor
Binario
TRISA = 0xFF DIP Switch 1111,1111
TRISB = 0x00 LEDs 0000,0000
TRISC = 0xF0 4 Entradas 4 Salidas 1111,0000
TRISD = 0xaa 4 Entradas 4 Salidas 1010,1010
TRISE = 0xFF Termostatos 1111,1111
TRISF = 0x00 Electro-Válvulas 0000,0000
TRISG = 0xFF Botones 1111,1111
TRISH = 0x00 Pantalla LCD 0000,0000
TRISJ = 0xFF Sensores 1111,1111Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Extraer e inyectar información al microcontrolador
TRISn PORTn Aplicación “Lógica positiva”
0000,0000 1111,1111 Activa todas las electro-válvulas del puerto
0000,0000 0000,1111 Activa sólo 4 electro-válvulas del puerto
0000,0000 0000,0001 Activa sólo 1 electro-válvulas del puerto
1111,1111 1111,1111 8 Termostatos están activados
1111,1111 0000,1111 Sólo 4 termostatos están activados
1111,1111 0000,0001 Sólo 1 termostato esta activado
0000,1111 0000,1111 Electro-válvulas apagadas, termostatos activos
0000,1111 0001,1110 1 electro-válvula y 1 termostato desactivado
0000,1111 1111,000 4 electro-válvulas activas y 0 termostatosEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
Catalogo de InstruccionesFundamentos de Lenguaje EnsambladorInstrucción Significado Descripción
movlw Move Literal to Work WREG <= 0xAA
movwf Move Work to Floc OSCCON <= WREG
movf Move Floc to Work WREG <= ADCON0
bcf Bit Clear FlocBit TMR0ON de T0CON <= 0
Bit 7 de T0CON <= 0
bsf Bit Set FlocBit TMR0ON de T0CON <= 1
Bit 7 de T0CON <= 1
btfsc Bit Test Floc Skip if Clear Brinca si el bit es 0
btfss Bit Test Floc Skip if Set Brinca si el bit es 1
call Es utilizado para ir a sub rutinas
goto Es utilizado para ir a una dirección de memoriaEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
Catalogo de InstruccionesFundamentos de Lenguaje EnsambladorInstrucción Operador Descripción
movlw0xAA
b’10101010’ .170
WREG <= 0xAA
movwf OSCCON OSCCON <= WREG
movf ADCON0 WREG <= ADCON0
bcfT0CON,TMR0ON
T0CON,7Bit TMR0ON de T0CON <= 0
Bit 7 de T0CON <= 0
bsfT0CON,TMR0ON
T0CON,7Bit TMR0ON de T0CON <= 1
Bit 7 de T0CON <= 1
btfsc ADCON0,2 Brinca si el bit 2 de ADCON0 es 0
btfss ADCON0,2 Brinca si el bit 2 de ADCON0 es 1
call PERRO Ejecuta la instrucción debajo de PERRO
goto 0xaff Se posiciona en dicha dirección
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Instrucción Operador Descripciónaddwf addlw
ADRESL 0xAA
WREG <= WREG + ADRESL WREG <= WREG + 0xAA
subwf sublw
TMR0 0x8F
WREG <= TMR0 - WREG WREG <= 0x8F - WREG
andwf andlw
PERRITO 0xC5
WREG <= wreg & PERRITO WREG <= wreg & 0xC5
iorwf iorlw
GATITO 0x01
WREG <= wreg | GATITO WREG <= wreg | 0x01
xorwf xorlw
OSCCON 0x87
WREG <= wreg ^ OSCCON WREG <= wreg ^ 0x87
clrf T0CON Limpia con ceros el registro T0CON
decf ADRESH Decrementa en 1 el registro
decfsz PERRO Decrementa y brinca si es cero
incf GATITO Incrementa en 1 el registro
incfsz CONTADOR Incrementa y brinca si es cero
comf PORTB Invierte cada bit del registro PORTB
Operaciones orientadas a BYTES y LiteralesInstrucción Operador Descripciónaddwf addlw
ADRESL 0xAA
WREG <= WREG + ADRESL WREG <= WREG + 0xAA
subwf sublw
TMR0 0x8F
WREG <= TMR0 - WREG WREG <= 0x8F - WREG
andwf andlw
PERRITO 0xC5
WREG <= wreg & PERRITO WREG <= wreg & 0xC5
iorwf iorlw
GATITO 0x01
WREG <= wreg | GATITO WREG <= wreg | 0x01
xorwf xorlw
OSCCON 0x87
WREG <= wreg ^ OSCCON WREG <= wreg ^ 0x87
clrf T0CON T0CON <= 0x00
decf ADRESH Decrementa en 1 el registro
decfsz PERRO Decrementa y brinca si es cero
incf GATITO Incrementa en 1 el registro
incfsz CONTADOR Incrementa y brinca si es cero
swapf TRISC Intercambia nibbles el registro TRISCEspinh
er Elec
troing
enier
ía
www.espin
her.m
x
Instrucción Operador Descripciónsetf ADRESH ADRESH <= 0xFF
btg PORTD,RD0 Cambia el estado del bit RD0
cpfseq PERRITO Compara PERRITO, brinca si es =
cpfsgt GATITO Compara GATITO, brinca si es >
cpfslt T0CON Compara T0CON, brinca si es <
decfsz PERRO Decrementa y brinca si no es cero
incfsz CONTADOR Incrementa y brinca si no es cero
movff CONTA1,CONTA2 CONTA2 <= CONTA1
mulwf PORTC PRODH:PRODL <= PORTC * WREG
mullw 0xF1 PRODH:PRODL <= 0xF1 * WREG
tstfsz PORTE Brinca si PORTE es 0
negf PRODH Negativo de PRODH
tblrd Instrucción para lectura de tablas
tblwt Instrucción para escritura de tablas
Operaciones orientadas a BYTES y Literales
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x
Operaciones orientadas a BYTES
10F322 16F877A18F4550 18F87K90
Espinh
er Elec
troing
enier
ía
www.espin
her.m
x