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
![](https://media2.giphy.com/media/2doKiPa6LM01i/giphy.gif)
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
![](https://media3.giphy.com/media/l4FGvqwYnTpPSBcKk/giphy.gif)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7091928/pasted-from-clipboard.png)
¿Cómo se realiza un retardo de tiempo?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7091947/pasted-from-clipboard.png)
pg. 22
¿Cómo se realiza un retardo de tiempo?
pg. 23
Capacitor selection for crystal oscillator
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7092139/pasted-from-clipboard.png)
¿Cómo se realiza un retardo de tiempo?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7091869/pasted-from-clipboard.png)
pg. 57
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7091866/pasted-from-clipboard.png)
¿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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7092145/pasted-from-clipboard.png)
Retardo de 20 ms
GOTO?
CICLOS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7092213/pasted-from-clipboard.png)
Retardo de 20 ms
primera vuelta (3+2), ultima vuelta(4), vueltas restantes (3)
Cycles=(3*iteraciones)+3
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1166142/images/7092224/pasted-from-clipboard.png)
Delay código
![](https://media3.giphy.com/media/l4FGvqwYnTpPSBcKk/giphy.gif)
Da click
Comparación de mas de 1 bit
Ejercicio ensamblador 1
Realizar el programa y simulación que cumpla con lo siguiente:
- Desarrollar una subrutina o función que permita realizar un retardo de 1 segundo.
![](https://media1.giphy.com/media/KzbEbf0Cs30Ky2mWgh/giphy.gif)
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
ENS-FLOWCHART
By oscaralonso11
ENS-FLOWCHART
- 1,223