Sei sulla pagina 1di 11

ACTIVIDAD CENTRAL UNIDAD 4

Diseño de productos electrónicos con microcontroladores


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.

2. Consulte información para profundizar sobre el funcionamiento y


programación de las 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.
2. Descripción de los pines de entrada y salida utilizados para el sistema
automatizado
3. Diagrama de flujo del programa de automatización.

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.

1
2
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>

CBLOCK 0X20
R0C,R0D,R0E,R13,loops,loops2,REG_RX,CONTE,MEMORIA,RX_COMP,RX_ID1,RX
_ID2,RX_PRO1,MENS_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 de programa
GOTO INICIO ; salto a inicio
; bloque de configuración que hace iniciar el microcontrolador
; bloque que genera pausa pequeña de tiempo o delay. Espera que se
hace para la configuracion del lcd.

RETARDO
CLRWDT ; limpia el watchdog timer
MOVLW D'15' ; mueve el numero 15 a w
MOVWF loops ; mueve w a loops
top2_1
MOVLW D'25' ; mueve 25 a w
MOVWF loops2 ; mueve w a loop2
top_1
CLRWDT ; limpia el watchdog timer
NOP ; ejecuciòn nula
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1 ; decrece en 1 loop2 y pregunta si es cero y salta,
sino continua decreciendo
GOTO top_1 ; salta a top_1
DECFSZ loops,1 ; decrece en 1 lopps y pregunta si es cero salta, sino
continua decreciendo
GOTO top2_1 ; salta a top2_1
RETLW 0 ; retorna con w=0
; bloque que hace una pausa de tiempo mayor que la anterior. Se
hace para la configuraciòn y escritura del lcd.

RETARDO_1

3
CLRWDT ; limpia el watchdog timer
MOVLW D'100' ; mueve 100 a w
MOVWF loops ; mueve 100 a ciclos o loops
top2_2
MOVLW D'200' ; mueve 200 a w
MOVWF loops2 ; mueve w a lopps2
top_2
CLRWDT ; limpia el watchdog timer
NOP ; secuencia de negación o nula
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1 ; decrece en 1 loop2 y pregunta si es cero y salta,
sino continua decreciendo

GOTO top_2 ; salta a top_2


DECFSZ loops,1 ; decrece en 1 loop y pregunta si es cero y salta, sino
continua decreciendo

GOTO top2_2 ; salta a top2_2


RETLW 0 ; retorna a w=0

; bloque que ejecuta instrucciones para el control del lcd,


configuración y escritura de datos.

CONTROL
CLRWDT ; limpia el watchdog timer
BCF PORTB,RS ; coloca el bit RS del Puerto B en cero para
configuración
GOTO DATO2 ; salta al dato 2
DATO
CLRWDT ; limpia el watchdog timer
BSF PORTB,RS ; coloca el bit RS del Puerto B en 1 para escritura
en el lcd.
DATO2
BSF PORTB,E ; COLOCA EL BIT e DEL Puerto B en 1 para habilitar
el lcd

4
MOVWF R0E ; mueve el registro w a R0E
MOVLW 0FH ; mueve el numero 0X0F a w
ANDWF PORTB,1 ; realiza la operación AND w con el
Puerto B y guarda en Port B
MOVF R0E,W ; mueve ROE a w
ANDLW 0F0H ; realiza operación AND de w con 0XF0
IORWF PORTB,1 ; realiza operación de OR de w con
Puerto B y guarda en Puerto B
CALL RETARDO ; realiza una pausa o retardo en la ejecuciòn
BCF PORTB,E ; deshabilita el lcd colocando valor en Bit E
CALL RETARDO ; realiza pausa o retardo en la ejecuciòn
BSF PORTB,E ; habilita el lcd en el Bit E del Puerto B
MOVLW 0FH ; mueve 0XF0 a w
ANDWF PORTB,1 ; realiza la operación AND w con el
Puerto B y guarda en Puerto B
SWAPF R0E,W ; realiza cambio de Bit a nibble de la
variable R0E y guarda en w
ANDLW 0F0H ; realiza operación de AND a OX0F con
w
IORWF PORTB,1 ; realiza operación OR de w con Puerto B
y guarda en Puerto B
CALL RETARDO ; genera una pausa
BCF PORTB,E ; deshabilita el lcd
CALL RETARDO ; llamada retardo
RETLW 0 ; retorna con w en 0

; bloque de configuraciones iniciales de trabajo del microcontrolador,


entradas, salidas y configuraciones iniciales del lcd

INICIO
BSF STATUS,5 ; cambia de banco
CLRF TRISB ; configura TRISB todo como salida
MOVLW .255 ; mueve .225 a w
MOVWF TRISA ; mueve w a trisa
BCF STATUS,5 ; cambia de banco

CONFI_LCD

MOVLW 02H ; mueve 0X02 a w

5
CALL CONTROL ; envia el dato al lcd en modo de configuraciòn
MOVLW 28H , mueve 28H a w
CALL CONTROL ; envia el dato al lcd en modo de configuraciòn
MOVLW 0CH ; mueve 0CH a w
CALL CONTROL ; envia el dato al lcd en modo de configuraciòn
MOVLW 06H ; mueve 06H a w
CALL CONTROL ; envia el dato al lcd en modo de configuraciòn

ENTRADAS
BTFSCPORTA,0 ; pregunta si el bit 0 del Puerto A esta en 0 y salta
GOTO MENSAJE_1
BTFSCPORTA,1 ; pregunta si le bit del puerto A esta en 0 y salta
GOTO MENSAJE_2
BTFSCPORTA,2 ; pregunta si el bit 2 del Puerto A esta en o y salta
GOTO MENSAJE_3
GOTO BORRA_LCD ; borra LCD

; bloque que escribe el mensaje 1 a visualizer en el 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"

6
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
MENSAJE_2
MOVLW 01H
CALL CONTROL
CALL RETARDO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""
CALL DATO
MOVLW ""

7
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 ""

8
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

; bloque que limpia, es decir limpia el LCD


BORRA_LCD

9
MOVLW 01H
CALL CONTROL
CALL RETARDO
GOTO ENTRADAS
END

2. Descripción de pines de entrada y salida

ESQUEMA DEL PIC PINES DE ENTRADA PINES DE SALIDA


Entrada es el puerto SALIDA EL PUERTO B
A
PORT A0 SENSOR 1 PORT B 2-7 LCD
PORT A1 SENSOR 2
PORT A2 SENSOR 3 PORT B0 LED

3. 3. Diagrama de flujo del programa de automatización (código .asm del punto 1)

10
11

Potrebbero piacerti anche