microcontroladores y lenguaje ensamblador
DESCRIPTION
la siguiente presentación muestra los conceptos básicos de un microcontrolador y los primeros pasos en programación en lenguaje ensambladorTRANSCRIPT
![Page 1: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/1.jpg)
UNIVERSIDAD PRIVADA ANTENOR ORREGO
MICROCONTROLADOR PIC DE MICROCHIP
INGENIERÍA ELECTRÓNICA
Ing. Lenin Llanos León
![Page 2: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/2.jpg)
Familias de uC PIC
Podemos dividirlos en tres grandes familias:
PIC 10F
Gama Baja
PIC 12F
PIC 16F
Gama Media
PIC 18F
Gama Alta
PIC 24F
DSPIC PIC32
![Page 3: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/3.jpg)
Familias de uC PIC
Cada una de estas familias ofrecen distintas
prestaciones y características, que permiten al
usuario escoger el que más se adapte a sus
necesidades.
En esta primera parte nos enfocaremos al estudio
de microcontroladores de gama media, en
particular al PIC 16F88.
![Page 4: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/4.jpg)
Familia 16FP
IC
16F
84A
1.75KB18 pin
8 bit – Timer
PIC
16
F62
8A
3.5KB18 pin
8 bit – Timer16 bit – Timer
USART
PIC
16
F87
6A14KB28 pin
8 bit – Timer16 bit – Timer
USARTSPI – I2C
ADCP
IC
16F
877A
14KB40 pin
8 bit – Timer16 bit – Timer
USARTSPI – I2C
ADC
PIC
16
F88
7KB18 pin
8 bit – Timer16 bit – Timer
USARTSPI – I2C
ADC
![Page 5: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/5.jpg)
PIC 16F88
18 Pines
7 KB memoria de
programa
368 bytes memoria RAM
256 bytes EEPROM
2 Comparadores
7 Canales A/D
1 Canal PWM
Comunicación Serial, SPI,
I2CP
IC
16F
88
![Page 6: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/6.jpg)
PIC 16F88
Una de las razones de que se seleccionó este PIC
es que podemos exportar fácilmente código
existente de otras referencias.
Por ejemplo si tenemos código para el PIC
16F84A, lo podremos utilizar con nuestro PIC
16F88
PIC
16
F88
PIC
16
F84
A
![Page 7: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/7.jpg)
Herramientas para Programación
Entorno de Desarrollo, es decir el software que
nos permitirá escribir nuestro código fuente y
traducirlo a lenguaje de máquina para que
nuestro microcontrolador lo entienda.
![Page 8: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/8.jpg)
Lenguajes de Programación
Bajo Nivel
Assembler
Alto Nivel
C – Basic – Otros
![Page 9: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/9.jpg)
Lenguaje Assembler
VENTAJAS DESVENTAJAS
Velocidad rápida en ejecución.
Ahorro en memoria de
programa.
Pocas instrucciones.
Conocimiento a fondo del
funcionamiento del
microcontrolador.
Entorno de desarrollo gratuito
(MPLAB)
Un poco difícil para el
principiante.
Susceptible a errores.
Ardua tarea para encontrar
errores.
![Page 10: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/10.jpg)
Lenguaje de Alto Nivel
VENTAJAS DESVENTAJAS
Es de fácil programación.
Recomendado para programas
extensos.
Ideal para hacer programas con
operaciones matemáticas
complejas.
Poseen una extensa colección
de librerías.
No compatible entre marcas
entre si.
Mayor consuma de memoria.
Costo elevado.
![Page 11: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/11.jpg)
Hardware de Programación
![Page 12: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/12.jpg)
Tipos de Programadores
![Page 13: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/13.jpg)
Herramientas de Simulación
![Page 14: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/14.jpg)
UNIVERSIDAD PRIVADA ANTENOR ORREGO
MICROCONTROLADOR PIC 16F88
INGENIERÍA ELECTRÓNICA
Ing. Lenin Llanos León
![Page 15: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/15.jpg)
Pines del PIC 16F88
![Page 16: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/16.jpg)
Circuito de Alimentación
![Page 17: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/17.jpg)
Circuito de Reloj
![Page 18: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/18.jpg)
Circuito de Reloj con Cristal
![Page 19: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/19.jpg)
Circuito de Reloj con Resonador
![Page 20: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/20.jpg)
Circuito de Reloj RC
![Page 21: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/21.jpg)
Circuito de Reloj Interno
![Page 22: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/22.jpg)
Pin Reset (Master Clear)
![Page 23: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/23.jpg)
Circuito de Reset
![Page 24: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/24.jpg)
Arquitectura Interna
Procesador Central Memoria de Programa Memoria de Datos
![Page 25: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/25.jpg)
Memoria de Programa
![Page 26: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/26.jpg)
Memoria de Programa
Memoria Flash de 4K palabras (14 bits) y direccionada por el PC que tiene un tamaño de 13 bits.
Pila con 8 niveles de profundidad.
El vector de reset ocupa la dirección 0000h y el vector de interrupción la 0004h.
![Page 27: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/27.jpg)
Memoria de Datos
Posiciones implementadas en RAM y otra en EEPROM.
En la RAM se alojan los registros fundamentales para el funcionamiento del procesador y manejo de periféricos (STATUS, TRISA, PORTA), así como los registro de Propósito General.
La memoria EEPROM sirve para guardar datos de forma no volátil.
![Page 28: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/28.jpg)
Memoria de Datos
La RAM consta de 4 bancos con 128 bytes cada uno.
Para seleccionar el banco que se desea acceder se usan los bits 5 (RP0) y 6 (RP1) del registro ESTADO (STATUS).
RP0 RP1 BANCO
0 0 BANCO 1
0 1 BANCO 2
1 0 BANCO 3
1 1 BANCO 4
![Page 29: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/29.jpg)
Memoria de Datos
![Page 30: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/30.jpg)
Tamaños de Memoria
![Page 31: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/31.jpg)
REGISTRO ESTADO (STATUS)
Es el registro más usado pues sus bits están destinados a controlar las funciones vitales del procesador.
Está duplicado en las cuartas posiciones de cada banco (03h,83h,103h,183h)
![Page 32: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/32.jpg)
REGISTRO ESTADO (STATUS)
Los tres bits de menos peso son los señalizadores de ciertas condiciones en las operaciones lógico – aritméticas. Z: Señalizador de cero. Se pone a 1 cuando el
resultado es cero. C: Acarreo – llevada del 8º bit. Se pone a uno
automáticamente cuando existe un acarreo en el bit de más peso en las instrucciones de suma. También actúa como señalizador en las instrucciones de resta, pero en este caso la correspondencia es inversa, si vale 0 es llevada.
DC: Acarreo – llevada del 4º bit. Funciona igual que el señalizador C, pero para el 4º bit.
![Page 33: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/33.jpg)
REGISTRO ESTADO (STATUS)
Los señalizadores PD# y TO#, son activos por nivel bajo (#) y sirven para indicar la causa que ha provocado la reinicialización del procesador. PD#: Se activa a 0 al ejecutarse la instrucción SLEEP.
Se pone a uno automáticamente tras la conexión de alimentación o bien al ejecutarse la instrucción CLRWDT
TO#: Se activa a nivel bajo al desbordarse el perro guardián. Toma el valor 1 tras la conexión de alimentación o al ejecutarse las instrucciones CLRWDT o SLEEP.
![Page 34: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/34.jpg)
REGISTRO ESTADO (STATUS)
Finalmente los tres bits de más peso del registro de estado se emplean para seleccionar el banco de la RAM al que se desea acceder.
El bit IRP se usa conectado con el bit de más peso del registro FSR para elegir el banco de RAM en el direccionamiento indirecto.
RP0 RP1 BANCO
0 0 BANCO 1
0 1 BANCO 2
1 0 BANCO 3
1 1 BANCO 4
![Page 35: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/35.jpg)
UNIVERSIDAD PRIVADA ANTENOR ORREGO
LENGUAJE ASSEMBLER
INGENIERÍA ELECTRÓNICA
Ing. Lenin Llanos León
![Page 36: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/36.jpg)
Lenguaje Assembler
Lenguaje de Máquina
![Page 37: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/37.jpg)
Lenguaje Assembler
Instrucciones de Programa
![Page 38: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/38.jpg)
REPERTORIO DE INSTRUCCIONES
Está compuesto por 35 instrucciones que pueden ser agrupadas en los siguientes grupos: Instrucciones de carga. Instrucciones aritméticas. Instrucciones lógicas. Instrucciones de bit. Instrucciones de salto. Instrucciones para manejo de subrutinas. Instrucciones especiales.
![Page 39: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/39.jpg)
INSTRUCCIONES DE CARGA
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
CLRF f 00 → (f) Z
CLRW 00 → (w) Z
MOVF f,d(f) → (destino)
d=0 : destino = wd=1 : destino = f
Z
MOVLW k k → (W) Ninguno
MOVWF f (w) → (f) Ninguno
![Page 40: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/40.jpg)
INSTRUCCIONES ARITMÉTICAS
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
ADDLW k (w) + k → (w) C, DC, Z
ADDWF f,d (w) + (f) → (destino) C, DC, Z
DECF f,d (f) – 1 → (destino) Z
INCF f,d (f) + 1 → (destino) Z
SUBLW k k – (w) → (w) C, DC, Z
SUBWF f,d (f) – (w) → (destino) C, DC, Z
![Page 41: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/41.jpg)
INSTRUCCIONES LÓGICAS
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
ANDLW k (w) and k → (w) Z
ANDWF f,d (w) and (f) → (destino) Z
COMF f,d (/f) → (destino) Z
IORLW k (w) or k → (w) Z
IORWF f,d (w) or (f) → (destino) Z
![Page 42: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/42.jpg)
INSTRUCCIONES LÓGICAS
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
RLF f,dRota (f) a la izquierda a
través del carry → (destino) C
RRF f,dRota (f) a la derecha a
través del carry → (destino) C
SWAPF f,dIntercambia los niveles de
(f) → (destino) Ninguno
XORLW k (w) xor k → (w) Z
XORWF f,d (w) xor (f) → (destino) Z
![Page 43: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/43.jpg)
INSTRUCCIONES DE BIT
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
BCF f,bPone a cero el bit ‘b’ del
registro f Ninguno
BSF f,bPone a uno el bit ‘b’ del
registro f Ninguno
![Page 44: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/44.jpg)
INSTRUCCIONES DE SALTO
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
BTFSC f,b Salta si el bit ‘b’ de f es cero Ninguno
BTFSS f,b Salta si el bit ‘b’ de f es uno Ninguno
decfsz f,d (f) – 1 → (destino)y salta si es cero
Ninguno
incfsz f,d(f) + 1 → (destino)
y salta si es cero Ninguno
goto k Salta a la dirección ‘k’ Ninguno
![Page 45: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/45.jpg)
INSTRUCCIONES PARA MANEJO DE SUBRUTINAS
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
CALL k Llamada a subrutina Ninguno
RETFIERetorno de una
Interrupción Ninguno
RETLW k Retorno con un literal en w Ninguno
RETURN Retorno de una subrutina Ninguno
![Page 46: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/46.jpg)
INSTRUCCIONES ESPECIALES
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
CLRWDT Borra Timer del Watchdog /TO, /PD
NOP No operación Ninguno
SLEEPEntra en modo bajo
consumo /TO, /PD
![Page 47: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/47.jpg)
PRIMER PROGRAMA
Encender un LED conectado en RB0 cada vez que el interruptor este cerrado.
RA7/OSC1/CLKIN16
RB0/INT/CCP16
RB1/SDI/SDA7
RB2/SDO/RX/DT8
RB3/CCP19
RB4/SCK/SCL10
RB5/SS/TX/CK11
RB6/AN5/T1OSO/T1CKI12
RB7/AN6/T1OSI13
RA0/AN017
RA1/AN118
RA2/AN2/CVREF/VREF-1
RA3/AN3/C1OUT/VREF+2
RA4/AN4/T0CKI/C2OUT3
RA6/OSC2/CLKOUT15
RA5/MCLR4
U1
PIC16F88
FREQ=4MHz
R110k
R2
10k
R3
330
D1LED-GREEN
![Page 48: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/48.jpg)
PRIMER PROGRAMA
1º Crear un fichero *asm, donde irá nuestro código.
![Page 49: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/49.jpg)
PRIMER PROGRAMA
2º Guardamos nuestro fichero *asm, donde irá nuestro código.
![Page 50: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/50.jpg)
PRIMER PROGRAMA
3º Crear nuestro proyecto. (Click Proyect Wizard..)
![Page 51: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/51.jpg)
PRIMER PROGRAMA
4º Click en Siguiente.
![Page 52: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/52.jpg)
PRIMER PROGRAMA
5º Seleccionamos el Pic con el que deseamos trabajar.
![Page 53: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/53.jpg)
PRIMER PROGRAMA
6º Seleccionamos el Lenguaje de Programación y Compilador (MPASM).
![Page 54: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/54.jpg)
PRIMER PROGRAMA
7º Seleccionamos el Nombre y la Ubicación donde se guardará nuestro proyecto.
![Page 55: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/55.jpg)
PRIMER PROGRAMA
8º Agregamos nuestro Archivo (*asm) a nuestro proyecto y siguiente.
![Page 56: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/56.jpg)
PRIMER PROGRAMA
9º Click Finalizar.
![Page 57: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/57.jpg)
PRIMER PROGRAMA
10º Nos aparecerá la siguiente ventana.
![Page 58: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/58.jpg)
PRIMER PROGRAMA
11º Doble Click en nuestro archivo *asm y abrirá la ventana para escribir nuestro código.
![Page 59: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/59.jpg)
PRIMER PROGRAMA
Diagrama de Flujo para la solución:
SINO
INICIO
Definición de PIC y Variables
Configuración de Puertos
Led Apagado
Pulsador Presionado
?
Prender Led
Apagar Led
![Page 60: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/60.jpg)
PRIMER PROGRAMA
Definición de PIC y Variables
list p=16f88
#include p16f88.inc
__CONFIG _CONFIG1, _CPD_OFF & _CP_OFF & _DEBUG_OFF &
_LVP_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF
&_WRT_PROTECT_OFF & _XT_OSC & _BODEN_OFF
Led equ 0
Pulsador equ 0
![Page 61: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/61.jpg)
PRIMER PROGRAMA
org 0x00goto Inicioorg 0x05
Inicio bsf STATUS,RP0bsf TRISA,0bcf TRISB,0 clrf ANSELbcf STATUS,RP0
Configuración de Puertos
bcf PORTB,Led
Led Apagado
![Page 62: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/62.jpg)
PRIMER PROGRAMA
Pulsador Presionado
?
Prender Led
Apagar Led
btfsc PORTA,Pulsador
Bucle
SI NO
bsf PORTB,Led
goto Apagar
Apagar
bcf PORTB,Led
goto Bucle
![Page 63: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/63.jpg)
PRIMER PROGRAMA
![Page 64: microcontroladores y lenguaje ensamblador](https://reader035.vdocuments.site/reader035/viewer/2022081418/55cf9040550346703ba446a3/html5/thumbnails/64.jpg)
PRIMER PROGRAMA
RA7/OSC1/CLKIN16
RB0/INT/CCP16
RB1/SDI/SDA7
RB2/SDO/RX/DT8
RB3/CCP19
RB4/SCK/SCL10
RB5/SS/TX/CK11
RB6/AN5/T1OSO/T1CKI12
RB7/AN6/T1OSI13
RA0/AN017
RA1/AN118
RA2/AN2/CVREF/VREF-1
RA3/AN3/C1OUT/VREF+2
RA4/AN4/T0CKI/C2OUT3
RA6/OSC2/CLKOUT15
RA5/MCLR4
U1
PIC16F88
FREQ=4MHz
R110k
R2
10k
R3
330
D1LED-GREEN
RA7/OSC1/CLKIN16
RB0/INT/CCP16
RB1/SDI/SDA7
RB2/SDO/RX/DT8
RB3/CCP19
RB4/SCK/SCL10
RB5/SS/TX/CK11
RB6/AN5/T1OSO/T1CKI12
RB7/AN6/T1OSI13
RA0/AN017
RA1/AN118
RA2/AN2/CVREF/VREF-1
RA3/AN3/C1OUT/VREF+2
RA4/AN4/T0CKI/C2OUT3
RA6/OSC2/CLKOUT15
RA5/MCLR4
U1
PIC16F88
FREQ=4MHz
R110k
R2
10k
R3
330
D1LED-GREEN