??? 02/24/13 16:46 Read: times |
#189453 - How to display data from a ADC0808 to a LCD |
To start, I am using the ADC to read the analog input from a lm34 and display it on a lcd using a DS89C450 written in assembly. Now my lcd part of the code works just fine, the adc however works only partially. I know the output is right is right as I have hooked it up to led's and watched the output change as I heated up or cooled the sensor. Now one question I have is do I need the 10K pull-up resistors since im using P0, I know the datasheet says it does but just making sure if you need them with a ADC hooked up to P0 as I'm not trying to use it as an output to power something. Besides for that I have written the code from my school book that's all about the 8051 architecture and using trainer boards with the ds89c450. I will post the code also for everyone to see. From doing the math that happens through the binary to dec conversion and dec to ascii conversion it looks right but when the conversion happens it shows random symbols on the lcd, I have gotten a infinity symbol and question mark which is not even close, the temp where I am is 77 so the ascii should be 55 to represent the number 7.
So all in all I am asking is there anything wrong with my code or any suggestions, thanks. ...insert code here[ALE BIT P1.0 OE BIT P1.1 SC BIT P1.2 EOC BIT P1.3 MYDATA EQU P0 RAM_ADDR EQU 40H ASCI_RSULT EQU 50H COUNT EQU 3 ORG 0H ACALL LCD_INIT MOV MYDATA,#0FFH SETB EOC CLR ALE CLR SC CLR OE BACK: ACALL DELAY SETB ALE ACALL DELAY SETB SC ACALL DELAY CLR ALE CLR SC HERE: JB EOC,HERE HERE1: JNB EOC,HERE1 SETB OE ACALL DELAY MOV A,MYDATA CLR OE ACALL CONVERSION ACALL DATA_DISPLAY SJMP BACK DATA_DISPLAY: ACALL DELAY MOV A,#91H ACALL COMNWRT ACALL DELAY MOV A,@R1 ACALL DATAWRT ACALL DELAY RET CONVERSION: ACALL BIN_DEC_CONVRT ACALL DEC_ASCI_CONVRT RET BIN_DEC_CONVRT: MOV R0,#RAM_ADDR MOV A,P0 MOV B,#10 DIV AB MOV @R0,B INC R0 MOV B,#10 DIV AB MOV @R0,B INC R0 MOV @R0,A RET DEC_ASCI_CONVRT: MOV R0,#RAM_ADDR MOV R1,#ASCI_RSULT MOV R2,#3 BACK1: MOV A,@R0 ORL A,#30H MOV @R1,A INC R0 INC R1 DJNZ R2,BACK1 RET LCD_INIT: ACALL COMNWRT 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: MOV R1,A ANL A,#0F0H MOV P2,A CLR P3.7 SETB P3.6 ACALL DELAY CLR P3.6 MOV A,R1 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: MOV R1,A ANL A,#0F0H MOV P2,A SETB P3.7 SETB P3.6 ACALL DELAY CLR P3.6 MOV A,R1 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: 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 |