Vous êtes sur la page 1sur 10

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 el funcionamiento y
programacin de las LCD.
Temas asociados

Configuracin de un Display de Cristal Lquido (LCD)


Lenguaje ASM

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

EQU 2H
//constante E
EQU 1H
//constante RS
ORG
0X00 // origen del programa
GOTO INICIO // salto a inicio

// bloque de cdigo de configuracion inicial del microcontrolador


// bloque que genera una pausa muy pequea de tiempo. Para la utilizacin de
espera de configuracion de la lcd
RETARDO
CLRWDT // limpia el watchdog timer
MOVLW
D'15'
//mueve 15 a W
MOVWF
loops // mueve w a loops
top2_1
MOVLW
D'25'
// mueve 25 a W
MOVWF
loops2 // mueve w a loops2
top_1
CLRWDT // limpia el watchdog timer
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1 //decrement en 1 loops2 y pregunta si es cero y salta,
si no continuara
GOTO
top_1 // salta a top_1
DECFSZ loops,1 // decrement en 1 loops y pregunta que si es cero y
salta, si no continuara
GOTO
top2_1 // salta a top2_1
RETLW
0 // retorna con w = 0
//bloque que genera una pausa de tiempo mayor que la anterior.para
//la utilizacion de espera de configuracion y escritura de lcd
3

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
ANDWF
PORTB,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 ejecucin
BCF
PORTB,E // desabilita la lcd colocando creo en el bit Edel
portb
CALL RETARDO //; realiza una pausa o retardo en el ejecucion
4

BSF

PORTB,E //; habilita la lcd colocando creo en el bit E del

portb
MOVLW
0FH; //mueve 0xF0 a w
ANDWF
PORTB,1 //realiza la operacin 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 operacin AND 0x0Fcon w
IORWF
PORTB,1 //realiza la operacin 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
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 deconfiguracion

ENTRADAS
BTFSCPORTA,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
BTFSCPORTA,1 // pregunta si el bit 1 del puerto a esta en 0 y salta
GOTO MENSAJE_2 //
BTFSCPORTA,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
5

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
6

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

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_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
8

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
END

2. Descripcin de pines de entrada y salida


ESQUEMA DEL PIC

PINES DE ENTRADA

PINES DE SALIDA

Entrada es el
puertoA PORTA0
sensor 1PORTA1
sensor 2PORTA2
sensor 3

Salida el puerto
PORTB2-7
LCDPORTB0 LED

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

10

Vous aimerez peut-être aussi