ACTIVIDAD CENTRAL UNIDAD 4 Diseño de productos electrónicos con microcontroladores Nombre de la actividad: Manejo de salidas en un microc microcont ontrol rolado ador: r: Displ Display ay de Crista Cristall Líquido (LCD). Objetivo Identi Identific ficar ar las instru instrucc ccion iones es en un códig código o 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, llegar, según según se haya haya activ activad ado o el sensor sensor de presen presencia cia instal instalado ado.. Las posibilidades de productos productos son NATURAL, NATURAL, LIMÓN y BAR BQ. Se ha adquirido un un sistema automatizado con microcontroladores y usted debe revisar si el código cumple con las características solicitadas. Procedimiento: 1. Revis evise e los los contenidos del curso asociados al Manejo de salidas a una LCD. LCD. 2. Cons Consul ulte te info inform rmac ació ión n para para prof profun undi diza zarr sobr sobre e el func funcio iona nami mien ento to y programación de las LCD. Temas asociados • •
Configuración de un Display de Cristal Líquido (LCD) Lenguaje ASM
Entregas Para Para este este anális análisis, is, puede puede utiliz utilizar ar la guía guía que que aparec aparece e a contin continuac uación ión para para desarrollar los siguientes productos: 1. Comentari Comentarios os de las líneas líneas de programació programación n del código código suministra suministrado do por el proveedor de servicios. 2. Descri Descripci pción ón de los pines pines de entrad entrada a y salida salida utili utilizad zados os para el sistem sistema a automatizado 3. Diagrama Diagrama de flujo flujo del del programa programa de de automatiz automatizació ación. n. Una vez finalizada, comprima el archivo en formato .zip o .rar, dando clic derecho al archivo, Enviar a, Carpeta comprimida. 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. Coment Comentari arios os de líneas líneas de código código.. Escrib Escriba a los coment comentari arios os relac relacion ionado adoss con con cada bloque de código. INCLUDE
CBLOCK 0X20 R0C,R0D,R0E,R13,loops,lo R0C,R0D,R0E,R13,loops,loops2,REG_RX,C ops2,REG_RX,CONTE,MEMORIA,R ONTE,MEMORIA,RX_COMP,RX_ID1,RX X_COMP,RX_ID1,RX _ID2,RX_PRO1,MENS_CONT,CON_ _ID2,RX_PRO1,MENS_CONT,CON_USER,DATA USER,DATA_IN,CONT_USER _IN,CONT_USER,, CONT_INTS,MEM_STATUS,DATA CONT_INTS,MEM_STATUS,DATA_RUP,DATA_C _RUP,DATA_COMP,ID1_SAVE,ID OMP,ID1_SAVE,ID2_SAVE,ID3_S 2_SAVE,ID3_SAV AV E ENDC E RS
EQU 2H ; constante E EQU 1H ; constante RS ORG 0X00 ; origen de programa GOTO INICIO INICIO ; salto a inicio inicio
; Bloque de código de configuración inicial del micro controlador ; Bloque que genera una pausa muy pequeña de tiempo. Para la Utilización de espera de configuración de la lcd.
RETARDO
CLRWDT ; limpia el watchdog watchdog timer 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 que si es cero y salta, sino continuara. GOTO
top_1 ;salta a top_1 3
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 4
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 5
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 BTFSCPORTA,0 BTFSCPORTA,0 ; pregunta si el bit 0 del puerto a esta en 0 y salta GOTO MENSAJE_1 BTFSCPORTA,1 BTFSCPORTA,1 ; pregunta si el bit 1 del puerto a esta en 0 y salta GOTO MENSAJE_2 BTFSCPORTA,2 BTFSCPORTA,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" 6
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 INTERMITENTE BSF PORTB,0 CALL CALL RETA RETARD RDO_ O_1 1 BCF PORTB,0 CALL RETARDO_1 GOTO ENTRADAS ENTRADAS ;bloque escribir 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 " " 7
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 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 " " 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 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. Descripci Descripción ón de de pines pines de entrada entrada y salida salida ESQUEMA DEL PIC
PINES DE ENTRADA Entrada es el puerto A PORTA0 sensor 1 PORTA1 sensor 2 PORTA2 sensor 3
PINES DE SALIDA
Salida el puerto B PORTB2-7 LCD PORTB0 LED
3. 3. Diagrama de flujo del del programa de de automatización automatización (código (código .asm del del punto 1)
10
11