Académique Documents
Professionnel Documents
Culture Documents
microcontroladores (1910390)
INSTRUCTOR:
ESTEBAN ECHEVERRI ESTRADA
APRENDIZ:
YEISON HURLEY CONTRERAS CHAPARRO
SENA
2019
ACTIVIDAD 4
Nombre de la actividad:
Manejo de salidas en un microcontrolador: Display de Cristal Líquido (LCD)
Objetivo:
Identificar las instrucciones en un código ASM para el manejo de salidas a una LCD.
Situación:
Para diferenciar el tipo de producto que llega a la empresa (distribución y venta), se requiere que la
llegada de camiones sea anunciada con una señal luminosa que parpadee y en una LCD aparezca el
tipo de producto que acaba de llegar, según se haya activado el sensor de presencia instalado. Las
posibilidades de productos son NATURAL, LIMÓN y BAR BQ. Se ha adquirido un sistema
automatizado con microcontroladores y usted debe revisar si el código cumple con las
características solicitadas.
Procedimiento:
1. Revise los contenidos del curso asociados al Manejo de salidas a una LCD.
Temas asociados:
• Configuración de un Display de Cristal Líquido (LCD)
• Lenguaje ASM
Entregas:
Para este análisis, puede utilizar la guía que aparece a continuación para desarrollar los siguientes
productos:
1. Comentarios de las líneas de programación del código suministrado por el proveedor de servicios.
Una vez finalizada, comprima el archivo en formato. Zip o .rar, dando clic derecho al archivo, Enviar
a, Carpeta comprimida. Luego envíela a su facilitador a través del medio utilizado para tal fin en el
curso.
DOCUMENTO GUÍA
Diseño de productos electrónicos con microcontroladores
1. Comentarios de líneas de código. Escriba los comentarios relacionados con cada
bloque de código.
INCLUDE <P16F628A.INC>
CBLOCK0X20
R0C,R0D,R0E,R13,loops,loops2,REG_RX,CONTE,MEMORIA,RX_COMP,RX_ID1,RX_ID2,RX_PRO1,M
ENS_CONT,CON_USER,DATA_IN,CONT_USER,
CONT_INTS,MEM_STATUS,DATA_RUP,DATA_COMP,ID1_SAVE,ID2_SAVE,ID3_SAVE
ENDC
E EQU 2H //constante E
RS EQU 1H //constante RS
ORG 0X00 // origen del programa
GOTO INICIO // salto a inicio
RETARDO_1
CLRWDT
MOVLW D'100'
MOVWF loops
top2_2
MOVLW D'200'
MOVWF loops2
top_2
CLRWDT
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1
GOTO top_2
DECFSZ loops,1
GOTO top2_2
RETLW 0
CONTROL
CLRWDT // limpia el watchdog timer
BCF PORTB,RS // coloca el bit rs del portb en cero para configuracion
GOTO DATO2 // salto a DATO2
DATO
CLRWDT
BSF PORTB,RS //coloca el bit rs del puerto b en 1 para escritura en LCD
DATO2
BSF PORTB,E //coloca el bit E del puerto E en 1 para habilitar la lcd
MOVWF R0E // mueve el registro w a R0E
MOVLW 0FH //mueve el nuemro 0x0F a w
ANDWFPORTB,1 //realiza la operacion AND w con el Puerto by guardaen ; puertob
MOVF R0E,W // mueve ROE a w
ANDLW 0F0H //realiza la operacion AND de w con 0XF0
IORWF PORTB,1 //realiza la operacion OR de w con Puerto b y guarda en ;Puertb
CALL RETARDO // realiza un retardo en la ejecución
BCF PORTB,E // desabilita la lcd colocando creo en el bit Edel portb
CALL RETARDO //; realiza una pausa o retardo en el ejecucion
BSF PORTB,E //; habilita la lcd colocando creo en el bit E del portb
MOVLW 0FH; //mueve 0xF0 a w
ANDWFPORTB,1 //realiza la operación AND w con el puerto b y guarda en; portb
SWAPF R0E,W // realiza el cabio de bit o nibble de lavariable R0E y;guarda en w
ANDLW 0F0H //realiza la operación AND 0x0Fcon w
IORWF PORTB,1 //realiza la operación OR de w con portb yguarda en; portb
CALL RETARDO // genera una pausa
BCF PORTB,E // deshabilita la lcd
CALL RETARDO // llama retardo
RETLW 0 /// retorna con w en 0
INICIO
BSF STATUS,5 // cambia de banco
CLRF TRISB //configura TRISB todo como salida
MOVLW .255 //mover 255 a w
MOVWF TRISA //mover w a trisa
BCF STATUS,5 // cambiar de banco
CONFI_LCD
ENTRADAS
BTFSC PORTA,0 // pregunta si el bit 0 del puerto a esta en0 y salta
GOTO MENSAJE_1 //pregunta si el bit 1 del puerto a esta en 0 y salta
BTFSC PORTA,1 // pregunta si el bit 1 del puerto a esta en 0 y salta
GOTO MENSAJE_2 //
BTFSC PORTA,2 // pregunta si el bit 2 del puerto a esta en 0 y salta
GOTO MENSAJE_3 //
GOTO BORRA_LCD // borra la lcd
//bloque que escribe el mensaje 1 a visualizer en la lcd//
MENSAJE_1
MOVLW 01H
CALL CONTROL
CALL RETARDO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW "N"
CALL DATO
MOVLW "A"
CALL DATO
MOVLW "T"
CALL DATO
MOVLW "U"
CALL DATO
MOVLW "R"
CALL DATO
MOVLW "A"
CALL DATO
MOVLW "L"
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
;LED INTERMITENTE
BSF PORTB,0
CALL RETARDO_1
BCF PORTB,0
CALL RETARDO_1
GOTO ENTRADAS
//Bloque que escribe el mensaje 2 a visualizar en la lcd
MENSAJE_2
MOVLW 01H
CALL CONTROL
CALL RETARDO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW "L"
CALL DATO
MOVLW "I"
CALL DATO
MOVLW "M"
CALL DATO
MOVLW "O"
CALL DATO
MOVLW "N"
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
;LED INTERMITENTE
BSF PORTB,0
CALL RETARDO_1
BCF PORTB,0
CALL RETARDO_1
GOTO ENTRADAS
MENSAJE_3
MOVLW 01H
CALL CONTROL
CALL RETARDO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW "B"
CALL DATO
MOVLW "B"
CALL DATO
MOVLW "Q"
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
;LED INTERMITENTE
BSF PORTB,0
CALL RETARDO_1
BCF PORTB,0
CALL RETARDO_1
GOTO ENTRADAS
BORRA_LCD
MOVLW 01H
CALL CONTROL
CALL RETARDO
GOTO ENTRADAS
END
2. Descripción de pines de entrada y salida