Académique Documents
Professionnel Documents
Culture Documents
asm
;
;
;
;
;
LIST P
#INCLUDE
__CONFIG
= 16F877A
"P16F877A.INC"
0X3F71
; CONFIGURATION SETTING
CBLOCK
0X20
COUNT1,COUNT2
ENDC
ORG
GOTO
0X00
INIT
CALL
CALL
CALL
CALL
CALL
GOTO
BLANKS
;FILL DISPLAY RAM WITH BLANKS.
MESSAGE ;CREATE MESSAGE IN DESPLAY RAM
DEL_5
;ALLOW LCD TIME TO INITIALIZE
INITLCD ;INITIALIZE LCD
DISPLAY_16 ;SEND 16 CHARACTERS TO DISPLAY
$
;--------------------------------------------------------------------------BLANKS
MOVLW
0X10
MOVWF
COUNT1
MOVLW
0X20
MOVWF
FSR
MOVLW
0X20 ; ASCII BLANK
STORE
MOVWF
INDF
DECFSZ COUNT1,F
GOTO
INCFSR
RETURN
INCFSR
INCF
FSR,F
GOTO
STORE
;------------------------------------------------------------------------MESSAGE
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
' '
0X30
'L'
0X31
'E'
0X32
'T'
0X33
' '
0X34
'U'
0X35
'S'
0X36
' '
1
0X37
'M'
0X38
'A'
0X39
'K'
0X3A
'E'
0X3B
' '
0X3C
'A'
0X3D
' '
0X3E
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
0X40
'B'
0X41
'E'
0X42
'T'
0X43
'T'
0X44
'E'
0X45
'R'
0X46
' '
0X47
'W'
0X48
'O'
0X49
'R'
0X4A
'L'
0X4B
'D'
0X4C
'!'
0X4D
RETURN
;-------------------------------------------------------------------------INITLCD
BCF
PORTB,2 ; E LINE LOW
BCF
PORTB,0 ; RS LINE LOW, FOR INSTRUCTION
CALL
DEL_125 ; DELAY 125 MICROSECONDS
MOVLW
0X38
; 8BIT, 5X7, 0X2LINES
MOVWF
PORTD
; 00111000
CALL
PULSE
; PULSE AND DELAY
MOVLW
0X0C
; DISPLAY ON, CURSOR OFF
MOVWF
PORTD
; 00001100
CALL
PULSE
MOVLW
0X06
; INCREMENT MODE, NO DISPLAY SHIFT
MOVWF
PORTD
; 00000110
CALL
PULSE
CALL
DEL_5
; DELAY 5 MILLISECONDS-REQUIRED
RETURN
; BEFORE SENDING DATA
;------------------------------------------------------------------------DISPLAY_16
BCF
PORTB,2 ; E LINE LOW
BCF
PORTB,0 ; RS LINE LOW, SET UP FOR INSTRS
CALL
DEL_125
MOVLW
0X80
; CON WORD- ADDRESS FIRST HALF
MOVWF
PORTD
CALL
PULSE
BSF
PORTB,0 ; RS= 1, SET UP FOR DATA
2
DEL_125
0X30
; INITIALIZE FSR
FSR
MOVF
MOVWF
CALL
MOVLW
SUBWF
BTFSC
GOTO
INCF
GOTO
BCF
CALL
MOVLW
MOVWF
CALL
BSF
INCF
CALL
MOVF
MOVWF
CALL
MOVLW
SUBWF
BTFSC
RETURN
INCF
GOTO
GETCHAR
HALF
TUFF
FSR,F
TUFF
;--------------------------------------------------------------------------DEL_125
MOVLW
8A
MOVWF
COUNT1
REPEAT
DECFSZ COUNT1,F
GOTO
REPEAT
RETURN
;-----------------------------------------------------------------------DEL_5
MOVLW
0X28
MOVWF
COUNT2
DELAY
CALL
DEL_125
DECFSZ COUNT2,F
GOTO
DELAY
RETURN
;------------------------------------------------------------------------PULSE
BSF
PORTB,2 ; E LINE HIGH FOR PULSE
NOP
BCF
PORTB,2
CALL
DEL_125
RETURN
;-----------------------------------------------------------------------END
;------------------------------------------------------------------------