Você está na página 1de 9

INTEGRANTES: DENNIS BASTIDAS ANIBAL PARDO

TEMA: Calculadora de 2 dgitos OBJETIVO GENERAL: Implementar una calculadora que pueda sumar, restar, multiplicar y dividir 2 dgitos. OBJETIVOS ESPECIFICOS: Implementar una calculadora usando el pic 16f628a. Implementar el cdigo en el programa MicroCode. Simular la calculadora en el Proteus. MARCO TEORICO: CONCEPTOS DE UN MICROCONTROLADOR: Un microcontrolador es como un ordenador en pequeo, dispone de una memoria donde se guardan los programas, una memoria para almacenar datos, dispone de puertos de entrada y salida, etc. A menudo se incluyen puertos seriales (RS-232), conversores analgico/digital, generadores de pulsos PWM para el control de motores, bus I2C, y muchas cosas ms. Por supuesto, no tienen ni teclado ni monitor, aunque podemos ver el estado de teclas individuales o utilizar pantallas LCD o LED para mostrar informacin. Caractersticas del pic 16f628a: Es un microcontrolador de 8 bit, que posee una arquitectura RISC avanzada as como un juego reducido de 35 instrucciones. Diagrama de Pines:

Pantalla LCD: El LCD o Display de Cristal Lquido es un dispositivo que permite visualizar caracteres numricos o alfanumricos de manera similar a los display de 7 segmentos, con la diferencia que los LCD no emiten luz. Su caracterstica principal es que consumen muy poca energa y su vida til es de aproximadamente 50000 horas. El lquido de un LCD est entre dos placas de vidrio paralelas separadas algunas micras, unidas a unos electrodos especiales que definen los caracteres que se

visualizarn en la pantalla. La superficie del vidrio hace contacto con el lquido induciendo la alineacin de cristales en direccin paralela a las placas, esta alineacin permite el paso de la luz sin alteracin.

Cuando se aplica la polarizacin adecuada entre los electrodos, aparece un campo elctrico entre estos electrodos (campo que es perpendicular a las placas) y esto causa que las molculas del lquido se agrupen en sentido paralelo a este (el campo elctrico) y cause que aparezca una zona oscura sobre un fondo claro (contraste positivo). De esta manera aparece la informacin que se desea mostrar.

Manejo de mdulos LCD Un LCD (Liquid Crystal Display), pantalla de cristal lquido, es una de las herramientas mayormente utilizadas para desplegar algn tipo de informacin, as tenemos por ejemplo, en las cabinas telefnicas, para visualizar el costo de la llamada que se est realizando un display LCD. En el mercado existe una gran variedad de mdulos LCD, los que permiten realizar grficos, los alfanumricos 16x2, 16x4, 8x2,... con backlight, sin backlight, etc. En esta ocasin estudiaremos los mdulos LCD alfanumricos 16x2 y 8x2 con backlight azul. Ya que este presenta la ventaja de darle la elegancia al proyecto que se vaya a realizar, ya que la luz del fondo es azul y las letras son blancas.

Para el caso de los mdulos de LCDs, es necesario definir lo siguiente:


DEFINE LCD_DREG PORTB; Definicin para utilizar 4 bits del puerto B para transmisin de datos. DEFINE LCD_DBIT 4; desde el bit b.4 hasta el b.7 DEFINE LCD_RSREG PORTB; Definicin para utilizar el registro de control/datos en el puerto B DEFINE LCD_RSBIT 3; en el bit B.3 DEFINE LCD_EREG PORTB; Definicin para utilizar el enable en el puerto B DEFINE LCD_EBIT 2; en el bit B.2

Nota: Se aconseja utilizar siempre todas las definiciones en un solo puerto, es decir escoger el puerto B, o el puerto A en el caso del PIC 16F628A. Para evitar que los datos sean incorrectos. Esta instruccin es de escritura solamente, y su funcin es fijar al mdulo LCD para empezar a escribir en cada uno de los caracteres que posee, y necesita de un comando para su utilizacin. A continuacin se presenta una tabla con cada uno de los comandos que posee el compilador.

COMANDO OPERACIN:

$FE,1 $FE,2 $FE, $0C $FE, $0E $FE, $0F $FE, $10 $FE, $14 $FE, $80 $FE, $C0

Limpia el visor del LCD Vuelve al inicio del LCD Apaga el cursor Subrayado del cursor activo Parpadeo del cursor activo Mover el cursor a una posicin a la izquierda Mover el cursor una posicin a la derecha Mueve el cursor al comienzo de la primera lnea Mueve el cursor al comienzo de la segunda lnea.

Datasheet:

PRACTICA: MATERIALES: 1 Display lcd 16x2 1 Teclado hexadecimal 1 Protoboard 1 Potenciametro 10k 1 Pic 16f628a Cable utp 4 resistencias de 4.7k Cargador de celular.

PROCEDIMIENTO:

1) Tenemos que realizar el cdigo usando el programa microcode, a continuacin observaremos el cdigo que realizara la calculadora de 2 dgitos.
'****************************************************************
'* Materia : Microcontroladores ACI360-2 * '* Tema : Calcualdora de 2 digitos * '* Integrantes : Dennis Bastidas, Israel Pardo * '* Fecha de entrega : 25/01/2012 * '**************************************************************** DEFINE LCD_DREG PORTA DEFINE LCD_DBIT 0 DEFINE LCD_RSREG PORTA DEFINE LCD_RSBIT 6 DEFINE LCD_EREG PORTA DEFINE LCD_EBIT 7 cmcon = 7 trisa=%00000000 trisb=%11111111 ; VARIABLES T VAR WORD, X VAR byte, N1 VAR byte, N2 VAR byte, AUX1 VAR BYTE, AUX2 VAR BYTE, AUX3 VAR BYTE, AUX4 VAR BYTE ;VARIABLES TECLADO FILA_A var portb.0, FILA_B var portb.1, FILA_C var portb.2, FILA_D var portb.3 COL_UNO var portb.4, COL_DOS var portb.5,COL_TRES var portb.6, COL_CUATRO var portb.7 ; PRESENTACION LCDOUT $FE,$81, "PROYECTO FINAL" LCDOUT $FE,$C3, "CALCULADORA" PAUSE 1000 LCDOUT $FE,1 GOTO INICIO END ; INICIO DEL PROGRAMA INICIO: ; TECLADO low fila_a if col_UNO=0 then x=7:gosub PANTALLA if col_DOS=0 then x=8:gosub PANTALLA if col_TRES=0 then x=9:gosub PANTALLA if col_cuatro=0 then x=10:gosub DIVISION IF col_UNO=0 || col_DOS=0 || col_TRES=0 || col_cuatro=0 then GOSUB ANTIREBOTE high Fila_a low fila_b if col_UNO=0 then x=4:gosub PANTALLA if col_DOS=0 then x=5:gosub PANTALLA if col_TRES=0 then x=6:gosub PANTALLA if col_cuatro=0 then x=11:gosub MULTIPLICACION IF col_UNO=0 || col_DOS=0 || col_TRES=0 || col_cuatro=0 then GOSUB ANTIREBOTE high Fila_b low fila_c if col_uno=0 then x=1: gosub PANTALLA if col_DOS=0 then x=2: gosub PANTALLA if col_TRES=0 then x=3: gosub PANTALLA if col_cuatro=0 then x=12: gosub RESTA IF col_UNO=0 || col_DOS=0 || col_TRES=0 || col_cuatro=0 then GOSUB ANTIREBOTE high Fila_c ow fila_D if col_UNO=0 then x=13:gosub BORRAR if col_DOS=0 then x=0:gosub PANTALLA if col_TRES=0 then x=14:gosub RESULTADO if col_cuatro=0 then x=15:gosub SUMA IF col_UNO=0 || col_DOS=0 || col_TRES=0 || col_cuatro=0 then GOSUB ANTIREBOTE high Fila_D

goto INICIO ; PROGRAMA ANTIREBOTE ANTIREBOTE: IF col_uno=0 || col_dos=0 || col_tres=0 || col_cuatro=0 then goto ANTIREBOTE else return endif ; PROGRAMA DESPLEGAR NUMEROS EN PANTALLA PANTALLA: IF AUX4=0 THEN LCDOUT $FE,1 AUX1=X*10 N1=X LCDOUT $FE,$C0,DEC N1 ENDIF IF AUX4=1 THEN N1=AUX1+X LCDOUT $FE,$C0,DEC N1 ENDIF IF AUX4=3 THEN AUX2=X*10 N2=X LCDOUT $FE,$C3,DEC N2 ENDIF IF AUX4=4 THEN N2=AUX2+X LCDOUT $FE,$C3,DEC N2 ENDIF AUX4=AUX4+1 RETURN ; PROGRAMAS PARA DESPLEGAR SIGNOS EN PANTALLA SUMA: IF AUX4=2 THEN AUX3=1 LCDOUT $FE,$C2,"+" AUX4=3 ELSE AUX4=0 ENDIF RETURN RESTA: IF AUX4=2 THEN AUX3=2 LCDOUT $FE,$C2,"-" AUX4=3 ELSE AUX4=0 ENDIF RETURN MULTIPLICACION: IF AUX4=2 THEN AUX3=3 LCDOUT $FE,$C2,"*" AUX4=3 ELSE AUX4=0 ENDIF RETURN DIVISION: IF AUX4=2 THEN AUX3=4 LCDOUT $FE,$C2,"/" AUX4=3 ELSE

AUX4=0 ENDIF RETURN ; PROGRAMA PARA MOSTRAR RESULTADO RESULTADO: IF AUX3=0 THEN T=N1 LCDOUT $FE,$C5,"=",DEC3 T ENDIF IF AUX3=1 THEN T=N1+N2 LCDOUT $FE,$C5,"=",DEC3 T ENDIF IF AUX3=2 THEN IF N1<N2 THEN T=N2-N1 LCDOUT $FE,$C5,"= -",DEC3 T ELSE T=N1-N2 LCDOUT $FE,$C5,"=",DEC3 T ENDIF ENDIF IF AUX3=3 THEN T=N1*N2 LCDOUT $FE,$C5,"=",DEC3 T ENDIF IF AUX3=4 THEN T=N1/N2 LCDOUT $FE,$C5,"=",DEC3 T ENDIF N1=0, N2=0, AUX4=0 RETURN ; PROGRAMA PARA BORRAR PANTALLA BORRAR: LCDOUT $FE,1 T=0, N1=0, N2=0, AUX1=0, AUX2=0, AUX4=0 RETURN END

2) Despus debemos implementamos la calculadora en el simulador Proteus para verificar que todo est bien y funcione.

3) Por ultimo lo implementamos en la vida real guindonos por la simulacin. CONCLUSIONES: Concluimos que al realizar el cdigo tuvimos complicaciones en manejar las variables para obtener dos dgitos para nuestra calculadora. Concluimos que utilizar como una herramienta de trabajo el Proteus es muy eficiente ya que cuando cometemos un error al armar el circuito en la vida real podemos corregirlo guindonos en la simulacin. Concluimos que el display lcd tiene un fcil funcionamiento y muy didctico para este tipo de prcticas. RECOMENDACIONES: Recomendamos manipular los materiales con mucho cuidado para no romperlos y antes de comenzar a armar debemos descargar la energa de nuestro cuerpo tocando un metal que haga contacto con tierra para no quemar nuestros materiales. Recomendamos tener en cuenta las polarizaciones diversas de cada material para no quemarlos. Recomendamos la asesora de un profesor si tienen algn inconveniente o alguna duda para avanzar en el transcurso del proyecto. BIBLIOGRAFIA: http://apoyovirtual.udla.edu.ec/mod/book/view.php?id=12077&chapterid=2084 http://proyectoaula-pic16f628a.blogspot.com/ http://micropic.wordpress.com/2007/01/12/el-pic-16f628/ http://es.scribd.com/doc/18946526/Datasheet-Lcd-16x2

Você também pode gostar