Sei sulla pagina 1di 28

DISPLAY LCD

Descripcin: La pantalla de cristal liquido o LCD (Liquid Crystal Display) es un dispositivo


Controlado de visualizacin grafico para la presentacin de caracteres, smbolos o incluso
dibujos (en algunos modelos), es este caso

dispone de 2 filas de 16 caracteres cada una y cada carcter dispone de una matriz de 5x7
puntos (pixels), aunque los hay de otro nmero de filas y caracteres. Este dispositivo est
gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los
parmetros de presentacin, este modelo es el ms comnmente usado y esta informacin
se basar en el manejo de este u otro LCD compatible.
Caractersticas principales:
-Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos.
-Desplazamiento de los caracteres hacia la izquierda o la derecha.
-Proporciona la direccin de la posicin absoluta o relativa del caracter.
-Memoria de 40 caracteres por lnea de pantalla.
-Movimiento del cursor y cambio de su aspecto.
-Permite que el usuario pueda programar 8 caracteres.
-Conexin a un procesador usando un interfaz de 4 u 8 bits
.

Descripcin de pines:

RUTINA
Descripcin: La siguiente librera bsica 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_E
LCD_BUSY
LCD_REG
LCD_DATOS
LCD_INI
LCD_PORT

Genera un pulso de 1S por PORTB,2 patita 6


(Enable) del LCD. Si se usa una velocidad de micro
diferente de 4MHz habr que ajustar este tiempo.
Chequea si el LCD est ocupado (BUSY) y retorna de
la rutina cuando ya no lo est.
Pone al LCD en modo de recibir comandos , espera a
que no est ocupado y va a LCD_E.
Pone el LCD en modo datos y manda el byte
presente en W que ser mostrado en pantalla.
Inicializacin del modulo LCD segn los tiempo
marcados por el fabricante. Bus de 8 bits, 2 lneas de
visualizacin y caracteres de 5 x 7 puntos.
Configura los puertos del PIC para ser usados con el
LCD.

CIRCUITO EN LCD
Disear un programa usando el PIC 16F84A de tal modo que en el Display
LCD se visualice la palabra SISTEMAS DIGITALES.

1.- Diagrama de flujo

INICIO

LCD_INICIA
LIZA

LCD_ESCRIB
E

LCD_CARACT
ER

CONFIGURA
PUERTOS DE
SALIDAS

RA0,RA1,RA2
0

W+KW
K11110000
LCD_DATO
W

RA01

PORTB001100
00

LEE INFORMACION RB4-RB7


DE PORTB
WPORTB

DELAY_20
MS

LCD_ESCRI
BE

LCD_INICIA
LIZA

DELAY_5M
S

WB

PORTB001100
00

LCD_CARAC
TER

LCD_ESCRI
BE

WB

DELAY_5M
S

CONFIGURA
PORTB
COMO SALIDAS

PORTB001100
00

LCD_DATOW
WPORTB

LCD_ESCRI
BE

RA21

DELAY_5M
S

RA20

LCD_CARAC
TER
WB
LCD_CARAC
TER
FREEZE

END

PORTB001000
00
LCD_ESCRI
BE
DELAY_20
MS
RETORNAR

W+KW
K00001111
WxLCD_DATOLCD_DATO

WPORTB
RA21
RA20
RA00

RETORNAR

RETORNAR

2.- programa en mplab


list P=16F84A
include "P16F84A.INC"
cblock 0x0C
REG1
REG2
endc
org 0x00
call LCD_PORT
call LCD_INI

call
call
call
call
call
call

movlw '"'
call LCD_DATA
movlw 'B'
call LCD_DATA
movlw 'I'
call LCD_DATA
movlw 'E'
call LCD_DATA
movlw 'N'
call LCD_DATA
movlw 'V'
LCD_DATA
movlw 'E'
LCD_DATA
movlw 'N'
LCD_DATA
movlw 'I'
LCD_DATA
movlw 'D'
LCD_DATA
movlw '0'
LCD_DATA
movlw '"'
call LCD_DATA
call DELAY_5MS
goto $-1
include
<DELAY.INC>
include
<LCD_CONFIG.INC>
end

DELAY_5MSmovlw .42
movwf REG1
otro2 movlw .42
movwf REG2
otro1 decfsz REG2,F
goto otro1
decfsz REG1,F
goto otro2
return
DELAY_40US
movlw .5
movwf REG1
otro3 movlw .5
movwf REG2
otro4 decfsz REG2,F
goto otro4
decfsz REG1,F
goto otro3
return
LCD_PORT bsf

STATUS,5
clrf
TRISB
clrf
TRISA
bcf
STATUS,5
bsf
PORTA,3
return
;********************************
LCD_INI
movlw b'00111000'
call LCD_REG
call DELAY_5MS
movlw b'00111000'
call LCD_REG
call DELAY_5MS
movlw b'00111000'
call LCD_REG
call DELAY_5MS
movlw b'00000001'
call LCD_REG
call DELAY_5MS
movlw b'00001100'
call LCD_REG
return
;********************************
LCD_REG
bcf
PORTA,0
movwf PORTB
call LCD_BUSY
call LCD_E
return
;********************************
LCD_BUSY bsf
PORTA,1
bsf
STATUS,5

movlw b'11111111'
movwf TRISB
bcf
STATUS,5
bsf
PORTA,2
btfsc PORTB,7
goto $-1
bcf
PORTA,2
bsf
STATUS,5
clrf
TRISB
bcf
STATUS,5
bcf
PORTA,1
return
;********************************
LCD_DATA bcf
PORTA,0
movwf PORTB
call LCD_BUSY
bsf
PORTA,0
call LCD_E
return
;********************************
LCD_E
bcf
PORTA,2
bsf
PORTA,2
call DELAY_5MS
bcf
PORTA,2
call DELAY_40US
return
3.- simulacin en proteus
LCD1

R1(1)

R1
10k

U1
16
15
4

OSC1/CLKIN
OSC2/CLKOUT
MCLR

RA0
RA1
RA2
RA3
RA4/T0CKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7

PIC16F84A

17
18
1
2
3
6
7
8
9
10
11
12
13

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14

RS
RW
E
4
5
6

1
2
3

VSS
VDD
VEE

LM032L

Cuestionario:

1.-Disee un programa que muestre en el Display LCD la tecla


pulsada y simule en Proteus y compruebe el resultado
PIC16F84A
Programa
processor 16F84A
#include <P16F84A.INC>
__config _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;
0x3FF1
; RAM-Variable
LRAM_0x0C equ 0x0C
LRAM_0x0D equ 0x0D
LRAM_0x0E equ 0x0E
LRAM_0x0F equ 0x0F
LRAM_0x10 equ 0x10
LRAM_0x11 equ 0x11
LRAM_0x12 equ 0x12
LRAM_0x13 equ 0x13
LRAM_0x14 equ 0x14
LRAM_0x15 equ 0x15
LRAM_0x16 equ 0x16
LRAM_0x17 equ 0x17
; Program
Org 0x0000
; Reset-Vector
GOTO LADR_0x0005
Org 0x0004
; Interrupt-Vector

GOTO LADR_0x000B
LADR_0x0005
CALL LADR_0x0057
CALL LADR_0x002E
MOVLW 0x88
; b'10001000' d'136'
MOVWF INTCON
LADR_0x0009
SLEEP
GOTO LADR_0x0009
LADR_0x000B
CALL LADR_0x0017
CALL LADR_0x00D6
CALL LADR_0x0033
BCF INTCON,RBIF
RETFIE
LADR_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,C
LADR_0x001C
RETURN
LADR_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)-Select
LADR_0x0033
MOVLW 0xF0
; b'11110000' d'240'
MOVWF PORTB
; !!Bank!! PORTB - TRISB
LADR_0x0035
CALL LADR_0x0126
MOVF PORTB,W
; !!Bank!! PORTB - TRISB
SUBLW 0xF0
; b'11110000' d'240'
BTFSS STATUS,Z
GOTO LADR_0x0035
RETURN
LADR_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_0x003D
LADR_0x0052
BCF STATUS,C
GOTO LADR_0x0056
LADR_0x0054
MOVF LRAM_0x0C,W
BSF STATUS,C
LADR_0x0056
RETURN
LADR_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
RETURN
LADR_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
RETURN
LADR_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_0x009C
LADR_0x0097
MOVLW 0x0C
; b'00001100' d'012'
GOTO LADR_0x009C
LADR_0x0099
MOVLW 0x01
; b'00000001' d'001'
GOTO LADR_0x009C
LADR_0x009B
MOVLW 0x28
; b'00101000' d'040' "("
LADR_0x009C
BCF PORTA,0
; !!Bank!! PORTA - TRISA
GOTO LADR_0x00A0
LADR_0x009E
BSF PORTA,0
; !!Bank!! PORTA - TRISA
CALL LADR_0x00A8
LADR_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
RETURN
LADR_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_0x00BC
LADR_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_0x00BC
LADR_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_0x0D
LADR_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_0x10
LADR_0x00C6
MOVLW 0x20
; b'00100000'
CALL LADR_0x009E
DECFSZ LRAM_0x10,F
GOTO LADR_0x00C6
RETURN
MOVWF LRAM_0x11
ANDLW 0xF0
; b'11110000'
BTFSS STATUS,Z
GOTO LADR_0x00D3
MOVLW 0x20
; b'00100000'
CALL LADR_0x009E
GOTO LADR_0x00D5
MOVWF LRAM_0x11
LADR_0x00D3
SWAPF LRAM_0x11,W
CALL LADR_0x00D6
LADR_0x00D5
MOVF LRAM_0x11,W
LADR_0x00D6
ANDLW 0x0F
; b'00001111'
MOVWF LRAM_0x10
SUBLW 0x09
; b'00001001'
BTFSS STATUS,C
GOTO LADR_0x00DE
MOVF LRAM_0x10,W
ADDLW 0x30
; b'00110000'
GOTO LADR_0x00E0
LADR_0x00DE
MOVF LRAM_0x10,W
ADDLW 0x37
; b'00110111'
LADR_0x00E0
GOTO LADR_0x009E
MOVWF LRAM_0x12
MOVLW 0x10
; b'00010000'
SUBWF LRAM_0x12,F

d'032' " "

d'240'

d'032' " "

d'015'
d'009'

d'048' "0"

d'055' "7"

d'016'

DECF LRAM_0x12,F
LADR_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_0x00E5
LADR_0x00EE
RETURN
MOVWF LRAM_0x12
MOVLW 0x10
; b'00010000' d'016'
SUBWF LRAM_0x12,F
DECF LRAM_0x12,F
LADR_0x00F3
CLRF LRAM_0x14
CALL LADR_0x0099
LADR_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_0x00F3
LADR_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_0x00F5
LADR_0x0108
RETURN
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
NOP
MOVLW 0xA4
; b'10100100'
GOTO LADR_0x011C
LADR_0x0113
NOP
MOVLW 0x40
; b'01000000'
GOTO LADR_0x011C
MOVLW 0x1F
; b'00011111'
GOTO LADR_0x011C
LADR_0x0118
NOP
MOVLW 0x0E
; b'00001110'
GOTO LADR_0x011C
MOVLW 0x05
; b'00000101'
LADR_0x011C
MOVWF LRAM_0x15
LADR_0x011D
DECFSZ LRAM_0x15,F
GOTO LADR_0x011D
RETURN
LADR_0x0120
MOVLW 0xC8
; b'11001000'
GOTO LADR_0x012F
MOVLW 0x64
; b'01100100'

d'164'

d'064' "@"
d'031'

d'014'
d'005'

d'200'
d'100' "d"

End

2.-Disee un programa que maneje un Display LCD con 4 Bits


de datos, mostrando el mismo mensaje de la prctica,
presente el algoritmo y simule en PROTEUS

Programa
processor 16F84A
#include <P16F84A.INC>
__config _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;
0x3FF1
; RAM-Variable
LRAM_0x0C equ 0x0C
LRAM_0x0D equ 0x0D
LRAM_0x0E equ 0x0E
LRAM_0x0F equ 0x0F
LRAM_0x10 equ 0x10
LRAM_0x11 equ 0x11
LRAM_0x12 equ 0x12
LRAM_0x13 equ 0x13
; Program

Org 0x0000
; Reset-Vector
CALL LADR_0x000A
MOVLW 0x42
;
CALL LADR_0x0051
MOVLW 0x49
;
; Interrupt-Vector
CALL LADR_0x0051
MOVLW 0x45
;
CALL LADR_0x0051
MOVLW 0x4E
;
CALL LADR_0x0051
MOVLW 0x56
;
CALL LADR_0x0051
MOVLW 0x45
;
CALL LADR_0x0051
MOVLW 0x4E
;
CALL LADR_0x0051
MOVLW 0x49
;
CALL LADR_0x0051
MOVLW 0x44
;
CALL LADR_0x0051
MOVLW 0x4F
;

b'01001000' d'072' "B"


b'01101111' d'111' "I"

b'01101100' d'108' "E"


b'01100001' d'097' "N"
b'01100001' d'097' "V"
b'01100001' d'097' "E"
b'01100001' d'097' "N"
b'01100001' d'097' "I"
b'01100001' d'097' "D"
b'01100001' d'097' "O"

CALL LADR_0x0051
SLEEP
LADR_0x000A
BSF STATUS,RP0
BCF PORTA,0
BCF PORTA,2
BCF PORTA,1
BCF STATUS,RP0
BCF PORTA,1
BCF PORTA,2

; !!Bank Register-Bank(0/1)-Select
; !!Bank!! PORTA - TRISA
; !!Bank!! PORTA - TRISA
; !!Bank!! PORTA - TRISA
; !!Bank Register-Bank(0/1)-Select
; !!Bank!! PORTA - TRISA
; !!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
RETURN
LADR_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
RETURN
LADR_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_0x004F
LADR_0x004A
MOVLW 0x0C
; b'00001100' d'012'
GOTO LADR_0x004F
LADR_0x004C
MOVLW 0x01
; b'00000001' d'001'
GOTO LADR_0x004F
LADR_0x004E
MOVLW 0x28
; b'00101000' d'040' "("
LADR_0x004F
BCF PORTA,0
; !!Bank!! PORTA - TRISA
GOTO LADR_0x0053
LADR_0x0051
BSF PORTA,0
; !!Bank!! PORTA - TRISA
CALL LADR_0x005B
LADR_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
RETURN
LADR_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_0x006F
LADR_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_0x006F
LADR_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_0x0C
LADR_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'
GOTO LADR_0x0078
MOVLW 0x03
; b'00000011'
LADR_0x0078
MOVWF LRAM_0x0F
LADR_0x0079
MOVLW 0x20
; b'00100000'
CALL LADR_0x0051
DECFSZ LRAM_0x0F,F
GOTO LADR_0x0079
RETURN
MOVWF LRAM_0x10
ANDLW 0xF0
; b'11110000'
BTFSS STATUS,Z
GOTO LADR_0x0086
MOVLW 0x20
; b'00100000'
CALL LADR_0x0051
GOTO LADR_0x0088
MOVWF LRAM_0x10
LADR_0x0086
SWAPF LRAM_0x10,W
CALL LADR_0x0089
LADR_0x0088
MOVF LRAM_0x10,W
LADR_0x0089
ANDLW 0x0F
; b'00001111'
MOVWF LRAM_0x0F
SUBLW 0x09
; b'00001001'
BTFSS STATUS,C
GOTO LADR_0x0091
MOVF LRAM_0x0F,W
ADDLW 0x30
; b'00110000'
GOTO LADR_0x0093
LADR_0x0091
MOVF LRAM_0x0F,W
ADDLW 0x37
; b'00110111'

d'002'
d'003'

d'032' " "

d'240'

d'032' " "

d'015'
d'009'

d'048' "0"

d'055' "7"

LADR_0x0093
GOTO LADR_0x0051
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
NOP
MOVLW 0xA4
; b'10100100'
GOTO LADR_0x00A7
LADR_0x009E
NOP
MOVLW 0x40
; b'01000000'
GOTO LADR_0x00A7
MOVLW 0x1F
; b'00011111'
GOTO LADR_0x00A7
LADR_0x00A3
NOP
MOVLW 0x0E
; b'00001110'
GOTO LADR_0x00A7
MOVLW 0x05
; b'00000101'
LADR_0x00A7
MOVWF LRAM_0x11
LADR_0x00A8
DECFSZ LRAM_0x11,F
GOTO LADR_0x00A8
RETURN
MOVLW 0xC8
; b'11001000'
GOTO LADR_0x00BA
MOVLW 0x64
; b'01100100'
GOTO LADR_0x00BA
MOVLW 0x32
; b'00110010'
GOTO LADR_0x00BA
LADR_0x00B1
MOVLW 0x14
; b'00010100'

d'164'

d'064' "@"
d'031'

d'014'
d'005'

d'200'
d'100' "d"
d'050' "2"

d'020'

GOTO LADR_0x00BA
MOVLW 0x0A
; b'00001010'
GOTO LADR_0x00BA
LADR_0x00B5
MOVLW 0x05
; b'00000101'
GOTO LADR_0x00BA
LADR_0x00B7
MOVLW 0x02
; b'00000010'
GOTO LADR_0x00BA
MOVLW 0x01
; b'00000001'
LADR_0x00BA
MOVWF LRAM_0x12
LADR_0x00BB
MOVLW 0xF9
; b'11111001'
MOVWF LRAM_0x11
LADR_0x00BD
NOP
DECFSZ LRAM_0x11,F
GOTO LADR_0x00BD
DECFSZ LRAM_0x12,F
GOTO LADR_0x00BB
RETURN
MOVLW 0xC8
; b'11001000'
GOTO LADR_0x00CE
MOVLW 0x64
; b'01100100'
GOTO LADR_0x00CE
MOVLW 0x32
; b'00110010'
GOTO LADR_0x00CE
MOVLW 0x14
; b'00010100'
GOTO LADR_0x00CE
MOVLW 0x0A
; b'00001010'
GOTO LADR_0x00CE
MOVLW 0x05
; b'00000101'
LADR_0x00CE
MOVWF LRAM_0x13
LADR_0x00CF
MOVLW 0x64
; b'01100100'

d'010'

d'005'

d'002'
d'001'

d'249'

d'200'
d'100' "d"
d'050' "2"
d'020'
d'010'
d'005'

d'100' "d"

MOVWF LRAM_0x12
LADR_0x00D1
MOVLW 0xF9
; b'11111001' d'249'
MOVWF LRAM_0x11
LADR_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 electrnico que use un Display Backlight e


indique que significa y el porqu de su uso.
list P=16F84A
include "P16F84A.INC"
cblock 0x0C
REG1
REG2
endc
org 0x00
call LCD_PORT
call LCD_INI
movlw '"'
call LCD_DATA
movlw 'B'
call LCD_DATA
movlw 'I'
call LCD_DATA
movlw 'E'
call LCD_DATA
movlw 'N'
call LCD_DATA
movlw 'V'

4.-Presente Hoja de Datos (Data Sheets) de diferentes tipos de


Display LCD que usan el microcontrolador Hitachi 44780 o
equivalente

Potrebbero piacerti anche