??? 02/28/13 03:35 Read: times |
#189505 - Works Responding to: ???'s previous message |
ok so it works just fine now. As for the pointer going past three counts and into 54H im not sure but i found another student that did the same thing and his also has the double bar "||". I will still re-post the code.
...insert code here[ALE BIT P1.0 ;ADC port assignments OE BIT P1.1 SC BIT P1.2 EOC BIT P1.3 MYDATA EQU P0 RAM_ADDR EQU 40H ;for the bin-dec and dec-ascii conversion ASCI_RSULT EQU 50H COUNT EQU 3 ORG 0H ;start ACALL LCD_INIT MOV MYDATA,#0FFH ;adc start/ make po a input SETB EOC ;make eoc and input CLR ALE ;clear ale CLR SC ;clear wr CLR OE ;clear rd BACK: ACALL DELAY ;make sure the addr is stable SETB ALE ;latch address ACALL DELAY ;delay for fast ds89c4xx chips SETB SC ;start conversion ACALL DELAY CLR ALE ;clear ale CLR SC ;clear wr HERE: JB EOC,HERE ;wait until done HERE1: JNB EOC,HERE1 ;wait until done SETB OE ;enable rd ACALL DELAY ;wait MOV A,MYDATA ;read data CLR OE ;clear rd for next time ACALL CONVERSION ;hex-ascii conversion ACALL DATA_DISPLAY ;display the data SJMP BACK CONVERSION: ;bin-ascii conversion subroutines ACALL BIN_DEC_CONVRT ACALL DEC_ASCI_CONVRT RET BIN_DEC_CONVRT: MOV R0,#RAM_ADDR ;save dec digits in these ram locations MOV A,P0 ;read data from p0 MOV B,#10 ;b=0A hex (10 dec) DIV AB ;divide by ten MOV @R0,B ;save lower digit INC R0 MOV B,#10 ;b=0A hex DIV AB ;divide by ten MOV @R0,B ;save the next digit INC R0 MOV @R0,A ;save the last digit RET DEC_ASCI_CONVRT: MOV R0,#RAM_ADDR ;address of dec data MOV R1,#ASCI_RSULT ;addr of ascii data MOV R2,#3 ;count BACK1: MOV A,@R0 ;get dec digit ORL A,#30H ;make it an ascii digit MOV @R1,A ;save it INC R0 ;next digit INC R1 ;next DJNZ R2,BACK1 ;repeat until the last one RET DATA_DISPLAY: ; since my lcd init is not whats in my book i have to change the data display from whats in it ACALL DELAY MOV A,#90H ; place cursor at thso position ACALL COMNWRT ACALL DELAY DEC R1 MOV A,@R1 ;this is me guessing that the data is saved to @R1 during the back1: block, not exactly sure should got here ACALL DATAWRT ACALL DELAY DEC R1 MOV A,@R1 ACALL DATAWRT ACALL DELAY DEC R1 MOV A,@R1 ACALL DATAWRT ACALL DELAY RET LCD_INIT: ACALL COMNWRT ;lcd initilize and display text ACALL DELAY MOV A,#38H ACALL COMNWRT ACALL DELAY MOV A,#32H ACALL COMNWRT ACALL DELAY MOV A,#28H ACALL COMNWRT ACALL DELAY MOV A,#0EH ACALL COMNWRT ACALL DELAY MOV A,#01 ACALL COMNWRT ACALL DELAY MOV A,#06H ACALL COMNWRT ACALL DELAY MOV A,#80H ACALL COMNWRT ACALL DELAY MOV A,#'A' ACALL DATAWRT ACALL DELAY MOV A,#'C' ACALL DATAWRT ACALL DELAY MOV A,#'T' ACALL DATAWRT ACALL DELAY MOV A,#'U' ACALL DATAWRT ACALL DELAY MOV A,#'A' ACALL DATAWRT ACALL DELAY MOV A,#'L' ACALL DATAWRT ACALL DELAY MOV A,#87H ACALL COMNWRT ACALL DELAY MOV A,#'T' ACALL DATAWRT ACALL DELAY MOV A,#'E' ACALL DATAWRT ACALL DELAY MOV A,#'M' ACALL DATAWRT ACALL DELAY MOV A,#'P' ACALL DATAWRT ACALL DELAY MOV A,#0C0H ACALL COMNWRT ACALL DELAY MOV A,#'S' ACALL DATAWRT ACALL DELAY MOV A,#'E' ACALL DATAWRT ACALL DELAY MOV A,#'T' ACALL DATAWRT ACALL DELAY MOV A,#0C4H ACALL COMNWRT ACALL DELAY MOV A,#'T' ACALL DATAWRT ACALL DELAY MOV A,#'E' ACALL DATAWRT ACALL DELAY MOV A,#'M' ACALL DATAWRT ACALL DELAY MOV A,#'P' ACALL DATAWRT ACALL DELAY MOV A,#94H ACALL COMNWRT ACALL DELAY MOV A,#'M' ACALL DATAWRT ACALL DELAY MOV A,#'O' ACALL DATAWRT ACALL DELAY MOV A,#'D' ACALL DATAWRT ACALL DELAY MOV A,#'E' ACALL DATAWRT ACALL DELAY MOV A,#0D4H ACALL COMNWRT ACALL DELAY MOV A,#'J' ACALL DATAWRT ACALL DELAY MOV A,#'B' ACALL DATAWRT ACALL DELAY RET COMNWRT: ;for lcd commands MOV R6,A ANL A,#0F0H MOV P2,A CLR P3.7 SETB P3.6 ACALL DELAY CLR P3.6 MOV A,R6 ANL A,#0FH RL A RL A RL A RL A MOV P2,A CLR P3.7 SETB P3.6 ACALL DELAY CLR P3.6 RET DATAWRT: ;to send data to lcd and display MOV R6,A ANL A,#0F0H MOV P2,A SETB P3.7 SETB P3.6 ACALL DELAY CLR P3.6 MOV A,R6 ANL A,#0FH RL A RL A RL A RL A MOV P2,A SETB P3.7 SETB P3.6 ACALL DELAY CLR P3.6 RET DELAY: ;delay per my class MOV R5,#9 H3: MOV R4,#242 H2: MOV R3,#255 H1: DJNZ R3,H1 DJNZ R4,H2 DJNZ R5,H3 RET END ] |
Topic | Author | Date |
How to display data from a ADC0808 to a LCD | 01/01/70 00:00 | |
Comments, please | 01/01/70 00:00 | |
Comments | 01/01/70 00:00 | |
Code Fragments | 01/01/70 00:00 | |
Commenst added, reply to hal | 01/01/70 00:00 | |
comments | 01/01/70 00:00 | |
comments | 01/01/70 00:00 | |
Program flow | 01/01/70 00:00 | |
comments | 01/01/70 00:00 | |
Clarification & Suggestions | 01/01/70 00:00 | |
GREAT HELP | 01/01/70 00:00 | |
Data Display loop | 01/01/70 00:00 | |
Worked sorta | 01/01/70 00:00 | |
The output | 01/01/70 00:00 | |
I looked at it wrong | 01/01/70 00:00 | |
Works | 01/01/70 00:00 | |
Great news! | 01/01/70 00:00 | |
Thank you | 01/01/70 00:00 | |
You're Welcome | 01/01/70 00:00 | |
A couple of questions | 01/01/70 00:00 | |
Answers and questions | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 |