Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/24/04 20:07
Read: times


 
#67383 - im back!
hi friends

those who have been following my progress will remember my 8052 micro project and solar shunt board.
i got the micro board working today, just a basic display code

this is the code

it worked first time and it was a good sigh of relief.......

i have a real time clock ds17887 on the micro circuit and want to display something like the following on the lcd.

(moving across lcd) > my name
(pause for maybe 5 seconds) >
"current time is"......... xxx time
(pause for a minute)
"current date is".........xxx date
(pause for a minute)
>return to time.......

repeat cycle.


i understand this maybe abit complex but i would appreciate some help.


best regards !

eric

>>>>>>>>>>>>>>>>>>>>>

; feb 4th 2004. EMCN
; This 8051 assembler program writes the words
; DISPLAY_IS_O.K. to an LMO86ALN LCD display.

; but first it initialises the display as
; instructed in the HD44780 lcd DRIVER data sheet.

ORG 0000H ; start the code at address 0H in the ROM.

JMP BEGIN ; LEAVE A FEW LINES FREE
ORG 20H
BEGIN:

; NOW WE INITIALISE THE LCD
;USING THE HD44780 lcd DRIVER data sheet page 86.
RS BIT P2.7
RW BIT P2.5
ENABLE BIT P2.6

CLEAR EQU 01H
FUNCTIONSET EQU 34H ;perhaps this should read 38h for 2 line display.
DISPLAYON EQU 0eH
ENTRYMODESET EQU 06H
BOTTOM EQU 0C0H
IT_IS_WORKING EQU 300H
;*****************************************************************************************
; THE LCD INITIALISATION ROUTINE SEE PAGE 86 OF HD44780 lcd DRIVER SPEC
MOV P1,#0FFH
MOV R6,#30
CALL DELAY ; THE DELAY GIVES THE LCD TIME TO ACT.

MOV A ,#CLEAR ; SEE PAGE 89/90 OF HD44780 lcd DRIVER SPEC.
CALL INSTRUCTION_TO_LCD ;SEE TIMING DIAGRAM P67OF LM093.

MOV A ,#FUNCTIONSET ; SEE PAGE 89/90 OF HD44780 lcd DRIVER SPEC.
CALL INSTRUCTION_TO_LCD ;SEE TIMING DIAGRAM P67OF LM093.

MOV A ,#DISPLAYON ; SEE PAGE 89/90 OF HD44780 lcd DRIVER SPEC.
CALL INSTRUCTION_TO_LCD ;SEE TIMING DIAGRAM P67OF LM093.

MOV A ,#ENTRYMODESET ; SEE PAGE 89/90 OF HD44780 lcd DRIVER SPEC.
CALL INSTRUCTION_TO_LCD ;SEE TIMING DIAGRAM P67OF LM093.

MOV A ,#CLEAR ; SEE PAGE 89/90 OF HD44780 lcd DRIVER SPEC.
CALL INSTRUCTION_TO_LCD ;SEE TIMING DIAGRAM P67OF LM093.
; THIS IS THE END OF THE LCD INITIALISATION ROUTINE
;*****************************************************************************************
;START MAIN PROGRAM
;NOW WE WRITE WORDS TO THE DISPLAY
REPEAT:
MOV R0,#0H
MOV R2,#0H
MOV DPTR, #IT_IS_WORKING ; MOV 300H TO DPTR
MOV A,#0H
CALL PRINTIT
MOV A,#BOTTOM ; MOVE CURSER TO BOTTOM ROW.
CALL INSTRUCTION_TO_LCD

JMP REPEAT ;KEEP ON REPEATING THE SENTENCE (DEMO CODE ONLY).
;END MAIN PROGRAM
; **********************************************************************************
INSTRUCTION_TO_LCD:
; THIS ROUTINE SENDS MESSAGE DOWN TO THE LCD
; TELLING IT HOW TO BEHAVE.
CLR RS ; THE RS BIT LOW INDICATES AN INSTRUCTION WRITE. SEE TIMING DIAGRAM P67OF LM093.
CLR RW
MOV R6, #100
CALL DELAY
SETB ENABLE
MOV P1,A
CLR ENABLE
RET

;END INSTRUCTION_TO_LCD ROUTINE
; **********************************************************************************
PRINTIT:
; THIS ROUTINE PRINTS THE LETTERS POINTED BY THE DPTR.
; REFER TO THE WRITE TIMING DIAGRAM PAGE 67 OF LMO93 SPEC.
SETB RS ; THE RS BIT HIGH INDICATES A DATA WRITE.
CLR RW
SETB ENABLE
MOV R6,#30
CALL DELAY
MOVC A, @A+DPTR
CJNE A,#'!',PRINT ;HAVE WE REACHED THE LAS LETTER ?
CLR ENABLE
CLR RS
RET

;END PRINTIT ROUTINE
; **********************************************************************************

; A DELAY ROUTINE DEPENDING ON THE VALUE NOW IN R6
DELAY:
MOV R5, #0
LOOP:
DJNZ R5,LOOP
DJNZ R6,LOOP
RET ; RETURN TO WHERE CALLED FROM
;END DELAY ROUTINE
; **********************************************************************************
PRINT:
MOV P1,A ;SEND LETTER OUT TO PORT2 I.E. TO DISPLAY. SEE TIMING DIAGRAM P67 LM093 DATA WRITE.
CLR ENABLE
CLR RS
INC R2
MOV A,R2
JMP PRINTIT

;END PRINT ROUTINE
; **********************************************************************************
; HERE WE STORE LETTERS IN ROM LOCATION 300H
ORG IT_IS_WORKING
DB 'ERIC MCNAMARA !' ; THIS STORES THESE LETTERS IN ROM 300H
; **********************************************************************************
END ; STOP COMPILING

List of 2 messages in thread
TopicAuthorDate
im back!            01/01/70 00:00      
   RE: im back!            01/01/70 00:00      

Back to Subject List