35
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:

Display Lcd1

  • Upload
    xeleta

  • View
    284

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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:

Page 2: Display Lcd1

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.

Page 3: Display Lcd1

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

Page 4: Display Lcd1

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

Page 5: Display Lcd1

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

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

Page 6: Display Lcd1

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

Page 7: Display Lcd1

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

Page 8: Display Lcd1

; 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'

Page 9: Display Lcd1

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

Page 10: Display Lcd1

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

Page 11: Display Lcd1

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

Page 12: Display Lcd1

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

Page 13: Display Lcd1

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'

Page 14: Display Lcd1

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'

Page 15: Display Lcd1

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

Page 16: Display Lcd1

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

Page 17: Display Lcd1

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

Page 18: Display Lcd1

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

Page 19: Display Lcd1

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

Page 20: Display Lcd1

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

Page 21: Display Lcd1

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

Page 22: Display Lcd1

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

Page 23: Display Lcd1

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

Page 24: Display Lcd1

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

Page 25: Display Lcd1

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

Page 26: Display Lcd1

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'

Page 27: Display Lcd1
Page 28: Display Lcd1

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