??? 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 |
Topic | Author | Date |
im back! | 01/01/70 00:00 | |
RE: im back!![]() | 01/01/70 00:00 |