Escolar Documentos
Profissional Documentos
Cultura Documentos
Este fue el primer laboratorio para poder conocer como un pic16f628a nos ayude a realizar varias
conexiones electrnicas, desde prender un led hasta que nos tenga la mejor ayuda del microchip.
Sus primeros cambios fue conectar con el pic16f84a, pero el costo es menor con el microcontrolador
pic16f628a con mejores actualizaciones, desde tener un cristal dentro del micro con muchsimo ms
memoria. Es decir: Flash programa 2048x14, ram dato 224x8, eeprom dato 128x8 y muy buen conexin
de 3V a 5,5V. Realiza infinidad de veces mejores que el pic16f84a; ademas no es fcil de encontrar este
pic anterior.
LIST P = 16F84
#include <p16F84.inc>
__CONFIG 1Bh ;_CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC
;20h General
;21h General
;22h General
;23h General
;24h General
;25h General
;26h General
;27h General
;28h General
;29h General
;2Ah General
;2Fh General
;30h rutina delay etc
;31h rutina delay etc
;32h rutina delay etc
;33h para bajo delay etc
;3Eh para bits etc
;3Fh para bits etc
Principal XXX
BTFSS 06,3 ;Test de linear entrada
XXX
XXX
CALL Delay1
XXX
XXX
CALL Tabla1
XXX
GOTO Principal
END ;Fin
;20h General
;21h General
;22h General
;23h General
;24h General
;25h General
;26h General
;27h General
;28h General
;29h General
;2Ah General
;2Fh General
;30h rutina delay etc
;31h rutina delay etc
;32h rutina delay etc
;33h para bajo delay etc
;3Eh para bits etc
;3Fh para bits etc
Del1 NOP
DECFSZ 30h,1
GOTO Del1
DECFSZ 31h,1
GOTO Del1
RETURN
END ;Fin
Luego de esta forma, encontraremos que el cambio del pic16f84a al 16f628a se puede y no ser muy
difcil.
Circuito de Laboratorio
Mostramos el primer experimento
El interruptor se conecta a RA0 y el led se conecta a RB0. Cualquier puerto puede cambiarse de una
entrada o salida en el programa. Si usted va a cambiar la direccin de un puerto, revise bien el circuito
pues si por ejemplo se conecta el puerto B a la tierra pero no al led, el chip se daar cuando el botn
se pulse.
List P = 16F628a
#include <p16F628a.inc>
Empezar ORG 0
MOVLW 0x07
MOVWF CMCON ;apaga el comparador
BSF 03,5 ;Banko 1
CLRF 06 ;apagado puerto B salida
MOVLW 01 ;grabando W con 0000 0001
MOVWF 05 ;Make RA0 input
BCF 03,5 ;Banko 0
END ;Fin
;Programa Principal
inicio:
ADCIN 0, Resultado ;lee Ra0 y guarda en resultado
Lcdout $fe,1 ;Limpia la pantalla
Lcdout "temperatura:",DEC Resultado ;muestra el resultado en decimal
LCDOUT $fe,$C0,"grados C" ; pasa a la siguiente linea y escribe
Pause 1000 ;espera 1 seg
Goto inicio ;vamos a inicio
End
Logico que al circuito hay que colocarle un cristal de 4 MHZ y conectar pines 11 y 32 a 5V. y pines 12 y 31 a Gnd.
Aqui tienen el archivo HEX listo para grabarlo, lo pueden bajar del siguiente link:
http://www.4shared.com/file/N96RlROQ/termometro.html
NOTA: El proyecto presenta un pequeo error en la medicion el cual se puede corregir de varia maneras, una
solucion rapida es utilizar un potenciometro de 5k y colocar sus extremos entre el pin2 del lm35 y tierra luego el
centro o terminal variable del potenciometro conectar a la entrada Ra0 del pic de tal manera que hacemos un
divisor de tension. Otra forma es usando amplificadores operacionales el cual veremos mas adelante.
Anuncios Google
U1 = Microcontrolador PIC16F877A
U2 = Sensor de temperatura LM35
LCD1 = Display de 16x2 (16 caracteres por 2 filas)
X1 = Cristal de cuarzo de 4Mhz
PB1 = pulsador o push button normalmente abierto
R1 = Resistencia de 100 ohm a 1/4 w
R2 = Resistencia de 10 kohm a 1/4 w
RV1 = Potenciometro de 10 kohm
C1, C2 = Capacitores ceramicos de 15pf (no polarizados)
C3 = Capacitor ceramico de 100nf (no polarizados)
D1 = Diodo 1N4148
NOTA: Si tu LCD tiene un led para la luz de fondo debes agregarle una resistencia de 220 o 330 ohm en el pin del anodo
o polo positivo de este led. Pera saber cuales son esos pines consulta el datasheet de tu LCD.
Tambien les dejo el codigo, esta hecho en lenguaje ensamblador, el codigo no lo hice, solo lo modifique del original por
que estaba hecho para el pic16f887, les dejo la info del autorIng. Miguel Angel Piedra
Angeles,http://www.cosasdeingenieria.com
dijo:
;*********************************************************************************** ; *
; programa: termometro.asm * ; *
; este programa muestra el funcionamiento del conversor analgico - digital que *
; contiene el pic16f877a. toma la seal analgica del sensor de temperatura y la *
; convierte a digital. una vez hecha la conversin la despliega en la pantalla lcd *
; dndonos como resultado la temperatura que hay en el ambiente. * ; *
; velocidad del reloj: 4mhz tipo de reloj: xt *
; perro guardin: deshabilitado proteccin del cdigo: off * ; *
;***********************************************************************************
list p=16f877a radix hex include "p16f877a.inc" ;declaracin de la librera ;*******************declaracin de los bits
de configuracin*******************
__config _cp_off&_cpd_off&_lvp_off&_wdt_off&_xt_osc
;************************** declaracin de registros **************************
cblock 0x20 num1,num2,num3 ;******************************************************************************
pointer ;registros utilizados en
unidades,decenas ;binbcd y en la adquisicin de
centenas,millares ;datos
datoh
unidadest,decenast
centenast,millarest
sample
shift
;******************************************************************************
promedio
contador
endc