Display Lcd1

Post on 18-Apr-2015

286 views 0 download

Transcript of Display Lcd1

DISPLAY LCD

Descripción: La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo µControlado de visualización grafico para la presentación de caracteres, símbolos o incluso dibujos (en algunos modelos), es este caso 

dispone de 2 filas de 16 caracteres cada una y cada carácter dispone de una matriz de 5x7 puntos (pixels), aunque los hay de otro número de filas y caracteres. Este dispositivo está gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parámetros de presentación, este modelo es el más comúnmente usado y esta información se basará en el manejo de este u otro LCD compatible.

Características principales:

-Pantalla de caracteres ASCII, además de los caracteres Kanji y Griegos.-Desplazamiento de los caracteres hacia la izquierda o la derecha.-Proporciona la dirección de la posición absoluta o relativa del caracter.-Memoria de 40 caracteres por línea de pantalla.-Movimiento del cursor y cambio de su aspecto.-Permite que el usuario pueda programar 8 caracteres.-Conexión a un procesador usando un interfaz de 4 u 8 bits

.

Descripción de pines:

RUTINA

Descripción: La siguiente librería básica de rutinas es para controlar un LCD Hitachi 44780 o compatible.

Los datos o comandos a enviar al LCD los meteremos en el acumulador W antes de hacer la llamada a cualquiera de las rutinas siguientes.

LCD_EGenera un pulso de 1µS por PORTB,2 patita 6 (Enable) del LCD. Si se usa una velocidad de micro diferente de 4MHz habrá que ajustar este tiempo.

LCD_BUSYChequea si el LCD está ocupado (BUSY) y retorna de la rutina cuando ya no lo esté.

LCD_REGPone al LCD en modo de recibir comandos , espera a que no esté ocupado y va a LCD_E.

LCD_DATOSPone el LCD en modo datos y manda el byte presente en W que será mostrado en pantalla.

LCD_INIInicialización del modulo LCD según los tiempo marcados por el fabricante. Bus de 8 bits, 2 líneas de visualización y caracteres de 5 x 7 puntos.

LCD_PORTConfigura los puertos del PIC para ser usados con el LCD.

CIRCUITO EN LCD

Diseñar un programa usando el PIC 16F84A de tal modo que en el Display LCD se visualice la palabra “SISTEMAS DIGITALES”.

1.- Diagrama de flujo

RA2→0

LCD_CARACTER

W→PORTB

RA0→1

RETORNAR

RA0→0

RA2→1

RETORNAR

RA2→0

RA2→1

LCD_DATO→WW→PORTB

CONFIGURA PORTB

W+K→WK←00001111

WxLCD_DATO→LCD_DATO

LEE INFORMACION RB4-RB7DE PORTB

W←PORTB

W+K→WK←11110000LCD_DATO←

W

LCD_ESCRIBE

RETORNAR

DELAY_20MS

LCD_ESCRIBE

PORTB←00100000

DELAY_5MS

LCD_ESCRIBE

PORTB←00110000

DELAY_5MS

LCD_ESCRIBE

PORTB←00110000

DELAY_5MS

LCD_ESCRIBE

PORTB←00110000

RA0,RA1,RA2←0

LCD_INICIALIZA

END

FREEZE

LCD_CARACTER

W←B

LCD_CARACTER

W←B

LCD_CARACTER

W←B

LCD_INICIALIZA

DELAY_20MS

CONFIGURA PUERTOS DE

SALIDAS

INICIO

2.- programa en mplab

list P=16F84Ainclude "P16F84A.INC"cblock 0x0C

REG1REG2

endcorg 0x00call LCD_PORTcall LCD_INI

movlw '"'

call LCD_DATAmovlw 'B'call LCD_DATAmovlw 'I'call LCD_DATAmovlw 'E'call LCD_DATAmovlw 'N'call LCD_DATAmovlw 'V'

call LCD_DATAmovlw 'E'

call LCD_DATAmovlw 'N'

call LCD_DATAmovlw 'I'

call LCD_DATAmovlw 'D'

call LCD_DATAmovlw '0'

call LCD_DATAmovlw '"'call LCD_DATA

call DELAY_5MSgoto $-1include <DELAY.INC>include <LCD_CONFIG.INC>end

DELAY_5MSmovlw.42movwfREG1

otro2 movlw.42movwfREG2

otro1 decfszREG2,Fgoto otro1decfszREG1,Fgoto otro2return

DELAY_40US movlw.5movwfREG1

otro3 movlw.5movwfREG2

otro4 decfszREG2,Fgoto otro4decfszREG1,Fgoto otro3return

LCD_PORT bsf STATUS,5clrf TRISBclrf TRISAbcf STATUS,5bsf PORTA,3return

;********************************LCD_INI movlwb'00111000'

call LCD_REGcall DELAY_5MSmovlwb'00111000'call LCD_REGcall DELAY_5MSmovlwb'00111000'call LCD_REGcall DELAY_5MSmovlwb'00000001'call LCD_REGcall DELAY_5MSmovlwb'00001100'call LCD_REGreturn

;********************************LCD_REG bcf PORTA,0

movwfPORTBcall LCD_BUSYcall LCD_Ereturn

;********************************

OSC1/CLKIN16

RB0/INT6

RB17

RB28

RB39

RB410

RB511

RB612

RB713

RA017

RA118

RA21

RA32

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

U1

PIC16F84A

R110k

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM032L

R1(1)

LCD_BUSY bsf PORTA,1bsf STATUS,5movlwb'11111111'movwfTRISBbcf STATUS,5bsf PORTA,2btfsc PORTB,7goto $-1bcf PORTA,2bsf STATUS,5clrf TRISBbcf STATUS,5bcf PORTA,1return

;********************************LCD_DATA bcf PORTA,0

movwfPORTBcall LCD_BUSYbsf PORTA,0call LCD_Ereturn

;********************************LCD_E bcf PORTA,2

bsf PORTA,2call DELAY_5MSbcf PORTA,2call DELAY_40USreturn

3.- simulación en proteus

Cuestionario:

1.-Diseñe un programa que muestre en el Display LCD la tecla pulsada y simule en Proteus y compruebe el resultado PIC16F84A

Programaprocessor 16F84A #include <P16F84A.INC> __config _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ; 0x3FF1

; RAM-VariableLRAM_0x0C equ 0x0CLRAM_0x0D equ 0x0DLRAM_0x0E equ 0x0ELRAM_0x0F equ 0x0FLRAM_0x10 equ 0x10LRAM_0x11 equ 0x11LRAM_0x12 equ 0x12LRAM_0x13 equ 0x13LRAM_0x14 equ 0x14LRAM_0x15 equ 0x15LRAM_0x16 equ 0x16LRAM_0x17 equ 0x17

; Program

Org 0x0000

; Reset-Vector GOTO LADR_0x0005

Org 0x0004

; Interrupt-Vector GOTO LADR_0x000BLADR_0x0005 CALL LADR_0x0057 CALL LADR_0x002E MOVLW 0x88 ; b'10001000' d'136' MOVWF INTCONLADR_0x0009 SLEEP GOTO LADR_0x0009LADR_0x000B CALL LADR_0x0017 CALL LADR_0x00D6 CALL LADR_0x0033 BCF INTCON,RBIF RETFIELADR_0x0010 ADDWF PCL,F ; !!Program-Counter-Modification RETLW 0x50 ; b'01010000' d'080' "P" RETLW 0x75 ; b'01110101' d'117' "u" RETLW 0x6C ; b'01101100' d'108' "l" RETLW 0x73 ; b'01110011' d'115' "s" RETLW 0x6F ; b'01101111' d'111' "o" RETLW 0x00 ; b'00000000' d'000'LADR_0x0017 CALL LADR_0x003B BTFSS STATUS,C GOTO LADR_0x001C CALL LADR_0x001D BSF STATUS,CLADR_0x001C RETURNLADR_0x001D ADDWF PCL,F ; !!Program-Counter-Modification RETLW 0x01 ; b'00000001' d'001' RETLW 0x02 ; b'00000010' d'002' RETLW 0x03 ; b'00000011' d'003'

RETLW 0x0F ; b'00001111' d'015' RETLW 0x04 ; b'00000100' d'004' RETLW 0x05 ; b'00000101' d'005' RETLW 0x06 ; b'00000110' d'006' RETLW 0x0E ; b'00001110' d'014' RETLW 0x07 ; b'00000111' d'007' RETLW 0x08 ; b'00001000' d'008' RETLW 0x09 ; b'00001001' d'009' RETLW 0x0D ; b'00001101' d'013' RETLW 0x0A ; b'00001010' d'010' RETLW 0x00 ; b'00000000' d'000' RETLW 0x0B ; b'00001011' d'011' RETLW 0x0C ; b'00001100' d'012'LADR_0x002E BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVLW 0xF0 ; b'11110000' d'240' MOVWF PORTB ; !!Bank!! PORTB - TRISB BSF TMR0,7 ; !!Bank!! TMR0 - OPTION_REG BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-SelectLADR_0x0033 MOVLW 0xF0 ; b'11110000' d'240' MOVWF PORTB ; !!Bank!! PORTB - TRISBLADR_0x0035 CALL LADR_0x0126 MOVF PORTB,W ; !!Bank!! PORTB - TRISB SUBLW 0xF0 ; b'11110000' d'240' BTFSS STATUS,Z GOTO LADR_0x0035 RETURNLADR_0x003B CLRF LRAM_0x0C MOVLW 0xFE ; b'11111110' d'254'LADR_0x003D MOVWF PORTB ; !!Bank!! PORTB - TRISB CALL LADR_0x012E BTFSS PORTB,4 ; !!Bank!! PORTB - TRISB GOTO LADR_0x0054

INCF LRAM_0x0C,F BTFSS PORTB,5 ; !!Bank!! PORTB - TRISB GOTO LADR_0x0054 INCF LRAM_0x0C,F BTFSS PORTB,6 ; !!Bank!! PORTB - TRISB GOTO LADR_0x0054 INCF LRAM_0x0C,F BTFSS PORTB,7 ; !!Bank!! PORTB - TRISB GOTO LADR_0x0054 INCF LRAM_0x0C,F MOVLW 0x0F ; b'00001111' d'015' SUBWF LRAM_0x0C,W BTFSC STATUS,C GOTO LADR_0x0052 BSF STATUS,C RLF PORTB,W ; !!Bank!! PORTB - TRISB GOTO LADR_0x003DLADR_0x0052 BCF STATUS,C GOTO LADR_0x0056LADR_0x0054 MOVF LRAM_0x0C,W BSF STATUS,CLADR_0x0056 RETURNLADR_0x0057 BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF PORTA,0 ; !!Bank!! PORTA - TRISA BCF PORTA,2 ; !!Bank!! PORTA - TRISA BCF PORTA,1 ; !!Bank!! PORTA - TRISA BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF PORTA,1 ; !!Bank!! PORTA - TRISA BCF PORTA,2 ; !!Bank!! PORTA - TRISA BCF PORTA,0 ; !!Bank!! PORTA - TRISA CALL LADR_0x0126 MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x006F

CALL LADR_0x012A MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x006F CALL LADR_0x0113 MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x006F MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x006F CALL LADR_0x009B CALL LADR_0x0099 CALL LADR_0x0097 CALL LADR_0x0085 RETURNLADR_0x006F ANDLW 0xF0 ; b'11110000' d'240' MOVWF LRAM_0x0D MOVF PORTB,W ; !!Bank!! PORTB - TRISB ANDLW 0x0F ; b'00001111' d'015' IORWF LRAM_0x0D,F BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF PORTB,W ; !!Bank!! PORTB - TRISB MOVWF LRAM_0x0F MOVLW 0x0F ; b'00001111' d'015' ANDWF PORTB,F ; !!Bank!! PORTB - TRISB BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF PORTA,2 ; !!Bank!! PORTA - TRISA MOVF LRAM_0x0D,W MOVWF PORTB ; !!Bank!! PORTB - TRISB NOP BCF PORTA,2 ; !!Bank!! PORTA - TRISA BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF LRAM_0x0F,W MOVWF PORTB ; !!Bank!! PORTB - TRISB BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select CALL LADR_0x012C RETURNLADR_0x0085

MOVLW 0x06 ; b'00000110' d'006' GOTO LADR_0x009C MOVLW 0x80 ; b'10000000' d'128' GOTO LADR_0x009C MOVLW 0xC0 ; b'11000000' d'192' GOTO LADR_0x009C MOVLW 0x94 ; b'10010100' d'148' GOTO LADR_0x009C MOVLW 0xD4 ; b'11010100' d'212' GOTO LADR_0x009C IORLW 0x80 ; b'10000000' d'128' GOTO LADR_0x009C IORLW 0xC0 ; b'11000000' d'192' GOTO LADR_0x009C MOVLW 0x08 ; b'00001000' d'008' GOTO LADR_0x009C MOVLW 0x0E ; b'00001110' d'014' GOTO LADR_0x009CLADR_0x0097 MOVLW 0x0C ; b'00001100' d'012' GOTO LADR_0x009CLADR_0x0099 MOVLW 0x01 ; b'00000001' d'001' GOTO LADR_0x009CLADR_0x009B MOVLW 0x28 ; b'00101000' d'040' "("LADR_0x009C BCF PORTA,0 ; !!Bank!! PORTA - TRISA GOTO LADR_0x00A0LADR_0x009E BSF PORTA,0 ; !!Bank!! PORTA - TRISA CALL LADR_0x00A8LADR_0x00A0 MOVWF LRAM_0x0E CALL LADR_0x006F SWAPF LRAM_0x0E,W CALL LADR_0x006F

BTFSS PORTA,0 ; !!Bank!! PORTA - TRISA CALL LADR_0x012C CALL LADR_0x0118 RETURNLADR_0x00A8 MOVWF LRAM_0x0D SUBLW 0xF1 ; b'11110001' d'241' BTFSS STATUS,Z GOTO LADR_0x00AF MOVLW 0xEE ; b'11101110' d'238' MOVWF LRAM_0x0D GOTO LADR_0x00BCLADR_0x00AF MOVF LRAM_0x0D,W SUBLW 0xD1 ; b'11010001' d'209' BTFSS STATUS,Z GOTO LADR_0x00B6 MOVLW 0xEE ; b'11101110' d'238' MOVWF LRAM_0x0D GOTO LADR_0x00BCLADR_0x00B6 MOVF LRAM_0x0D,W SUBLW 0xBA ; b'10111010' d'186' BTFSS STATUS,Z GOTO LADR_0x00BC MOVLW 0xDF ; b'11011111' d'223' MOVWF LRAM_0x0DLADR_0x00BC MOVF LRAM_0x0D,W RETURN MOVLW 0x10 ; b'00010000' d'016' GOTO LADR_0x00C5 MOVLW 0x01 ; b'00000001' d'001' GOTO LADR_0x00C5 MOVLW 0x02 ; b'00000010' d'002' GOTO LADR_0x00C5 MOVLW 0x03 ; b'00000011' d'003'

LADR_0x00C5 MOVWF LRAM_0x10LADR_0x00C6 MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x009E DECFSZ LRAM_0x10,F GOTO LADR_0x00C6 RETURN MOVWF LRAM_0x11 ANDLW 0xF0 ; b'11110000' d'240' BTFSS STATUS,Z GOTO LADR_0x00D3 MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x009E GOTO LADR_0x00D5 MOVWF LRAM_0x11LADR_0x00D3 SWAPF LRAM_0x11,W CALL LADR_0x00D6LADR_0x00D5 MOVF LRAM_0x11,WLADR_0x00D6 ANDLW 0x0F ; b'00001111' d'015' MOVWF LRAM_0x10 SUBLW 0x09 ; b'00001001' d'009' BTFSS STATUS,C GOTO LADR_0x00DE MOVF LRAM_0x10,W ADDLW 0x30 ; b'00110000' d'048' "0" GOTO LADR_0x00E0LADR_0x00DE MOVF LRAM_0x10,W ADDLW 0x37 ; b'00110111' d'055' "7"LADR_0x00E0 GOTO LADR_0x009E MOVWF LRAM_0x12 MOVLW 0x10 ; b'00010000' d'016'

SUBWF LRAM_0x12,F DECF LRAM_0x12,FLADR_0x00E5 MOVF LRAM_0x12,W CALL LADR_0x0010 MOVWF LRAM_0x13 MOVF LRAM_0x13,F BTFSC STATUS,Z GOTO LADR_0x00EE CALL LADR_0x009E INCF LRAM_0x12,F GOTO LADR_0x00E5LADR_0x00EE RETURN MOVWF LRAM_0x12 MOVLW 0x10 ; b'00010000' d'016' SUBWF LRAM_0x12,F DECF LRAM_0x12,FLADR_0x00F3 CLRF LRAM_0x14 CALL LADR_0x0099LADR_0x00F5 MOVLW 0x10 ; b'00010000' d'016' SUBWF LRAM_0x14,W BTFSS STATUS,Z GOTO LADR_0x00FE CALL LADR_0x0120 CALL LADR_0x0120 MOVLW 0x0F ; b'00001111' d'015' SUBWF LRAM_0x12,F GOTO LADR_0x00F3LADR_0x00FE MOVF LRAM_0x12,W CALL LADR_0x0010 MOVWF LRAM_0x13 MOVF LRAM_0x13,F BTFSC STATUS,Z

GOTO LADR_0x0108 CALL LADR_0x009E INCF LRAM_0x14,F INCF LRAM_0x12,F GOTO LADR_0x00F5LADR_0x0108 RETURN NOP NOP NOP NOP NOP NOP RETURN NOP MOVLW 0xA4 ; b'10100100' d'164' GOTO LADR_0x011CLADR_0x0113 NOP MOVLW 0x40 ; b'01000000' d'064' "@" GOTO LADR_0x011C MOVLW 0x1F ; b'00011111' d'031' GOTO LADR_0x011CLADR_0x0118 NOP MOVLW 0x0E ; b'00001110' d'014' GOTO LADR_0x011C MOVLW 0x05 ; b'00000101' d'005'LADR_0x011C MOVWF LRAM_0x15LADR_0x011D DECFSZ LRAM_0x15,F GOTO LADR_0x011D RETURNLADR_0x0120 MOVLW 0xC8 ; b'11001000' d'200' GOTO LADR_0x012F

MOVLW 0x64 ; b'01100100' d'100' "d"

End

2.-Diseñe un programa que maneje un Display LCD con 4 Bits de datos, mostrando el mismo mensaje de la práctica, presente el algoritmo y simule en PROTEUS

Programa processor 16F84A #include <P16F84A.INC> __config _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ; 0x3FF1

; RAM-VariableLRAM_0x0C equ 0x0CLRAM_0x0D equ 0x0DLRAM_0x0E equ 0x0ELRAM_0x0F equ 0x0FLRAM_0x10 equ 0x10LRAM_0x11 equ 0x11LRAM_0x12 equ 0x12LRAM_0x13 equ 0x13

; Program

Org 0x0000

; Reset-Vector CALL LADR_0x000A MOVLW 0x42 ; b'01001000' d'072' "B" CALL LADR_0x0051 MOVLW 0x49 ; b'01101111' d'111' "I"; Interrupt-Vector CALL LADR_0x0051 MOVLW 0x45 ; b'01101100' d'108' "E" CALL LADR_0x0051 MOVLW 0x4E ; b'01100001' d'097' "N" CALL LADR_0x0051 MOVLW 0x56 ; b'01100001' d'097' "V" CALL LADR_0x0051 MOVLW 0x45 ; b'01100001' d'097' "E" CALL LADR_0x0051 MOVLW 0x4E ; b'01100001' d'097' "N" CALL LADR_0x0051 MOVLW 0x49 ; b'01100001' d'097' "I" CALL LADR_0x0051 MOVLW 0x44 ; b'01100001' d'097' "D" CALL LADR_0x0051 MOVLW 0x4F ; b'01100001' d'097' "O" CALL LADR_0x0051 SLEEPLADR_0x000A BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF PORTA,0 ; !!Bank!! PORTA - TRISA BCF PORTA,2 ; !!Bank!! PORTA - TRISA BCF PORTA,1 ; !!Bank!! PORTA - TRISA BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BCF PORTA,1 ; !!Bank!! PORTA - TRISA BCF PORTA,2 ; !!Bank!! PORTA - TRISA BCF PORTA,0 ; !!Bank!! PORTA - TRISA

CALL LADR_0x00B1 MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x0022 CALL LADR_0x00B5 MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x0022 CALL LADR_0x009E MOVLW 0x30 ; b'00110000' d'048' "0" CALL LADR_0x0022 MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x0022 CALL LADR_0x004E CALL LADR_0x004C CALL LADR_0x004A CALL LADR_0x0038 RETURNLADR_0x0022 ANDLW 0xF0 ; b'11110000' d'240' MOVWF LRAM_0x0C MOVF PORTB,W ; !!Bank!! PORTB - TRISB ANDLW 0x0F ; b'00001111' d'015' IORWF LRAM_0x0C,F BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF PORTB,W ; !!Bank!! PORTB - TRISB MOVWF LRAM_0x0E MOVLW 0x0F ; b'00001111' d'015' ANDWF PORTB,F ; !!Bank!! PORTB - TRISB BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF PORTA,2 ; !!Bank!! PORTA - TRISA MOVF LRAM_0x0C,W MOVWF PORTB ; !!Bank!! PORTB - TRISB NOP BCF PORTA,2 ; !!Bank!! PORTA - TRISA BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF LRAM_0x0E,W MOVWF PORTB ; !!Bank!! PORTB - TRISB BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select

CALL LADR_0x00B7 RETURNLADR_0x0038 MOVLW 0x06 ; b'00000110' d'006' GOTO LADR_0x004F MOVLW 0x80 ; b'10000000' d'128' GOTO LADR_0x004F MOVLW 0xC0 ; b'11000000' d'192' GOTO LADR_0x004F MOVLW 0x94 ; b'10010100' d'148' GOTO LADR_0x004F MOVLW 0xD4 ; b'11010100' d'212' GOTO LADR_0x004F IORLW 0x80 ; b'10000000' d'128' GOTO LADR_0x004F IORLW 0xC0 ; b'11000000' d'192' GOTO LADR_0x004F MOVLW 0x08 ; b'00001000' d'008' GOTO LADR_0x004F MOVLW 0x0E ; b'00001110' d'014' GOTO LADR_0x004FLADR_0x004A MOVLW 0x0C ; b'00001100' d'012' GOTO LADR_0x004FLADR_0x004C MOVLW 0x01 ; b'00000001' d'001' GOTO LADR_0x004FLADR_0x004E MOVLW 0x28 ; b'00101000' d'040' "("LADR_0x004F BCF PORTA,0 ; !!Bank!! PORTA - TRISA GOTO LADR_0x0053LADR_0x0051 BSF PORTA,0 ; !!Bank!! PORTA - TRISA CALL LADR_0x005BLADR_0x0053 MOVWF LRAM_0x0D

CALL LADR_0x0022 SWAPF LRAM_0x0D,W CALL LADR_0x0022 BTFSS PORTA,0 ; !!Bank!! PORTA - TRISA CALL LADR_0x00B7 CALL LADR_0x00A3 RETURNLADR_0x005B MOVWF LRAM_0x0C SUBLW 0xF1 ; b'11110001' d'241' BTFSS STATUS,Z GOTO LADR_0x0062 MOVLW 0xEE ; b'11101110' d'238' MOVWF LRAM_0x0C GOTO LADR_0x006FLADR_0x0062 MOVF LRAM_0x0C,W SUBLW 0xD1 ; b'11010001' d'209' BTFSS STATUS,Z GOTO LADR_0x0069 MOVLW 0xEE ; b'11101110' d'238' MOVWF LRAM_0x0C GOTO LADR_0x006FLADR_0x0069 MOVF LRAM_0x0C,W SUBLW 0xBA ; b'10111010' d'186' BTFSS STATUS,Z GOTO LADR_0x006F MOVLW 0xDF ; b'11011111' d'223' MOVWF LRAM_0x0CLADR_0x006F MOVF LRAM_0x0C,W RETURN MOVLW 0x10 ; b'00010000' d'016' GOTO LADR_0x0078 MOVLW 0x01 ; b'00000001' d'001' GOTO LADR_0x0078

MOVLW 0x02 ; b'00000010' d'002' GOTO LADR_0x0078 MOVLW 0x03 ; b'00000011' d'003'LADR_0x0078 MOVWF LRAM_0x0FLADR_0x0079 MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x0051 DECFSZ LRAM_0x0F,F GOTO LADR_0x0079 RETURN MOVWF LRAM_0x10 ANDLW 0xF0 ; b'11110000' d'240' BTFSS STATUS,Z GOTO LADR_0x0086 MOVLW 0x20 ; b'00100000' d'032' " " CALL LADR_0x0051 GOTO LADR_0x0088 MOVWF LRAM_0x10LADR_0x0086 SWAPF LRAM_0x10,W CALL LADR_0x0089LADR_0x0088 MOVF LRAM_0x10,WLADR_0x0089 ANDLW 0x0F ; b'00001111' d'015' MOVWF LRAM_0x0F SUBLW 0x09 ; b'00001001' d'009' BTFSS STATUS,C GOTO LADR_0x0091 MOVF LRAM_0x0F,W ADDLW 0x30 ; b'00110000' d'048' "0" GOTO LADR_0x0093LADR_0x0091 MOVF LRAM_0x0F,W ADDLW 0x37 ; b'00110111' d'055' "7"LADR_0x0093

GOTO LADR_0x0051 NOP NOP NOP NOP NOP NOP RETURN NOP MOVLW 0xA4 ; b'10100100' d'164' GOTO LADR_0x00A7LADR_0x009E NOP MOVLW 0x40 ; b'01000000' d'064' "@" GOTO LADR_0x00A7 MOVLW 0x1F ; b'00011111' d'031' GOTO LADR_0x00A7LADR_0x00A3 NOP MOVLW 0x0E ; b'00001110' d'014' GOTO LADR_0x00A7 MOVLW 0x05 ; b'00000101' d'005'LADR_0x00A7 MOVWF LRAM_0x11LADR_0x00A8 DECFSZ LRAM_0x11,F GOTO LADR_0x00A8 RETURN MOVLW 0xC8 ; b'11001000' d'200' GOTO LADR_0x00BA MOVLW 0x64 ; b'01100100' d'100' "d" GOTO LADR_0x00BA MOVLW 0x32 ; b'00110010' d'050' "2" GOTO LADR_0x00BALADR_0x00B1 MOVLW 0x14 ; b'00010100' d'020' GOTO LADR_0x00BA

MOVLW 0x0A ; b'00001010' d'010' GOTO LADR_0x00BALADR_0x00B5 MOVLW 0x05 ; b'00000101' d'005' GOTO LADR_0x00BALADR_0x00B7 MOVLW 0x02 ; b'00000010' d'002' GOTO LADR_0x00BA MOVLW 0x01 ; b'00000001' d'001'LADR_0x00BA MOVWF LRAM_0x12LADR_0x00BB MOVLW 0xF9 ; b'11111001' d'249' MOVWF LRAM_0x11LADR_0x00BD NOP DECFSZ LRAM_0x11,F GOTO LADR_0x00BD DECFSZ LRAM_0x12,F GOTO LADR_0x00BB RETURN MOVLW 0xC8 ; b'11001000' d'200' GOTO LADR_0x00CE MOVLW 0x64 ; b'01100100' d'100' "d" GOTO LADR_0x00CE MOVLW 0x32 ; b'00110010' d'050' "2" GOTO LADR_0x00CE MOVLW 0x14 ; b'00010100' d'020' GOTO LADR_0x00CE MOVLW 0x0A ; b'00001010' d'010' GOTO LADR_0x00CE MOVLW 0x05 ; b'00000101' d'005'LADR_0x00CE MOVWF LRAM_0x13LADR_0x00CF MOVLW 0x64 ; b'01100100' d'100' "d" MOVWF LRAM_0x12

LADR_0x00D1 MOVLW 0xF9 ; b'11111001' d'249' MOVWF LRAM_0x11LADR_0x00D3 NOP DECFSZ LRAM_0x11,F GOTO LADR_0x00D3 DECFSZ LRAM_0x12,F GOTO LADR_0x00D1 DECFSZ LRAM_0x13,F GOTO LADR_0x00CF RETURN

End

3.-Presente un Diagrama electrónico que use un Display Backlight e indique que significa y el porqué de su uso.

list P=16F84Ainclude "P16F84A.INC"cblock 0x0C

REG1REG2

endcorg 0x00call LCD_PORTcall LCD_INI

movlw '"'

call LCD_DATAmovlw 'B'call LCD_DATAmovlw 'I'call LCD_DATAmovlw 'E'call LCD_DATAmovlw 'N'call LCD_DATAmovlw 'V'

4.-Presente Hoja de Datos (Data Sheets) de diferentes tipos de Display LCD que usan el microcontrolador Hitachi 44780 o equivalente