Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

count and display in LCD

Status
Not open for further replies.

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

#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
 
What does it display at the moment?

My initial guess is you need to add these two lines,
Code:
LCDMSG	CLRF	LOOP
	BSF	RSLINE,4
LCDMS2	movf	LOOP,W
	call	MESSAG
	call	LCDOUT
	incf	LOOP,F
	btfss	LOOP,4
	goto	LCDMS2
	CALL	LINE2

[COLOR="RoyalBlue"]	movlw	0xc0
	call	LCDOUT[/COLOR]

;-------- PRICE --------------
LCDMSG2	CLRF	LOOP

Mike.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top