Hi, I am using AT89C4051 to utilize it as an AD Converter for an application as a two digit Voltmeter. I am following the circuit design given in the following address: httpp://http://www.atmel.com/dyn/resources/prod_documents/DOC0524.PDF . I have written a code in C (modified) and it does not work. It would be very helpful if someone were to help me if there are any mistakes in my code. My code is: #include<AT89x051.h> #define TON 79; #define TOFF 79; unsigned int ta,tb; void delay(int count); char a[10]={0x07,0x17,0x27,0x37,0x47,0x57,0x67,0x77,0x87,0x97}; char b[10]={0x0B,0x1B,0x2B,0x3B,0x4B,0x5B,0x6B,0x7B,0x8B,0x9B}; scanled(); void main(void) { int td,tc,m; tc=TON; td=TOFF while(1){ P3_7=1; for(m=0;m<tc;m++){ if(P3&0x40==0) ta++; } delay(3); P3_7=0; for(m=0;m<td;m++){ if(P3&0x40==1) tb++; } tb=tb+td; delay(3); scanled(); } } scanled(){ unsigned int i,flag=0,j; static unsigned int k,h; k=ta; h=tb; if(tb==0){ for(i=0;i<2;i++){ flag=1-flag; if(flag==1){ P1=a[(k)/10]; for(j=0;j<32000;j++); P1=0xFF; } if(flag==0){ P1=b[(k)%10]; for(j=0;j<32000;j++); P1=0xFF; } } } else if(ta==0){ for(i=0;i<2;i++){ flag=1-flag; if(flag==1){ P1=a[(h)/10]; for(j=0;j<32000;j++); P1=0xFF; } if(flag==0){ P1=b[(h)%10]; for(j=0;j<32000;j++); P1=0xFF; } } } } void delay(int count) { int j,l; for(j=0;j<= count;j++) { for (l=0;l<=120;l++); } } Please do note that i am not using the lookup table. That is why i did not include that in my code. I just want to know the number of counts. From the number of counts, i could refer to the lookup table manually and get the voltage output. Really do appreciate your help. Thank you.
"it does not work" More detail required! Does it build without errors & warnings? Does it download OK? What happens when you run it? What steps have you taken so far to debug it? Have you tried it in the simulator? Can you successfully build, download & run a simple "Hello, World" program? If you want people to look at your code, you need to format it properly - the instructions are right above the 'Message' box where you typed your post! See also: http://www.keil.com/forum/tips.asp and be sure to use the 'Preview' button before 'Post'
It does not work as in the sense, after i have burned the programme onto the chip and apply the power, to the circuit, it does not show the input voltage as it is supposed to. I was wondering whether there is any problem with my code itself?
does not show the input voltage as it is supposed to WHAT does it show? Erik