Discussion in "Project Help" started by    kira113    Aug 19, 2017.
Sat Aug 19 2017, 08:52 AM
#1
hello everyone
i write a simple program using c language for read analog value from adc0804 then convert that value to three decimal number and then display them on 3 seven_seg but when i compile the program using keil ide i got some error ( like 'multiple public definition ')
can anyone help me with it .
#include <REGX51.H>
sbit cs   = P3^7 ;
sbit WRIT	= P3^5 ;
sbit READ	= P3^6 ;
sbit inter= P3^4 ;
#define adc_port  P1 
#define seg_port  P0 

char ones,tens,hunds,digital_value,rfd;
int table[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};
void conv();
void read_adc();
void delay_us(int);
void delay_ms(int);
void delay_sec( char);
void div23dig(char);
void disp ( char , char, char );
void main(){
							
							adc_port = 0xff	;		//init adc_Port as input
									P0 = 0X0			;//init p0 as output
									P3= 0x10		;	//init p3.4 as input
								while(1){
									
									
										conv();
										read_adc();
										div23dig(digital_value);
									  disp(ones,tens,hunds);
										delay_sec(1);
									 
										
												}
            }

void conv()
	{
		cs=0;
		WRIT=0;
		WRIT=1;
		cs=1;
		while(inter);
	}

void read_adc()
	{
			cs=0;
			READ=0;
			digital_value=adc_port;
			READ=1;
			cs=1;
  }

void delay_us( int us_count)
 {
    while(us_count!=0)
      {
         us_count--;
       }
   }
void delay_ms( int ms_count)
 {
        while(ms_count!=0)
         {
            delay_us(112);   /*delay_us is called to generate 1ms delay*/
             ms_count--;
            }
   }
void delay_sec( char sec_count)
 {

     while(sec_count!=0)
      {
         delay_ms(1000);    /*delay_ms is called to generate 1sec delay*/
         sec_count--;
        }
 }
void div23dig(char x )
 { 
		hunds= digital_value/100 ;
		rfd = digital_value%100 ;
	  tens = rfd/10;
		ones = rfd%10;
	
 }
void disp ( char x , char y ,char z )
 {  char i; 
		i = table[ones] ;
	  seg_port = i ;
	  P2=P2|1;
	  delay_ms(16);
		P2=P2&254;
	  i=table[tens];
	 seg_port=i;
	  P2=P2|2;
		delay_ms(16);
	   P2=P2&253;
		i= table[hunds];
	  seg_port=i;
	  P2=P2|4;
		delay_ms(16);
	  P2=P2&251;
 
 }



[ Edited Wed Aug 23 2017, 01:26 PM ]
Sun Aug 20 2017, 08:31 PM
#2

"when i compile the program using keil ide i got some error
( like 'multiple public definition ')"

When asking for help, giving the exact error message is important.
It is better to zip and post your full code,
as copying off the web page is not 100% successful.

I tried your code and got unused variables warnings for call
"void disp ( char x , char y ,char z )"
x,y and z are not used in the procedure.

I notice you declared it as
"void disp ( char , char, char );" without naming the variables.
That may be legal, but makes it harder to spot errors, as in the case above.


[ Edited Sun Aug 20 2017, 08:35 PM ]
Wed Aug 23 2017, 01:30 PM
#3
It will be easier to help if you can post the complete error message with line number. So we know which line is generating the error.
By the way, it's better to define "table" as const since you're not going to change it but just use it as a reference for digits.
 kira113 like this.
Sun Oct 08 2017, 08:33 PM
#4
actually i solve this problem , and it was just test for my project which is"power meter"
so i could measure the ac voltage and display it on 3 7-seg , and then moved to measure current using CT 1000:1 and it worked very good with some error , but when i tried to merge current and voltage together i used tow adc0804( i could to use adc0808 but the time was very short to do that ) and connect it with same PORT on micro , i will attach the schematic and the code to understand what i'm trying to say so maybe you can help me .
Sun Oct 08 2017, 08:40 PM
#5
these are my schematic and c source file , and i hope to help me because i tried to solve it for two weeks and there is no progress at all
Sun Oct 08 2017, 08:42 PM
#6
https://drive.google.com/open?id=0B_IGcFftMx3fYV9VTmw5dkp2Q2s


[ Edited Sun Oct 08 2017, 08:45 PM ]
Thu Oct 12 2017, 01:04 AM
#7
I don't think the 0804 works as it should in Proteus.
I ended up greatly simplifying your design to get it working.
The good news is that you have a working start point.
Use the virtual serial port in Proteus to print messages to help
with debugging.

Attachment

Get Social

Information

Powered by e107 Forum System

Conversation

DavesGarage
Tue Jan 09 2018, 07:55 PM
It's been a few years since I poked around here - Hi all...
ExperimenterUK
Mon Jan 08 2018, 07:19 PM
Hi TPS. it's been a while..
۞ TPS ۞
Sun Jan 07 2018, 06:42 PM
hello
Thu Jan 04 2018, 01:50 PM
sayyad affrid
its AT89S52
Thu Jan 04 2018, 01:50 PM
sayyad affrid
sir, i want embedded c code for ultrasonic sensor having buzzer interfaced with AT9S52
Mon Dec 18 2017, 08:12 PM
zafir
i am making digital voltmeter using AT89C51, ADC and LCD 16x2,,, kindly someone please send me hex file in assembly language
Fri Dec 15 2017, 12:18 PM
mehari
can not find dhtxx.md file in proteus 8.0 can anybody help me please?
sahar7478
Fri Dec 08 2017, 12:47 PM
can i get gsm a6 library? can anybody help? tia
Faiqa
Sat Nov 25 2017, 08:32 AM
Can i get the code of Monitering and controlling of green house effect? ... Can anyone help me ?
Wed Nov 08 2017, 01:35 PM
Anirudh jain
I want to burn code in atmel 89s51 24pc 0329 but cannot get the connection with the burner. Can somebody provide me with the circuit diagram for connecting controller to burner. I'm using usb burner

Downloads

Comments

vieslav
Thu Jan 18 2018, 06:19 PM
eddieprice
Fri Jan 12 2018, 04:07 PM
bastik
Fri Jan 12 2018, 09:36 AM
cjj20
Tue Jan 09 2018, 07:29 PM
shahzadiqbal
Tue Jan 09 2018, 01:57 PM
shailu1809
Mon Jan 08 2018, 01:11 AM
saffrid97
Sun Jan 07 2018, 01:48 AM
vietbac
Sat Jan 06 2018, 10:08 AM

Online

Guests: 57, Members: 0 ...

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

Members: 37944
Newest member: vieslav
Forum Activity
ExperimenterUK Avatar
Posted By ExperimenterUK
Sat Jan 13 2018, 10:26 PM
This is clearly an old design.A modern microcontr...
bastik Avatar
Posted By bastik
Sat Jan 13 2018, 09:38 PM
For now I don’t have much information about device...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Jan 12 2018, 06:49 PM
Sometimes the Configuration word has to be program...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Jan 12 2018, 06:30 PM
What exactly is your situation ?I very much doubt ...
eddieprice Avatar
Posted By eddieprice
Fri Jan 12 2018, 04:32 PM
I am using a 16F84A for the first time and am havi...
bastik Avatar
Posted By bastik
Fri Jan 12 2018, 10:37 AM
I have device with SAB80C535 microcontroller and I...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Jan 12 2018, 12:01 AM
I tried to compile your 8051 version in Keil 5but...
cjj20 Avatar
Posted By cjj20
Tue Jan 09 2018, 07:42 PM
I just think something is off in the checkgpgga fu...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Jan 09 2018, 07:35 PM
Why do you think there is something wrong with it...
cjj20 Avatar
Posted By cjj20
Tue Jan 09 2018, 07:32 PM
Please help me correct this code #include ...