Está en la página 1de 6

ACTIVIDAD CENTRAL UNIDAD 4

Diseño de productos electrónicos con microcontroladores

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.

2. Comentarios de líneas 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_P
RO1,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 de configuración inicial del microcontrolador

; bloque que genera una pausa muy pequeña de tiempo. Para la utilización de espera de
configuacion 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 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 = 0

; bloque que genera una pausa de tiempo mayor que la anterior. Para la utilización de
espera de configuración y escritura 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 ejecuta las instrucciones para el control de la lcd, en congfiguraciones y


escritura de datos.

CONTROL
CLRWDT ;limpia el watchdog timer
BCF PORTB,RS ;coloca el bit rs del portb en cero para configuracion
GOTO DATO2 ;salto a dato 2
DATO
CLRWDT
BSF PORTB,RS ;coloca el bit rs del portb en 1 para escritura en la lcd
DATO2
BSF PORTB,E ; coloca el bit E del portb 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 operación AND w con el puerto b y guarda en
; portb
MOVF R0E,W ;mueve ROE a w
ANDLW 0F0H ;realiza la operación AND de w con 0xF0
IORWF PORTB,1 ;realiza la operación OR de w con portb y guarda en
; portb
CALL RETARDO ; realiza una pausa o retardo en el ejecucion
BCF PORTB,E ; desabilita la lcd colocando creo en el bit E del 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
ANDWF PORTB,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 la variable R0E
y
;guarda en w
ANDLW 0F0H ; realiza la operación AND 0x0F con w
IORWF PORTB,1 ;realiza la operación OR de w con portb y guarda en
; portb
CALL RETARDO ; genera una pausa
BCF PORTB,E ; deshabilita la lcd
CALL RETARDO ; llama retardo
RETLW 0 ; retorna con w en 0

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


configuaracion inicial de la lcd

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 ;mueve 0x02 a W


CALL CONTROL ;envia el dato a la lcd en modo de configuracion
MOVLW 28H
CALL CONTROL
MOVLW 0CH
CALL CONTROL
MOVLW 06H
CALL CONTROL

ENTRADAS
BTFSC PORTA,0 ; pregunta si el bit 0 del puerto a esta en 0 y salta
GOTO MENSAJE_1
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 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 ""
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
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 ""
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
END

Diseño de productos elect2.Descripción de pines de entrada y salida cos con microcontroladores

ESQUEMA DEL PIC PINES DE ENTRADA PINES DE SALIDA

PIC16F873 PIC16F873
Entradas: pines Salidas: pines
PORTA0 sensor 1 PORTB2-7 LCD
PORTA1 sensor 2 PORTB0 LED
PORTA2 sensor 3
1. 3. Diagrama de flujo del programa de automatización

Inicio

Configurar lcd
Configuración inicial “CONTROL”

Configuración puertos y Escribe dato y nibble


lcd

no Escrbir DATO
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

También podría gustarte