jueves, 10 de diciembre de 2009

INTERRUPCION PIC16F84A

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
; Nombre: Demo de Interrupciones ^
; Que hace => Encender un LED en RB1, lo haremos dormir y ^
; despertarlo al accionar un pulsador en RB0/INT lo encenderá para ^
; hacerlo dormir hasta la siguiente interrupcion que lo apagará. ^
; --- Descripcion del circuito --- ^
; El pin 7 (RB1) conectado al anodo del LED, el catodo a masa. ^
; El pin 6 (RB0/INT) conectado a positivo a traves de R de 10K ^
; El pin 6 (RB0/INT) conectado a contacto pulsador, el otro a masa.^
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LIST P=16F84
#include
ACUM equ h'000C' ;se declara acum
STAT equ h'000D' ;se declara stat

#DEFINE BANCO0 BCF STATUS,5

Org 0x00 ;Posicion 0 de la Memoria de Programa (apuntador)
;Viene cuando hay una interrupcion.
goto inicio ;Va a la etiqueta INICIO

ORG 0x04 ;viene cuando hay una interrupcion
GOTO rsi ;salta a rutina de rsi que atiende la interrupcion
ORG 0X05

; ****Bits del registro OPTION *******************************
; bit8 = 0 Resistencias de polarización deshabilitadas
; bit7 = 0 Interrupción externa por flanco bajada (no usada)
; bit6 = 0 Fuente de reloj, interno (Usa TMR0 como temporizador)
; bit5 = 0 Flanco de señal externa (no lo usamos)
; bit4 = 0 Divisor asignado al TMR0
; bit3 = 1 bit2 = 1 bit1 = 0 División por 128
; *******************************************************

;---- Inicio ------
ini BSF status,RP0 ; configurando puertos
MOVLW 01 ; carga w con 0000 0001
MOVWF trisb ; RB0/INT es entrada
BCF option_reg,6 ; seleccionamos flanco descendente
BCF status,RP0
;---- Activa interrupciones ----
BSF intcon,GIE ; habilita todas las interrupciones
BSF intcon,INTE ; que sean interrupciones externas
CLRF portb ; limpia el puerto B
dormir SLEEP
GOTO dormir ; poner a dormir
;---- rutina servicio interrupciones
rsi BTFSC portb,0 ; verifica que se suelte el pulsador
GOTO rsi ; espera
; comenzamos guardando el contenido del W
MOVWF ACUM ; Copia el acumulador al registro acum
MOVF status,W ; Guarda STATUS en el acumulador
BANCO0 ; para restaurarlos antes de volver
MOVWF STAT ; Copia el acumulador al registro STAT

BTFSC portb,1 ; y ahora sí, si el led está a 1
GOTO off_led ; ir a off_led para apagarlo
BSF portb,1 ; sino, encender el LED
BCF intcon,INTF ; borrar bandera de interrupción
GOTO HECHO ; salta a restaurar valores
RETFIE ; antes de volver

off_led BCF portb,1 ; apaga el LED
BCF intcon,INTF ; borra bandera de interrupción
; Restauramos los valores del W y status
HECHO MOVF STAT,W ; Guarda el contenido de STAT en el W
MOVWF STATUS ; Restaura el STATUS
SWAPF ACUM,F ; Da la vuelta al registro ACUM
SWAPF ACUM,W ; Vuelve a dar la vuelta al registro ACUM
; y lo restaura

RETFIE ; retorna al programa principal
END

Fuente: http://www.hispavila.com/3ds/chipspic/interrupciones.html

miércoles, 18 de noviembre de 2009

DISPLAY

LIST p=16F84
radix hex

#include "P16F84.INC"

;LIST C=132


#define banco1 bsf 0x03,5
#define banco0 bcf 0x03,5

;include

w equ 0
f equ 1
pc equ 0x02
tm0 equ 0x1
status equ 0x03
opcion equ 0x01
porta equ 0x05
portb equ 0x06
trisa equ 0x5
trisb equ 0x6
cont1 equ 0x0c
cont2 equ 0x0d
cuenta equ 0x0e

org 0
goto reset
org 5

reset banco1
clrf trisb
movlw 0x1f
movwf trisa
movlw 0xef
movwf opcion
banco0
clrf portb

princi clrf tm0

salto movf tm0,w
call tabla_1
movwf portb
;movlw 0x0a
;xorwf tm0,w
;btfss status,2
goto salto
;goto princi

tabla_1
addwf pc,f
retlw b'00000000';0
retlw b'00000001'
retlw b'00000010'
retlw b'00000011'
retlw b'00000100'
retlw b'00000101'
retlw b'00000110'
retlw b'00000111'
retlw b'00001000'
retlw b'00001001'
retlw b'00010000';10
retlw b'00010001'
retlw b'00010010'
retlw b'00010011'
retlw b'00010100'
retlw b'00010101'
retlw b'00010110'
retlw b'00010111'
retlw b'00011000'
retlw b'00011001'
retlw b'00100000';20
retlw b'00100001'
retlw b'00100010'
retlw b'00100011'
retlw b'00100100'
retlw b'00100101'
retlw b'00100110'
retlw b'00100111'
retlw b'00101000'
retlw b'00101001'
retlw b'00110000';30
retlw b'00110001'
retlw b'00110010'
retlw b'00110011'
retlw b'00110100'
retlw b'00110101'
retlw b'00110110'
retlw b'00110111'
retlw b'00111000'
retlw b'00111001'
retlw b'01000000';40
retlw b'01000001'
retlw b'01000010'
retlw b'01000011'
retlw b'01000100'
retlw b'01000101'
retlw b'01000110'
retlw b'01000111'
retlw b'01001000'
retlw b'01001001'
retlw b'01010000';50
retlw b'01010001'
retlw b'01010010'
retlw b'01010011'
retlw b'01010100'
retlw b'01010101'
retlw b'01010110'
retlw b'01010111'
retlw b'01011000'
retlw b'01011001'
retlw b'01100000';60
retlw b'01100001'
retlw b'01100010'
retlw b'01100011'
retlw b'01100100'
retlw b'01100101'
retlw b'01100110'
retlw b'01100111'
retlw b'01101000'
retlw b'01101001'
retlw b'01110000';70
retlw b'01110001'
retlw b'01110010'
retlw b'01110011'
retlw b'01110100'
retlw b'01110101'
retlw b'01110110'
retlw b'01110111'
retlw b'01111000'
retlw b'01111001'
retlw b'10000000';80
retlw b'10000001'
retlw b'10000010'
retlw b'10000011'
retlw b'10000100'
retlw b'10000101'
retlw b'10000110'
retlw b'10000111'
retlw b'10001000'
retlw b'10001001'
retlw b'10010000';90
retlw b'10010001'
retlw b'10010010'
retlw b'10010011'
retlw b'10010100'
retlw b'10010101'
retlw b'10010110'
retlw b'10010111'
retlw b'10011000'
retlw b'10011001'

end

domingo, 15 de noviembre de 2009

BASE DE TIEMPO



Fuente1 : http://www.webelectronica.com.ar/news08/nota10/base.htm



Fuente2 :
http://www.fortunecity.es/felices/barcelona/146/3ds/tutores/base_de_tiempos.html

jueves, 12 de noviembre de 2009

CONTROL REMOTO CON PIC16F84A



Fuente : http://www.pablin.com.ar/electron/proyecto/picnet/index.htm

martes, 3 de noviembre de 2009

LISTADO DE MATERIALES

1 Resistencia 47 ohms 1 Watts
1 Condensador 470nf x 400volts
2 Diodos 1N4007
1 Condensador 100 microfaradios x 25 volts
1 Resistencia 1 Kilo ohms ½ Watts
1 Diodo Zener 5.1 Volts 3 Watts
1 Condensador 10 microfaradio x 25 volts
1 Regulador 7805
1 C.I. 555
1 C.I. MOC3041
2 Resistencia 1 Kilo ohms ¼ Watts
1 Potenciometro 1 Mega ohms
1 Condensador 1 microfaradio 25V
1 Diodo Led 5mm
1 Resistencias 330 ohms ¼ Watts
1 Resistencias 100 ohms ¼ Watts
1 Resistencia 220 ohms ¼ Watts
1 Triac BTA16 x 600 Volts
1 Placa perforada 10x10 cms

lunes, 2 de noviembre de 2009

CÓMO HACER PCB EN PROTEUS

Hola quiero saber si alguien puede ayudarme a convertir de esquematico a pcb en proteus, o se de isis a ares, estoy practicando el programay tengo esa dificultad.

¿que es lo que no puedes hacer?

Simplemente hay que importar la netlist de ISIS a ARES.

Gracias por tu atencion. Ok. lo que no puedo hacer es lograr que el programa me haga el ruteo automaticamente al importar las netlist, solo puedo pegar los componentes y luego rutear manualmente, me explico, quisiera lograr pegar todos los componentes al mismo tiempo. gracias

Veamos:

1. Hay que tener un circuito armado en ISIS y guardado.

2. Presiona el boton ARES o en el menú tools/Netlist to ares.

3. Sa abre ARES y te va a pedir los empaques de los componnetes que no tengan uno definido en ISIS.

4. Presiona el botón Component Mode (el que tiene la pequeña imagen como de un amplificador operacional)

5. Ahí tienes la lista de tus componentes para que los coloques y deben estar en el modo ratnest (conecados con líneas verdes)

De ahí ya puedes hacer al autoruteo.

Si no es esto lo que necesitas dimelo.

Saludos.

ok lo que pasa es que entendia que habia una opcion donde el programa ares coloque automaticamente los componentes sin que yo lo haga, gracias

Entonces te refieres al auto-placer, no es la gran cosa, pero puede ayudar un poco, aca te explico como usar el autoplacer:

Una vez que importes el netlist desde ISIS, debes delimitar el espacio para que el autoplacer tenga la referencia de donde poner los componentes y cual es el espacio que tiene disponible:

- Selecciona 2D graphics box mode (el cuadrado verde)
- Luego en la lista de selección de capas (abajo) elige Board edge (amarillo)
- Haz un cuadro que será la orilla del board, debe de quedar en amarillo.
- Ahora si puedes usar el auto-placer.

Saludos.

Fuente: http://www.yoreparo.com/foros/laboratorios_virtuales/soluciones/-como-pasar-de-esquematico-a-pcb-en-proteus-t272011.html