Act Central u4

Embed Size (px)

DESCRIPTION

Trabajo del sena de introduccion a los microcontroladores actividad 4

Citation preview

ACTIVIDAD CENTRAL UNIDAD 4Diseo 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

CBLOCK0X20

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

EEQU2H;constante ERSEQU1H ;constante RS

ORG0X00 ;origen de programa

GOTOINICIO ;salto a inicio

Bloque de cdigo de configuracin inicial del microcontroladorRETARDO

CLRWDT ; limpia el watchdog timer

MOVLW D'15' ;mueve 15 a w MOVWF loops ;mueve w a loopstop2_1

MOVLW D'25' ; mueve 25 a w

MOVWF loops2 ;mueve w a loops2top_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 DECFSZ loops,1 ; decrementa en 1 loops y pregunta si es cero y salta, sino continua GOTO top2_1 ; salta top2_1 RETLW 0 ; retorna con w = 0Bloque que genera una pausa muy pequea de tiempo. Para la utilizacin de espera de configuracin de la lcd.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

Bloque que genera una pausa de tiempo mayor que la anterior. Para la utilizacin de espera de configuracin y escritura de la lcd.CONTROL

CONTROL

CLRWDT;limpia el watchdog timer

BCFPORTB,RS

;coloca el bit rs del portb en cero para configuracion

GOTODATO2

;salto a dato 2DATO

CLRWDT

BSFPORTB,RS

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

BSFPORTB,E

; coloca el bit E del portb en 1 para habilitar la lcd

MOVWFR0E;mueve el registro w a R0E

MOVLW0FH ;mueve el nuemro 0x0F a w

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

; portb

MOVFR0E,W

;mueve ROE a w

ANDLW0F0H;realiza la operacin AND de w con 0xF0

IORWFPORTB,1;realiza la operacin OR de w con portb y guarda en

; portb

CALLRETARDO; realiza una pausa o retardo en el ejecucion

BCF

PORTB,E; desabilita la lcd colocando creo en el bit E del portb

CALLRETARDO; realiza una pausa o retardo en el ejecucion

BSF

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

MOVLW0FH; mueve 0xF0 a w

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

; portb

SWAPFR0E,W

; realiza el cabio de bit o nibble de la variable R0E y

;guarda en w

ANDLW0F0H; realiza la operacin AND 0x0F con w

IORWFPORTB,1;realiza la operacin OR de w con portb y guarda en

; portb

CALLRETARDO; genera una pausa

BCF

PORTB,E; deshabilita la lcd

CALLRETARDO; llama retardo

RETLW0; retorna con w en 0

Bloque que ejecuta las instrucciones para el control de la lcd, en configuraciones y escritura de datos.INICIO

BSF

STATUS,5; cambia de banco

CLRFTRISB;configura TRISB todo como salida

MOVLW.255;mover 255 a w

MOVWFTRISA;mover w a trisa

BCF

STATUS,5;cambiar de bancoCONFI_LCD

MOVLW02H

;mueve 0x02 a W

CALLCONTROL

;envia el dato a la lcd en modo de configuracion

MOVLW28H

CALLCONTROL

MOVLW0CH

CALLCONTROL

MOVLW06H

CALLCONTROL

ENTRADAS

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

GOTOMENSAJE_1

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

GOTOMENSAJE_2

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

GOTOMENSAJE_3

GOTOBORRA_LCD; borra lcd;

bloque de configuraciones iniciales de trabajo del micro, entradas, salidas y configuracin inicial de la lcdMENSAJE_1

MOVLW01H

CALLCONTROL

CALL RETARDO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW"N"

CALLDATO

MOVLW"A"

CALLDATO

MOVLW"T"

CALLDATO

MOVLW"U"

CALLDATO

MOVLW"R"

CALLDATO

MOVLW"A"

CALLDATO

MOVLW"L"

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

;LED INTERMITENTE

BSF

PORTB,0

CALLRETARDO_1

BCF

PORTB,0

CALL RETARDO_1

GOTOENTRADASBloque que escribe el mensaje 1 a visualizar en la lcdMENSAJE_2

MOVLW01H

CALLCONTROL

CALL RETARDO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW"L"

CALLDATO

MOVLW"I"

CALLDATO

MOVLW"M"

CALLDATO

MOVLW"O"

CALLDATO

MOVLW"N"

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

;LED INTERMITENTE

BSF

PORTB,0

CALLRETARDO_1

BCF

PORTB,0

CALL RETARDO_1

GOTOENTRADASBloque que escribe el mensaje 2 a visualizar en la lcdMENSAJE_3

MOVLW01H

CALLCONTROL

CALL RETARDO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW"B"

CALLDATO

MOVLW"B"

CALLDATO

MOVLW"Q"

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

MOVLW" "

CALLDATO

;LED INTERMITENTE

BSF

PORTB,0

CALLRETARDO_1

BCF

PORTB,0

CALL RETARDO_1

GOTOENTRADASBloque que escribe el mensaje 3 a visualizar en la lcdBORRA_LCD

MOVLW01H

CALLCONTROL

CALL RETARDO

GOTOENTRADAS

END

Bloque que limpia, es decir borra la lcd

2. Descripcin de pines de entrada y salida

ESQUEMA DEL PIC

PINES DE ENTRADA

PINES DE SALIDA

La ubicacin de los pines est mal, es de la siguiente manera y a partir de esta se ubicaron los pines requeridos:

Puerto A: Bidireccional que puede ser usado como salida para seal luminosa. RA0/AN0 (Pin 2)

RA1/AN1 (Pin 3)

RA2/AN2 Vref (Pin 4)

RA3/AN3 Vref + (Pin 5)

RA4/T0CKI (Pin 6)

RA5/SS/AN5 (Pin 7)

Puerto B: Se puede configurar como entrada o salida, para que funcione como entrada debemos poner en alto los bits del registro TRISB.RB0/INT (Pin 21)

RB1 (Pin 22)

RB2 (Pin 23)

RB3 (Pin 24)

RB4 (Pin 25)

RB5 (Pin 26)

RB6 (Pin 27)

RB7 (Pin 28)

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

SHAPE \* MERGEFORMAT

Inicio

Configuracin inicial

Bit 0 DE

PORTA = 0?

Escribir DATO

Retardos

Salto a Mensaje 1

No

Salto a Mensaje 2

Salto a borrar lcd

Si

Configurar lcd CONTROL

Escribe dato y nibble

return

Configuracin puertos y lcd

Bit 1 DE

PORTA = 0?

Bit 2 DE

PORTA = 0?

Salto a Mensaje 3

No

Si

Fin

12