HCT-Pirate
New Member
hi there am do project with PIC 16f84 and using LCD HD44780
i write the program and i could display on LCD but i have one problem is tht when i count and want get Display i face problem
connection is
RA0 as pulse in put for count
RB0------>D4
RB1------>D5
RB2------>D6
RB3------>D7
RB4------>RS
RB5------>E
The project about count the
value row0 for LCD
priece in ROW 1 LCD
when value equal 5 the priec will be .1 $
and this the ASM code i see what is the mistake in this code or the r any othe way to do this
i write the program and i could display on LCD but i have one problem is tht when i count and want get Display i face problem
connection is
RA0 as pulse in put for count
RB0------>D4
RB1------>D5
RB2------>D6
RB3------>D7
RB4------>RS
RB5------>E
The project about count the
value row0 for LCD
priece in ROW 1 LCD
when value equal 5 the priec will be .1 $
and this the ASM code i see what is the mistake in this code or the r any othe way to do this
#DEFINE PAGE0 BCF 03,5
#DEFINE PAGE1 BSF 03,5
OPSHUN EQU h'81'
PCL EQU H'02'
STATUS EQU H'03'
PORTA EQU H'05'
TRISA EQU H'85'
PORTB EQU H'06'
TRISB EQU H'86'
INTCON EQU H'0B'
LOOP EQU H'20'
LOOPA EQU H'21'
CLKCNT EQU H'22'
STORE EQU H'27'
RSLINE EQU H'2F'
W EQU 0
F EQU 1
ORG 0
GOTO 5
ORG 4
GOTO 5
ORG 5
BSF 03,5
MOVLW B'00001'
movwf 05
CLRF 06
MOVLW B'00000110'
MOVWF 01
BCF 03,5
CLRF PORTA
CLRF PORTB
CLRF 0D
GOTO SETUP
TABLCD ADDWF PCL,F
RETLW B'00110011'
RETLW B'00110011'
RETLW B'00110010'
RETLW B'00101100'
RETLW B'00000110'
RETLW B'00001100'
RETLW B'00000001'
RETLW B'00000010'
;
MESSAG ADDWF PCL,F
RETLW 'V'
RETLW 'A'
RETLW 'L'
RETLW 'U'
RETLW 'E'
RETLW ':'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
MESSAG2 ADDWF PCL,F
RETLW 'P'
RETLW 'R'
RETLW 'I'
RETLW 'C'
RETLW 'E'
RETLW ':'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '0'
RETLW '.'
RETLW '0'
NUMBER ADDWF PCL,F
RETLW '1'
RETLW '2'
RETLW '3'
RETLW '4'
RETLW '5'
RETLW '6'
RETLW '7'
RETLW '8'
RETLW '9'
RETLW '0'
;-------- SETUP --------------
SETUP CALL PAUSIT
LCDSET CLRF LOOP
CLRF RSLINE
LCDST2 MOVF LOOP,W
CALL TABLCD
CALL LCDOUT
INCF LOOP,F
BTFSS LOOP,3
GOTO LCDST2
CALL PAUSIT
;-------- VALUE --------------
LCDMSG CLRF LOOP
BSF RSLINE,4
LCDMS2 movf LOOP,W
call MESSAG
call LCDOUT
incf LOOP,F
btfss LOOP,4
goto LCDMS2
CALL LINE2
;-------- PRICE --------------
LCDMSG2 CLRF LOOP
BSF RSLINE,4
LCDMS2L movf LOOP,W
call MESSAG2
call LCDOUT
incf LOOP,F
btfss LOOP,4
goto LCDMS2L
;-------- COUNTE -------------
CONT CALL BIT1L1
CLRF LOOP
PR MOVLW D'5'
MOVWF 2A
AG BSF RSLINE,4
BTFSS 05,0
GOTO AG
movf LOOP,W
call NUMBER
call LCDOUT
INCF LOOP,F
CALL BIT1L1
BTFSS LOOP,3
GOTO NEXT
BTFSS LOOP,1
GOTO NEXT
CLRF LOOP
CALL BT2L1
NEXT DECFSZ 2A,F
GOTO AG
GOTO DIG2
;-------------------
BT2L1 CALL BIT2L1
BSF RSLINE,4
MOVF 12,W
CALL NUMBER
CALL LCDOUT
INCF 12,F
BTFSS 12,3
GOTO AG
BTFSS 12,1
GOTO AG
;------------
DIG2 BTFSS 0D,4
GOTO BT1
BTFSS 0D,1
GOTO BT1L2
CLRF 0D
CALL BIT3L2
GOTO CNT
BT1L2 CALL BIT1L2
CNT BSF RSLINE,4
MOVF 0D,W
call NUMBER
call LCDOUT
INCF 0D,F
BTFSS 0D,4
GOTO BK
BTFSS 0D,1
GOTO BK
CLRF 0D
CALL BIT3L2
BK RETURN
NOMORE GOTO NOMORE
;-----------------------------
LCDOUT MOVWF STORE
MOVLW D'50'
MOVWF LOOPA
DELAY DECFSZ LOOPA,F
GOTO DELAY
CALL SENDIT
CALL SENDIT
RETURN
SENDIT SWAPF STORE,F
MOVF STORE,W
ANDLW H'0F'
IORWF RSLINE,W
MOVWF PORTB
BSF PORTB,5
BCF PORTB,5
RETURN
;-----------------------------
LINE2 CLRF RSLINE
MOVLW 0XC0
CALL LCDOUT
RETURN
LINE1 CLRF RSLINE ;GOING TO THE SECOND LINE
MOVLW 0X80
CALL LCDOUT
RETURN
;----------------------------------------
BIT1L1 CLRF RSLINE
MOVLW 0X8F
CALL LCDOUT
RETURN
BIT2L1 CLRF RSLINE
MOVLW 0X8E
CALL LCDOUT
RETURN
BIT3L1 CLRF RSLINE
MOVLW 0X8D
CALL LCDOUT
RETURN
BIT4L1 CLRF RSLINE
MOVLW 0X8C
CALL LCDOUT
RETURN
;--------------------------------------
BIT1L2 CLRF RSLINE
MOVLW 0XCF
CALL LCDOUT
RETURN
BIT3L2 CLRF RSLINE
MOVLW 0XCD
CALL LCDOUT
RETURN
BIT4L2 CLRF RSLINE
MOVLW 0XCC
CALL LCDOUT
RETURN
;------------TIME DELAY SUBROUTIN----------
PAUSIT MOVLW 5
MOVWF CLKCNT
CLRF INTCON
PAUSE
BTFSS INTCON,2
GOTO PAUSE
BCF INTCON,2
DECFSZ CLKCNT,F
GOTO PAUSE
RETURN
END