Вы находитесь на странице: 1из 3

;************************************** Teclado_08.asm ************************* ******* ; ; =================================================================== ; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" ; E. Palacios, F. Remiro y L. Lpez.

; Editorial Ra-Ma. www.ra-ma.es ; =================================================================== ; ; Suma el valor de tres teclas pulsadas consecutivamente. En la primera lnea de l a pantalla del ; modulo LCD aparece en hexadecimal y en la segunda en decimal. As por ejemplo, s i pulsa ; "A", "6" y "F" en pantalla aparece: ; Hex: A+6+F=1F (Primera Lnea) ; Dec: 10+06+15=31(Segunda Lnea) ; ; ZONA DE DATOS **************************************************************** ****** __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A INCLUDE <P16F84A.INC> CBLOCK 0x0C ContadorTeclasPulsadas GuardaValor Operando1 Operando2 Operando3 Resultado ENDC ; ZONA DE CDIGOS **************************************************************** **** VisualizaHex movf movwf call movlw call onda. incf ENDM VisualizaDec movf call call movlw sponda. call ENDM ORG goto ORG goto Inicio MACRO Operando,Caracter GuardaValor,W ; Operando ; LCD_Nibble ; Caracter LCD_Caracter ; ContadorTeclasPulsadas,F MACRO Operando,Caracter Operando,W ; BIN_a_BCD ; LCD_ByteCompleto ; Caracter ; LCD_Caracter 0 Inicio 4 ServicioInterrupcion Recupera el valor y lo visualiza. Lo guarda para sumar despus. Visualiza el valor en la pantalla Visualiza el signo '+' '-' segn corresp

(Operando) -> (W) Lo pasa a BCD. Visualiza en pantalla. A continuacin signo '+' o '=' segn corre

call call clrf movlw l. movwf Principal sleep goto

LCD_Inicializa Teclado_Inicializa ContadorTeclasPulsadas ; Resetea este contador. b'10001000' ; Habilita la interrupcin RBI y la genera INTCON ; Espera en modo bajo consumo que pulse. Principal

; Subrutina "ServicioInterrupcion" ----------------------------------------------------; ServicioInterrupcion call Teclado_LeeHex ; Obtiene el valor hexadecimal de la tec la pulsada. movwf GuardaValor ; Guarda el valor. movf ContadorTeclasPulsadas,W; Segn el nmero de tecla pulsada realiza u na addwf PCL,F ; funcin distinta. goto PrimeraTeclaPulsada goto SegundaTeclaPulsada goto TerceraTeclaPulsada PrimeraTeclaPulsada call LCD_Borra ; Borra la pantalla anterior. movlw MensajeHex ; En pantalla el mensaje "Hex:" call LCD_Mensaje VisualizaHex Operando1,'+' goto FinInterrupcion SegundaTeclaPulsada VisualizaHex Operando2,'+' goto FinInterrupcion TerceraTeclaPulsada VisualizaHex Operando3,'=' ; movf Operando1,W ; Procede a la suma de los tres valores. addwf Operando2,W addwf Operando3,W movwf Resultado call LCD_Byte ; Visualiza el resultado. call LCD_Linea2 ; Ahora visualiza la segunda lnea. movlw MensajeDec ; En pantalla el mensaje "Dec:" call LCD_Mensaje VisualizaDec Operando1,'+' VisualizaDec Operando2,'+' VisualizaDec Operando3,'=' VisualizaDec Resultado,' ' clrf ContadorTeclasPulsadas ; Resetea este contador. FinInterrupcion call Teclado_EsperaDejePulsar; Espera a que levante el dedo. bcf INTCON,RBIF retfie ; "Mensajes" --------------------------------------------------------------------------Mensajes addwf MensajeHex DT PCL,F "Hex: ", 0x0

MensajeDec DT INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE END ; ; ; ; ;

"Dec: ", 0x0 <TECLADO.INC> <LCD_4BIT.INC> <LCD_MENS.INC> <RETARDOS.INC> <BIN_BCD.INC>

=================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. Lpez. Editorial Ra-Ma. www.ra-ma.es ===================================================================

Вам также может понравиться