50
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 [email protected] Espinher Electroingeniería www.espinher.mx

Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Embed Size (px)

Citation preview

Page 1: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

[email protected]

inher

Electro

ingen

iería

www.espin

her.m

x

Page 2: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 3: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 4: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 5: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 6: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 7: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 8: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 9: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 10: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 11: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Universo 32-bit

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 12: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 13: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Universo 8-bit a 16-bit

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 14: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Familia 8-bit Microchip

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 15: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Aplicación: Control y automatización industrial

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 16: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 17: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 18: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 19: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Aplicación industrial 0% PLC

PIC18F87K90

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 20: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 21: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 22: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 23: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 24: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 25: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Aplicacion REAL

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 26: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 27: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 28: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

www.espinher.mx/cursos/microchip/

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 29: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 30: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

PIC10F322PIC16F877APIC18F4550PIC18F87K90

8-bit

Ensamblador a CEspinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 31: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Fundamentos: Registros de Funciones Especiales SFR

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 32: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

7 6 5 4 3 2 1 0PIC10F322 0x70

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 33: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

7 6 5 4 3 2 1 0PIC16F877A 0xA8

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 34: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

7 6 5 4 3 2 1 0PIC18F4550 0x82

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 35: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Special Features of the CPU

Instruction Set SummaryEspinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 36: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

{}

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 37: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Bits de Configuración

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 38: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Bits de Configuración

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 39: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Bits de Configuración

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 40: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 41: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x

Page 42: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 43: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 44: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 45: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 46: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 47: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 48: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 49: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

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

Page 50: Desde Ensamblador a C. … · TRISH = 0x00 Pantalla LCD 0000,0000 TRISJ = 0xFF (OHFWURLQJHQLHUtD ZZZ HVSLQKHU P ... 0000,1111 0001,1110 1 electro-válvula y 1 termostato …

Operaciones orientadas a BYTES

10F322 16F877A18F4550 18F87K90

Espinh

er Elec

troing

enier

ía

www.espin

her.m

x