Diagrama de flujo

Prender un LED

Documentar el codigo, decirle al software que usamos un pic16f84a e Incluir archivo de símbolos

;autor,fecha,descripción

list p=16F84a
#include "p16f84a.inc"

Definir que sucede al hacer reset al pic

org 0

goto init

Definir configuration bits

 __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF

Evitar vector de interrupción y acceder a banco 1 de memoria de datos

org 5

init bsf STATUS,RP0

Definir que es salida a traves de TRISB

    bcf TRISB,0

 regresamos al banco 0 e ir al inicio de mi ciclo principal

    bcf STATUS,RP0

goto start

En ciclo principal cambiar a 1 el bit 0 de Puerto B

    start bsf PORTB,0

goto start

Finalizar

END

Ejemplo Prender un LED

Da click

Presiona un botón y enciende un led

Evitar vector de interrupción y acceder a banco 1 de memoria de datos

org 5

init bsf STATUS,RP0

Definir que el bit 0 de Puerto B es salida y el bit 0 del puerto A es entrada

    bcf TRISB,0

bsf TRISA,0

 Regresamos al banco 0 e ir al inicio de mi ciclo principal

    bcf STATUS,RP0

goto start

bit 0 del puerto A==0?

start btfsc PORTA,0

Cambiar a 1 el bit 0 de Puerto B

bsf PORTB,0

Si

No

goto start

Presiona un botón y enciende un led

Da click

¿Cómo se realiza un retardo de tiempo?

¿Cómo se realiza un retardo de tiempo?

The instruction cycle (also known as the fetch–decode–execute cycle or simply the fetch-execute cycle) is the cycle which the central processing unit (CPU) follows from boot-up until the computer has shut down in order to process instructions

¿Cómo se realiza un retardo de tiempo?

pg. 22

¿Cómo se realiza un retardo de tiempo?

pg. 23

Capacitor selection for crystal oscillator

¿Cómo se realiza un retardo de tiempo?

pg. 57

¿Cómo se realiza un retardo de tiempo?

Si el reloj principal es de 4 MHz y queremos saber cuanto tiempo emplea en procesarse la instrucción nop, la cual sólo emplea un ciclo de máquina, se emplearía la expresión matemática anterior:

TCY= 4*( 1/Fosc )*Cycles= 4*( 1/( 4*10^6 ) )*1 = 1*10^6 s = 1μs

pg. 36

Retardo de 20 ms

GOTO?

CICLOS?

Retardo de 20 ms

primera vuelta (3+2), ultima vuelta(4), vueltas restantes (3)

Cycles=(3*iteraciones)+3

Delay código

Da click

Comparación de mas de 1 bit

Ejercicio ensamblador 1

Realizar el programa y simulación que cumpla con lo siguiente:

  1. Desarrollar una subrutina o función que permita realizar un retardo de 1 segundo.

Ejercicio ensamblador 2

Realizar el programa y simulación que cumpla con lo siguiente:

2. Con interruptores conectados a las terminales RB0 y RB1 activar los LEDs conectados a las terminales RA0 y RA1 de acuerdo a la Tabla 1.

 

RB0 RB1 RA1 RA0
0 0 0 0
0 1 0 1
1 0 1 0
1 1 1 1

Tabla 1

Si PUERTOB==0000 0010:

Puerto A = 0000 0001

Archivos básicos de ref