Discussion in "Project Help" started by    Pater    May 14, 2018.
Mon May 14 2018, 05:36 PM
#1
Basically my project is based on Data Acquisition system, so I want to acquire the data from various sensors in the PC.

For this i have used ADC0808 for converting Analog data to Digital data (8 bits), and these digital bits are given to any one port of micro-controller (89S52). The micro-controller then receives the bits and transmit it serially so that PC can receive the serial bits.

I have used "ADC0808 module with external clock" (By Silicon Technologies) :- attachment-1 &
"89S52 development board" (By Silicon Technologies) :- attachment-2

My code is as follows,
---------------------------------------------------------------------------------------------------------------------------
#include<reg51.h>

void delay_sec(unsigned int);
void delay_us(unsigned int);

void decimal();
void serial(char c);
unsigned char d1,d2,d3,d4;
void InitADC(void);
unsigned char ReadADC(unsigned char);

#define AN0 0
#define AN1 1
#define AN2 2
#define AN3 3

sbit Add_A = P2^0;
sbit Add_B = P2^1;
sbit Add_C = P2^2;
sbit ALE = P2^3;
sbit EOC = P2^4;
sbit OE = P2^5;
sbit START = P2^6;



#define Data_Bus P0
#define HalfCycleDelay 10 // usecs


void main()
{

unsigned char I;
InitADC();

while(1)
{
I= ReadADC(AN0);
}

}

void InitADC(void)
{
Add_A = 0;
Add_B = 0;
Add_C = 0;
ALE = 0;
EOC = 1;
OE = 0;
START = 0;

Data_Bus = 0xFF;
}

unsigned char ReadADC(unsigned char Channel)
{
unsigned int i = 0;
unsigned int ADC_value = 0;

/*Selecting analog Channel by providing respective
bits to A,B,C addresses*/
switch(Channel)
{
case AN0: Add_C = 0; Add_B = 0; Add_A = 0; break;

}

delay_us(HalfCycleDelay); // 250kHz Frequency
ALE = 1; // Enable Address Latch

delay_us(HalfCycleDelay); // 250kHz Frequency

START = 1; // Start ADC Conversion
delay_us(HalfCycleDelay); // 250kHz Frequency

ALE = 0; // Disable Address Latch
delay_us(HalfCycleDelay); // 250kHz Frequency

START = 0; // Complete the start pulse

for(i=0;i<2000;i++)
{

delay_us(HalfCycleDelay); // 250kHz Frequency
if(!EOC) // Wait for EOC to be low
break;
}

for(i=0;i<2000;i++)
{

delay_us(HalfCycleDelay); // 250kHz Frequency
if(EOC) // Wait for EOC to be High
break;
}


OE = 1; // Enable Output
delay_us(HalfCycleDelay); // 250kHz Frequency

delay_us(HalfCycleDelay); // 250kHz Frequency

delay_us(HalfCycleDelay); // 250kHz Frequency


ADC_value = Data_Bus; // Read value

decimal();
serial(d1+0x30);
serial(d4+0x30);
serial(d3+0x30);

delay_sec(1);

delay_us(HalfCycleDelay); // 250kHz Frequency
OE = 0; // Disable Output

delay_us(HalfCycleDelay); // 250kHz Frequency
return ADC_value; // Return ADC value
}


void decimal()
{

d1 = Data_Bus /100;
d2 = Data_Bus %100;
d3 = d2 %10;
d4 = d2/10;

}


void serial(char c)
{

TMOD = 0X20;
TH1 = 0XFD;
SCON = 0X50;
TR1 = 1;
SBUF = c;
while(TI==0);
TI = 0;

}

// Function for approximate delay in Secs.
void delay_sec(unsigned int d)
{
unsigned int i;
for(i=0;i<(d*20);i++)
delay_us(50000);
}

// Function for approximate delay in given uSecs.
void delay_us(unsigned int d)
{
unsigned int i, limit;
limit = d/15;
for(i=0;i<limit;i++);
}

----------------------------------------------------------------------------------------------------------------

So the main problem is that I am not getting Analog to Digital conversion on the port of micro-controller and also no data in the PC (Used hyper-terminal for getting serial data) & if getting, am getting any random data in the PC.

I have made all connections as per the code but it is not working.

So please help in this regard and give suitable solution regarding Hardware part or the Programming part.

Mon May 14 2018, 10:17 PM
#2


So the main problem is that I am not getting Analog to Digital conversion on the port of micro-controller and also no data in the PC (Used hyper-terminal for getting serial data) & if getting, am getting any random data in the PC.

Pater



You code works okay on Proteus.
Random values looks like wiring or power problems.

Where do you get your test input voltage ?

What happens if you connect ADC0809 IN0 directly to ground ?
What happens if you connect ADC0809 IN0 directly to +5volts ?


[ Edited Mon May 14 2018, 10:19 PM ]

Get Social

Information

Powered by e107 Forum System

Conversation

DragonDad
Tue May 21 2019, 03:02 PM
Hi. Who is online?
Tue May 14 2019, 12:38 AM
Jayson Contreras
Hello
Xkalebar
Sun Apr 28 2019, 09:06 AM
Please provide me the code for gsm based sms controlled notice board
ExperimenterUK
Sun Apr 14 2019, 10:52 PM
@hassan malik post your problem in the "General help Guidance and Discussion" forum
Sun Apr 14 2019, 05:06 PM
RAJESH MAPARi
please send me code to interface atmega32 with 24c1024 serial eeprom
Sun Apr 14 2019, 01:33 PM
hassan malik
hello sir i installed proteus 7.8 professional on window 7 ultimate and window 10 but there would be same errors onn both windows. the error is bad license key.please any one help me
Sun Apr 14 2019, 01:32 PM
hassan malik
hello sir i installed proteus 7.8 professional on window 7 ultimate and window 10 but there would be same errors onn both windows. the error is bad license key.
ExperimenterUK
Sat Apr 06 2019, 05:59 PM
@deshrar. Please post your question in 8051 forum
Sat Apr 06 2019, 07:43 AM
deshraj
hallo mam.. i have downloded gsm notice board code its running fine on lcd but how so send msg to the module . i mean format of password and msg.. thank you
kevinharsha
Wed Apr 03 2019, 04:38 PM
Can i see the circuit diagram for the music tone library 8051 project?

Downloads

Comments

WilsonNig
Sun May 26 2019, 03:11 AM
DragonDad
Tue May 21 2019, 02:50 PM
dhiyamtech
Thu May 09 2019, 10:20 AM
harsha.reddy
Fri May 03 2019, 09:02 AM
soumen1963
Fri May 03 2019, 06:01 AM
Vasily
Mon Apr 29 2019, 04:03 AM
Xkalebar
Sun Apr 28 2019, 08:59 AM
obibikwe
Fri Apr 19 2019, 05:55 PM

Online

Guests: 76, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 38067
Newest member: WilsonNig
Forum Activity
Ansh12 Avatar
Posted By Ansh12
Sun Apr 28 2019, 02:15 PM
I made a minor change, it works in Proteus.Try the...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Apr 25 2019, 08:20 PM
I made a minor change, it works in Proteus.Try the...
gigyani Avatar
Posted By gigyani
Thu Apr 25 2019, 01:17 AM
when i add cufirst.hex its not working.after 2-3 s...
ExperimenterUK Avatar
Posted By ExperimenterUK
Wed Apr 24 2019, 12:29 AM
http://www.8051projects.net/download-d205-electron...
gigyani Avatar
Posted By gigyani
Tue Apr 23 2019, 09:22 PM
How to enter the electronic voting machine into vo...
Ansh12 Avatar
Posted By Ansh12
Mon Apr 22 2019, 09:12 AM
Then flash the led when you get any input on B0.Le...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Apr 19 2019, 05:35 PM
The full error is control_unit.asm(1294): error A4...
gigyani Avatar
Posted By gigyani
Thu Apr 18 2019, 10:09 PM
I'm using keil uvision5. attached is the rar file ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Apr 18 2019, 04:58 PM
Please zip your full code and post it.Which assemb...
gigyani Avatar
Posted By gigyani
Thu Apr 18 2019, 02:01 AM
STATREAD:MOV A, #WTCMD ;LOAD WRITE CO...