Vous êtes sur la page 1sur 12

ACTIVIDAD CENTRAL UNIDAD 4

Diseo de productos electrnicos con microcontroladores


Nombre de la actividad: Manejo de salidas en
un microcontrolador: Display de Cristal Lquido
(LCD).
Objetivo
Identificar las instrucciones en un cdigo ASM
para el manejo de salidas a una LCD.
Situacin
Para diferenciar el tipo de producto que llega a la empresa (distribucin y venta), se
requiere que la llegada de camiones sea anunciada con una seal luminosa que
parpadee y en una LCD aparezca el tipo de producto que acaba de llegar, segn se
haya activado el sensor de presencia instalado. Las posibilidades de productos son
NATURAL, LIMN y BAR BQ.

Se ha adquirido un sistema automatizado con

microcontroladores y usted debe revisar si el cdigo cumple con las caractersticas


solicitadas.
Procedimiento:
1. Revise los contenidos del curso asociados al Manejo de salidas a una LCD.
2. Consulte

informacin

para

profundizar

sobre

programacin de las LCD.


Temas asociados

Configuracin de un Display de Cristal Lquido (LCD)

Lenguaje ASM

el

funcionamiento

Entregas
Para este anlisis, puede utilizar la gua que aparece a continuacin para desarrollar
los siguientes productos:
1. Comentarios de las lneas de programacin del cdigo suministrado por el
proveedor de servicios.
2. Descripcin de los pines de entrada y salida utilizados para el sistema
automatizado
3. Diagrama de flujo del programa de automatizacin.
Una vez finalizada, comprima el archivo en formato .zip o .rar, dando clic derecho al
archivo, Enviar a, Carpeta comprimida. Luego envela a su facilitador a travs del
medio utilizado para tal fin en el curso.

DOCUMENTO GUA
Diseo de productos electrnicos con microcontroladores
1. Comentarios de lneas de cdigo. Escriba los comentarios relacionados con cada
bloque de cdigo.
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
RS

EQU
EQU
ORG
GOTO

2H
1H
0X00
INICIO

;constante E
;constante RS
;origen de programa
;salto a inicio

; Bloque de cdigo de configuracin inicial del microcontrolador


; bloque que genera una pausa muy pequea de tiempo. Para la utilizacin de espera de
configuacion de la lcd.
RETARDO
CLRWDT
D'15'
loops

; limpia el watchdog timer


;mueve 15 a w
;mueve w a loops

MOVLW
MOVWF
top2_1
MOVLW D'25' ; mueve 25 a w
MOVWF loops2
;mueve w a loops2
top_1
CLRWDT
;limpia watchdog timer
NOP
;ejecucion nula
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1 ; decrementa en 1 loops2 y pregunta si es cero y salta, sino continua
GOTO top_1
;salta a top_1
3

DECFSZ loops,1
GOTO top2_1
RETLW 0

; decrementa en 1 loops y pregunta si es cero y salta, sino continua


; salta top2_1
; retorna con w = 0

; bloque que genera una pausa de tiempo mayor que la anterior. Para la utilizacin de espera
de configuracin y escritura de la lcd.
RETARDO_1
CLRWDT
D'100'
loops

MOVLW
MOVWF
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

; bloque que ejecuta las instrucciones para el control de la lcd, en congfiguraciones y escritura
de datos.
CONTROL
CLRWDT
BCF
PORTB,RS
GOTO DATO2
DATO
CLRWDT
BSF
PORTB,RS
DATO2
BSF
PORTB,E
MOVWF
R0E
MOVLW
0FH

;limpia el watchdog timer


;coloca el bit rs del portb en cero para configuracion
;salto a dato 2

;coloca el bit rs del portb en 1 para escritura en la lcd


; coloca el bit E del portb en 1 para habilitar la lcd
;mueve el registro w a R0E
;mueve el nuemro 0x0F a w
4

ANDWFPORTB,1
MOVF R0E,W
ANDLW 0F0H
IORWF PORTB,1
CALL RETARDO
BCF
PORTB,E
CALL RETARDO
BSF
PORTB,E
MOVLW
0FH
ANDWFPORTB,1
SWAPF R0E,W
ANDLW 0F0H
IORWF PORTB,1
CALL RETARDO
BCF
PORTB,E
CALL RETARDO
RETLW 0

;realiza la operacin AND w con el puerto b y guarda en


; portb
;mueve ROE a w
;realiza la operacin AND de w con 0xF0
;realiza la operacin OR de w con portb y guarda en
; portb
; realiza una pausa o retardo en el ejecucion
; desabilita la lcd colocando creo en el bit E del portb
; realiza una pausa o retardo en el ejecucion
; habilita la lcd colocando creo en el bit E del portb
; mueve 0xF0 a w
;realiza la operacin AND w con el puerto b y guarda en
; portb
; realiza el cabio de bit o nibble de la variable R0E y
;guarda en w
; realiza la operacin AND 0x0F con w
;realiza la operacin OR de w con portb y guarda en
; portb
; genera una pausa
; deshabilita la lcd
; llama retardo
; retorna con w en 0

; bloque de configuraciones iniciales de trabajo del micro, entradas, salidas y configuaracion


inicial de la lcd
INICIO
BSF
CLRF TRISB
MOVLW
MOVWF
BCF

STATUS,5
.255
TRISA
STATUS,5

; cambia de banco
;configura TRISB todo como salida
;mover 255 a w
;mover w a trisa
;cambiar de banco

CONFI_LCD
MOVLW
02H
CALL CONTROL
MOVLW
28H
CALL CONTROL
MOVLW
0CH
CALL CONTROL
MOVLW
06H
CALL CONTROL

;mueve 0x02 a W
;envia el dato a la lcd en modo de configuracion

ENTRADAS
BTFSC
GOTO
BTFSC
GOTO
BTFSC
GOTO
GOTO

PORTA,0
MENSAJE_1
PORTA,1
MENSAJE_2
PORTA,2
MENSAJE_3
BORRA_LCD

; pregunta si el bit 0 del puerto a esta en 0 y salta


; pregunta si el bit 1 del puerto a esta en 0 y salta
; pregunta si el bit 2 del puerto a esta en 0 y salta
; borra lcd;

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

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

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
;bloque que escribe el mensaje 1 a visualizar en la lcd
MENSAJE_3
MOVLW
01H
CALL CONTROL
CALL RETARDO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
8

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 borra la lcd
BORRA_LCD
MOVLW
01H
CALL CONTROL
CALL RETARDO
GOTO ENTRADAS
9

END

2. Descripcin de pines de entrada y salida


ESQUEMA DEL PIC

PINES DE ENTRADA

PINES DE SALIDA

Entrada es el puerto A

Salida el puerto B

PORTA0 sensor 1

PORTB2-7 LCD

PORTA1 sensor 2

PORTB0 LED

PORTA2 sensor 3

3. 3. Diagrama de flujo del programa de automatizacin (cdigo .asm del punto 1)


En la siguiente pagina

10

Inicio
Configurar lcd
CONTROL

Configuracin inicial

Escribe dato y nibble

Configuracin puertos y
lcd

Escrbir DATO
no

Bit 0 DE
PORTA = 0 ?
retardos
si
Salto a Mensaje 1
return
Bit 1 DE
PORTA = 0?

Salto a Mensaje 2

no

Bit 2 DE
PORTA = 0 ?
si
Salto a Mensaje 3

Salto a borrar lcd

fin
11

12

Vous aimerez peut-être aussi